diff --git a/services/js-poc/src/runtime/js/node_crypto.js b/services/js-poc/src/runtime/js/node_crypto.js new file mode 100644 index 000000000..d6c4329d0 --- /dev/null +++ b/services/js-poc/src/runtime/js/node_crypto.js @@ -0,0 +1,74294 @@ +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-4bd36a8f.js +var e; +var t; +var n = "object" == typeof Reflect ? Reflect : null; +var r = n && "function" == typeof n.apply ? n.apply : function(e8, t6, n6) { + return Function.prototype.apply.call(e8, t6, n6); +}; +t = n && "function" == typeof n.ownKeys ? n.ownKeys : Object.getOwnPropertySymbols ? function(e8) { + return Object.getOwnPropertyNames(e8).concat(Object.getOwnPropertySymbols(e8)); +} : function(e8) { + return Object.getOwnPropertyNames(e8); +}; +var i = Number.isNaN || function(e8) { + return e8 != e8; +}; +function o() { + o.init.call(this); +} +e = o, o.EventEmitter = o, o.prototype._events = void 0, o.prototype._eventsCount = 0, o.prototype._maxListeners = void 0; +var s = 10; +function u(e8) { + if ("function" != typeof e8) + throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e8); +} +function f(e8) { + return void 0 === e8._maxListeners ? o.defaultMaxListeners : e8._maxListeners; +} +function v(e8, t6, n6, r6) { + var i6, o6, s6, v5; + if (u(n6), void 0 === (o6 = e8._events) ? (o6 = e8._events = /* @__PURE__ */ Object.create(null), e8._eventsCount = 0) : (void 0 !== o6.newListener && (e8.emit("newListener", t6, n6.listener ? n6.listener : n6), o6 = e8._events), s6 = o6[t6]), void 0 === s6) + s6 = o6[t6] = n6, ++e8._eventsCount; + else if ("function" == typeof s6 ? s6 = o6[t6] = r6 ? [n6, s6] : [s6, n6] : r6 ? s6.unshift(n6) : s6.push(n6), (i6 = f(e8)) > 0 && s6.length > i6 && !s6.warned) { + s6.warned = true; + var a6 = new Error("Possible EventEmitter memory leak detected. " + s6.length + " " + String(t6) + " listeners added. Use emitter.setMaxListeners() to increase limit"); + a6.name = "MaxListenersExceededWarning", a6.emitter = e8, a6.type = t6, a6.count = s6.length, v5 = a6, console && console.warn && console.warn(v5); + } + return e8; +} +function a() { + if (!this.fired) + return this.target.removeListener(this.type, this.wrapFn), this.fired = true, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments); +} +function l(e8, t6, n6) { + var r6 = { fired: false, wrapFn: void 0, target: e8, type: t6, listener: n6 }, i6 = a.bind(r6); + return i6.listener = n6, r6.wrapFn = i6, i6; +} +function h(e8, t6, n6) { + var r6 = e8._events; + if (void 0 === r6) + return []; + var i6 = r6[t6]; + return void 0 === i6 ? [] : "function" == typeof i6 ? n6 ? [i6.listener || i6] : [i6] : n6 ? function(e9) { + for (var t7 = new Array(e9.length), n7 = 0; n7 < t7.length; ++n7) + t7[n7] = e9[n7].listener || e9[n7]; + return t7; + }(i6) : c(i6, i6.length); +} +function p(e8) { + var t6 = this._events; + if (void 0 !== t6) { + var n6 = t6[e8]; + if ("function" == typeof n6) + return 1; + if (void 0 !== n6) + return n6.length; + } + return 0; +} +function c(e8, t6) { + for (var n6 = new Array(t6), r6 = 0; r6 < t6; ++r6) + n6[r6] = e8[r6]; + return n6; +} +Object.defineProperty(o, "defaultMaxListeners", { enumerable: true, get: function() { + return s; +}, set: function(e8) { + if ("number" != typeof e8 || e8 < 0 || i(e8)) + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e8 + "."); + s = e8; +} }), o.init = function() { + void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0; +}, o.prototype.setMaxListeners = function(e8) { + if ("number" != typeof e8 || e8 < 0 || i(e8)) + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e8 + "."); + return this._maxListeners = e8, this; +}, o.prototype.getMaxListeners = function() { + return f(this); +}, o.prototype.emit = function(e8) { + for (var t6 = [], n6 = 1; n6 < arguments.length; n6++) + t6.push(arguments[n6]); + var i6 = "error" === e8, o6 = this._events; + if (void 0 !== o6) + i6 = i6 && void 0 === o6.error; + else if (!i6) + return false; + if (i6) { + var s6; + if (t6.length > 0 && (s6 = t6[0]), s6 instanceof Error) + throw s6; + var u6 = new Error("Unhandled error." + (s6 ? " (" + s6.message + ")" : "")); + throw u6.context = s6, u6; + } + var f7 = o6[e8]; + if (void 0 === f7) + return false; + if ("function" == typeof f7) + r(f7, this, t6); + else { + var v5 = f7.length, a6 = c(f7, v5); + for (n6 = 0; n6 < v5; ++n6) + r(a6[n6], this, t6); + } + return true; +}, o.prototype.addListener = function(e8, t6) { + return v(this, e8, t6, false); +}, o.prototype.on = o.prototype.addListener, o.prototype.prependListener = function(e8, t6) { + return v(this, e8, t6, true); +}, o.prototype.once = function(e8, t6) { + return u(t6), this.on(e8, l(this, e8, t6)), this; +}, o.prototype.prependOnceListener = function(e8, t6) { + return u(t6), this.prependListener(e8, l(this, e8, t6)), this; +}, o.prototype.removeListener = function(e8, t6) { + var n6, r6, i6, o6, s6; + if (u(t6), void 0 === (r6 = this._events)) + return this; + if (void 0 === (n6 = r6[e8])) + return this; + if (n6 === t6 || n6.listener === t6) + 0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : (delete r6[e8], r6.removeListener && this.emit("removeListener", e8, n6.listener || t6)); + else if ("function" != typeof n6) { + for (i6 = -1, o6 = n6.length - 1; o6 >= 0; o6--) + if (n6[o6] === t6 || n6[o6].listener === t6) { + s6 = n6[o6].listener, i6 = o6; + break; + } + if (i6 < 0) + return this; + 0 === i6 ? n6.shift() : !function(e9, t7) { + for (; t7 + 1 < e9.length; t7++) + e9[t7] = e9[t7 + 1]; + e9.pop(); + }(n6, i6), 1 === n6.length && (r6[e8] = n6[0]), void 0 !== r6.removeListener && this.emit("removeListener", e8, s6 || t6); + } + return this; +}, o.prototype.off = o.prototype.removeListener, o.prototype.removeAllListeners = function(e8) { + var t6, n6, r6; + if (void 0 === (n6 = this._events)) + return this; + if (void 0 === n6.removeListener) + return 0 === arguments.length ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : void 0 !== n6[e8] && (0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : delete n6[e8]), this; + if (0 === arguments.length) { + var i6, o6 = Object.keys(n6); + for (r6 = 0; r6 < o6.length; ++r6) + "removeListener" !== (i6 = o6[r6]) && this.removeAllListeners(i6); + return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this; + } + if ("function" == typeof (t6 = n6[e8])) + this.removeListener(e8, t6); + else if (void 0 !== t6) + for (r6 = t6.length - 1; r6 >= 0; r6--) + this.removeListener(e8, t6[r6]); + return this; +}, o.prototype.listeners = function(e8) { + return h(this, e8, true); +}, o.prototype.rawListeners = function(e8) { + return h(this, e8, false); +}, o.listenerCount = function(e8, t6) { + return "function" == typeof e8.listenerCount ? e8.listenerCount(t6) : p.call(e8, t6); +}, o.prototype.listenerCount = p, o.prototype.eventNames = function() { + return this._eventsCount > 0 ? t(this._events) : []; +}; +var y = e; +y.EventEmitter; +y.defaultMaxListeners; +y.init; +y.listenerCount; +y.EventEmitter; +y.defaultMaxListeners; +y.init; +y.listenerCount; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-5decc758.js +var e2; +var t2; +var n2; +var r2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var o2 = e2 = {}; +function i2() { + throw new Error("setTimeout has not been defined"); +} +function u2() { + throw new Error("clearTimeout has not been defined"); +} +function c2(e8) { + if (t2 === setTimeout) + return setTimeout(e8, 0); + if ((t2 === i2 || !t2) && setTimeout) + return t2 = setTimeout, setTimeout(e8, 0); + try { + return t2(e8, 0); + } catch (n6) { + try { + return t2.call(null, e8, 0); + } catch (n7) { + return t2.call(this || r2, e8, 0); + } + } +} +!function() { + try { + t2 = "function" == typeof setTimeout ? setTimeout : i2; + } catch (e8) { + t2 = i2; + } + try { + n2 = "function" == typeof clearTimeout ? clearTimeout : u2; + } catch (e8) { + n2 = u2; + } +}(); +var l2; +var s2 = []; +var f2 = false; +var a2 = -1; +function h2() { + f2 && l2 && (f2 = false, l2.length ? s2 = l2.concat(s2) : a2 = -1, s2.length && d()); +} +function d() { + if (!f2) { + var e8 = c2(h2); + f2 = true; + for (var t6 = s2.length; t6; ) { + for (l2 = s2, s2 = []; ++a2 < t6; ) + l2 && l2[a2].run(); + a2 = -1, t6 = s2.length; + } + l2 = null, f2 = false, function(e9) { + if (n2 === clearTimeout) + return clearTimeout(e9); + if ((n2 === u2 || !n2) && clearTimeout) + return n2 = clearTimeout, clearTimeout(e9); + try { + n2(e9); + } catch (t7) { + try { + return n2.call(null, e9); + } catch (t8) { + return n2.call(this || r2, e9); + } + } + }(e8); + } +} +function m(e8, t6) { + (this || r2).fun = e8, (this || r2).array = t6; +} +function p2() { +} +o2.nextTick = function(e8) { + var t6 = new Array(arguments.length - 1); + if (arguments.length > 1) + for (var n6 = 1; n6 < arguments.length; n6++) + t6[n6 - 1] = arguments[n6]; + s2.push(new m(e8, t6)), 1 !== s2.length || f2 || c2(d); +}, m.prototype.run = function() { + (this || r2).fun.apply(null, (this || r2).array); +}, o2.title = "browser", o2.browser = true, o2.env = {}, o2.argv = [], o2.version = "", o2.versions = {}, o2.on = p2, o2.addListener = p2, o2.once = p2, o2.off = p2, o2.removeListener = p2, o2.removeAllListeners = p2, o2.emit = p2, o2.prependListener = p2, o2.prependOnceListener = p2, o2.listeners = function(e8) { + return []; +}, o2.binding = function(e8) { + throw new Error("process.binding is not supported"); +}, o2.cwd = function() { + return "/"; +}, o2.chdir = function(e8) { + throw new Error("process.chdir is not supported"); +}, o2.umask = function() { + return 0; +}; +var T = e2; +T.addListener; +T.argv; +T.binding; +T.browser; +T.chdir; +T.cwd; +T.emit; +T.env; +T.listeners; +T.nextTick; +T.off; +T.on; +T.once; +T.prependListener; +T.prependOnceListener; +T.removeAllListeners; +T.removeListener; +T.title; +T.umask; +T.version; +T.versions; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-b4205b57.js +var t3 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag; +var e3 = Object.prototype.toString; +var o3 = function(o6) { + return !(t3 && o6 && "object" == typeof o6 && Symbol.toStringTag in o6) && "[object Arguments]" === e3.call(o6); +}; +var n3 = function(t6) { + return !!o3(t6) || null !== t6 && "object" == typeof t6 && "number" == typeof t6.length && t6.length >= 0 && "[object Array]" !== e3.call(t6) && "[object Function]" === e3.call(t6.callee); +}; +var r3 = function() { + return o3(arguments); +}(); +o3.isLegacyArguments = n3; +var l3 = r3 ? o3 : n3; +var t$1 = Object.prototype.toString; +var o$1 = Function.prototype.toString; +var n$1 = /^\s*(?:function)?\*/; +var e$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag; +var r$1 = Object.getPrototypeOf; +var c3 = function() { + if (!e$1) + return false; + try { + return Function("return function*() {}")(); + } catch (t6) { + } +}(); +var u3 = c3 ? r$1(c3) : {}; +var i3 = function(c6) { + return "function" == typeof c6 && (!!n$1.test(o$1.call(c6)) || (e$1 ? r$1(c6) === u3 : "[object GeneratorFunction]" === t$1.call(c6))); +}; +var t$2 = "function" == typeof Object.create ? function(t6, e8) { + e8 && (t6.super_ = e8, t6.prototype = Object.create(e8.prototype, { constructor: { value: t6, enumerable: false, writable: true, configurable: true } })); +} : function(t6, e8) { + if (e8) { + t6.super_ = e8; + var o6 = function() { + }; + o6.prototype = e8.prototype, t6.prototype = new o6(), t6.prototype.constructor = t6; + } +}; +var i$1 = function(e8) { + return e8 && "object" == typeof e8 && "function" == typeof e8.copy && "function" == typeof e8.fill && "function" == typeof e8.readUInt8; +}; +var o$2 = {}; +var u$1 = i$1; +var f3 = l3; +var a3 = i3; +function c$1(e8) { + return e8.call.bind(e8); +} +var s3 = "undefined" != typeof BigInt; +var p3 = "undefined" != typeof Symbol; +var y2 = p3 && void 0 !== Symbol.toStringTag; +var l$1 = "undefined" != typeof Uint8Array; +var d2 = "undefined" != typeof ArrayBuffer; +if (l$1 && y2) + var g = Object.getPrototypeOf(Uint8Array.prototype), b = c$1(Object.getOwnPropertyDescriptor(g, Symbol.toStringTag).get); +var m2 = c$1(Object.prototype.toString); +var h3 = c$1(Number.prototype.valueOf); +var j = c$1(String.prototype.valueOf); +var A = c$1(Boolean.prototype.valueOf); +if (s3) + var w = c$1(BigInt.prototype.valueOf); +if (p3) + var v2 = c$1(Symbol.prototype.valueOf); +function O(e8, t6) { + if ("object" != typeof e8) + return false; + try { + return t6(e8), true; + } catch (e9) { + return false; + } +} +function S(e8) { + return l$1 && y2 ? void 0 !== b(e8) : B(e8) || k(e8) || E(e8) || D(e8) || U(e8) || P(e8) || x(e8) || I(e8) || M(e8) || z(e8) || F(e8); +} +function B(e8) { + return l$1 && y2 ? "Uint8Array" === b(e8) : "[object Uint8Array]" === m2(e8) || u$1(e8) && void 0 !== e8.buffer; +} +function k(e8) { + return l$1 && y2 ? "Uint8ClampedArray" === b(e8) : "[object Uint8ClampedArray]" === m2(e8); +} +function E(e8) { + return l$1 && y2 ? "Uint16Array" === b(e8) : "[object Uint16Array]" === m2(e8); +} +function D(e8) { + return l$1 && y2 ? "Uint32Array" === b(e8) : "[object Uint32Array]" === m2(e8); +} +function U(e8) { + return l$1 && y2 ? "Int8Array" === b(e8) : "[object Int8Array]" === m2(e8); +} +function P(e8) { + return l$1 && y2 ? "Int16Array" === b(e8) : "[object Int16Array]" === m2(e8); +} +function x(e8) { + return l$1 && y2 ? "Int32Array" === b(e8) : "[object Int32Array]" === m2(e8); +} +function I(e8) { + return l$1 && y2 ? "Float32Array" === b(e8) : "[object Float32Array]" === m2(e8); +} +function M(e8) { + return l$1 && y2 ? "Float64Array" === b(e8) : "[object Float64Array]" === m2(e8); +} +function z(e8) { + return l$1 && y2 ? "BigInt64Array" === b(e8) : "[object BigInt64Array]" === m2(e8); +} +function F(e8) { + return l$1 && y2 ? "BigUint64Array" === b(e8) : "[object BigUint64Array]" === m2(e8); +} +function T2(e8) { + return "[object Map]" === m2(e8); +} +function N(e8) { + return "[object Set]" === m2(e8); +} +function W(e8) { + return "[object WeakMap]" === m2(e8); +} +function $(e8) { + return "[object WeakSet]" === m2(e8); +} +function C(e8) { + return "[object ArrayBuffer]" === m2(e8); +} +function V(e8) { + return "undefined" != typeof ArrayBuffer && (C.working ? C(e8) : e8 instanceof ArrayBuffer); +} +function G(e8) { + return "[object DataView]" === m2(e8); +} +function R(e8) { + return "undefined" != typeof DataView && (G.working ? G(e8) : e8 instanceof DataView); +} +function J(e8) { + return "[object SharedArrayBuffer]" === m2(e8); +} +function _(e8) { + return "undefined" != typeof SharedArrayBuffer && (J.working ? J(e8) : e8 instanceof SharedArrayBuffer); +} +function H(e8) { + return O(e8, h3); +} +function Z(e8) { + return O(e8, j); +} +function q(e8) { + return O(e8, A); +} +function K(e8) { + return s3 && O(e8, w); +} +function L(e8) { + return p3 && O(e8, v2); +} +o$2.isArgumentsObject = f3, o$2.isGeneratorFunction = a3, o$2.isPromise = function(e8) { + return "undefined" != typeof Promise && e8 instanceof Promise || null !== e8 && "object" == typeof e8 && "function" == typeof e8.then && "function" == typeof e8.catch; +}, o$2.isArrayBufferView = function(e8) { + return d2 && ArrayBuffer.isView ? ArrayBuffer.isView(e8) : S(e8) || R(e8); +}, o$2.isTypedArray = S, o$2.isUint8Array = B, o$2.isUint8ClampedArray = k, o$2.isUint16Array = E, o$2.isUint32Array = D, o$2.isInt8Array = U, o$2.isInt16Array = P, o$2.isInt32Array = x, o$2.isFloat32Array = I, o$2.isFloat64Array = M, o$2.isBigInt64Array = z, o$2.isBigUint64Array = F, T2.working = "undefined" != typeof Map && T2(/* @__PURE__ */ new Map()), o$2.isMap = function(e8) { + return "undefined" != typeof Map && (T2.working ? T2(e8) : e8 instanceof Map); +}, N.working = "undefined" != typeof Set && N(/* @__PURE__ */ new Set()), o$2.isSet = function(e8) { + return "undefined" != typeof Set && (N.working ? N(e8) : e8 instanceof Set); +}, W.working = "undefined" != typeof WeakMap && W(/* @__PURE__ */ new WeakMap()), o$2.isWeakMap = function(e8) { + return "undefined" != typeof WeakMap && (W.working ? W(e8) : e8 instanceof WeakMap); +}, $.working = "undefined" != typeof WeakSet && $(/* @__PURE__ */ new WeakSet()), o$2.isWeakSet = function(e8) { + return $(e8); +}, C.working = "undefined" != typeof ArrayBuffer && C(new ArrayBuffer()), o$2.isArrayBuffer = V, G.working = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView && G(new DataView(new ArrayBuffer(1), 0, 1)), o$2.isDataView = R, J.working = "undefined" != typeof SharedArrayBuffer && J(new SharedArrayBuffer()), o$2.isSharedArrayBuffer = _, o$2.isAsyncFunction = function(e8) { + return "[object AsyncFunction]" === m2(e8); +}, o$2.isMapIterator = function(e8) { + return "[object Map Iterator]" === m2(e8); +}, o$2.isSetIterator = function(e8) { + return "[object Set Iterator]" === m2(e8); +}, o$2.isGeneratorObject = function(e8) { + return "[object Generator]" === m2(e8); +}, o$2.isWebAssemblyCompiledModule = function(e8) { + return "[object WebAssembly.Module]" === m2(e8); +}, o$2.isNumberObject = H, o$2.isStringObject = Z, o$2.isBooleanObject = q, o$2.isBigIntObject = K, o$2.isSymbolObject = L, o$2.isBoxedPrimitive = function(e8) { + return H(e8) || Z(e8) || q(e8) || K(e8) || L(e8); +}, o$2.isAnyArrayBuffer = function(e8) { + return l$1 && (V(e8) || _(e8)); +}, ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(e8) { + Object.defineProperty(o$2, e8, { enumerable: false, value: function() { + throw new Error(e8 + " is not supported in userland"); + } }); +}); +var Q = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var X = {}; +var Y = T; +var ee = Object.getOwnPropertyDescriptors || function(e8) { + for (var t6 = Object.keys(e8), r6 = {}, n6 = 0; n6 < t6.length; n6++) + r6[t6[n6]] = Object.getOwnPropertyDescriptor(e8, t6[n6]); + return r6; +}; +var te = /%[sdj%]/g; +X.format = function(e8) { + if (!ge(e8)) { + for (var t6 = [], r6 = 0; r6 < arguments.length; r6++) + t6.push(oe(arguments[r6])); + return t6.join(" "); + } + r6 = 1; + for (var n6 = arguments, i6 = n6.length, o6 = String(e8).replace(te, function(e9) { + if ("%%" === e9) + return "%"; + if (r6 >= i6) + return e9; + switch (e9) { + case "%s": + return String(n6[r6++]); + case "%d": + return Number(n6[r6++]); + case "%j": + try { + return JSON.stringify(n6[r6++]); + } catch (e10) { + return "[Circular]"; + } + default: + return e9; + } + }), u6 = n6[r6]; r6 < i6; u6 = n6[++r6]) + le(u6) || !he(u6) ? o6 += " " + u6 : o6 += " " + oe(u6); + return o6; +}, X.deprecate = function(e8, t6) { + if (void 0 !== Y && true === Y.noDeprecation) + return e8; + if (void 0 === Y) + return function() { + return X.deprecate(e8, t6).apply(this || Q, arguments); + }; + var r6 = false; + return function() { + if (!r6) { + if (Y.throwDeprecation) + throw new Error(t6); + Y.traceDeprecation ? console.trace(t6) : console.error(t6), r6 = true; + } + return e8.apply(this || Q, arguments); + }; +}; +var re = {}; +var ne = /^$/; +if (Y.env.NODE_DEBUG) { + ie2 = Y.env.NODE_DEBUG; + ie2 = ie2.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), ne = new RegExp("^" + ie2 + "$", "i"); +} +var ie2; +function oe(e8, t6) { + var r6 = { seen: [], stylize: fe }; + return arguments.length >= 3 && (r6.depth = arguments[2]), arguments.length >= 4 && (r6.colors = arguments[3]), ye(t6) ? r6.showHidden = t6 : t6 && X._extend(r6, t6), be(r6.showHidden) && (r6.showHidden = false), be(r6.depth) && (r6.depth = 2), be(r6.colors) && (r6.colors = false), be(r6.customInspect) && (r6.customInspect = true), r6.colors && (r6.stylize = ue), ae(r6, e8, r6.depth); +} +function ue(e8, t6) { + var r6 = oe.styles[t6]; + return r6 ? "\x1B[" + oe.colors[r6][0] + "m" + e8 + "\x1B[" + oe.colors[r6][1] + "m" : e8; +} +function fe(e8, t6) { + return e8; +} +function ae(e8, t6, r6) { + if (e8.customInspect && t6 && we(t6.inspect) && t6.inspect !== X.inspect && (!t6.constructor || t6.constructor.prototype !== t6)) { + var n6 = t6.inspect(r6, e8); + return ge(n6) || (n6 = ae(e8, n6, r6)), n6; + } + var i6 = function(e9, t7) { + if (be(t7)) + return e9.stylize("undefined", "undefined"); + if (ge(t7)) { + var r7 = "'" + JSON.stringify(t7).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'"; + return e9.stylize(r7, "string"); + } + if (de(t7)) + return e9.stylize("" + t7, "number"); + if (ye(t7)) + return e9.stylize("" + t7, "boolean"); + if (le(t7)) + return e9.stylize("null", "null"); + }(e8, t6); + if (i6) + return i6; + var o6 = Object.keys(t6), u6 = function(e9) { + var t7 = {}; + return e9.forEach(function(e10, r7) { + t7[e10] = true; + }), t7; + }(o6); + if (e8.showHidden && (o6 = Object.getOwnPropertyNames(t6)), Ae(t6) && (o6.indexOf("message") >= 0 || o6.indexOf("description") >= 0)) + return ce(t6); + if (0 === o6.length) { + if (we(t6)) { + var f7 = t6.name ? ": " + t6.name : ""; + return e8.stylize("[Function" + f7 + "]", "special"); + } + if (me(t6)) + return e8.stylize(RegExp.prototype.toString.call(t6), "regexp"); + if (je(t6)) + return e8.stylize(Date.prototype.toString.call(t6), "date"); + if (Ae(t6)) + return ce(t6); + } + var a6, c6 = "", s6 = false, p6 = ["{", "}"]; + (pe(t6) && (s6 = true, p6 = ["[", "]"]), we(t6)) && (c6 = " [Function" + (t6.name ? ": " + t6.name : "") + "]"); + return me(t6) && (c6 = " " + RegExp.prototype.toString.call(t6)), je(t6) && (c6 = " " + Date.prototype.toUTCString.call(t6)), Ae(t6) && (c6 = " " + ce(t6)), 0 !== o6.length || s6 && 0 != t6.length ? r6 < 0 ? me(t6) ? e8.stylize(RegExp.prototype.toString.call(t6), "regexp") : e8.stylize("[Object]", "special") : (e8.seen.push(t6), a6 = s6 ? function(e9, t7, r7, n7, i7) { + for (var o7 = [], u7 = 0, f8 = t7.length; u7 < f8; ++u7) + ke(t7, String(u7)) ? o7.push(se(e9, t7, r7, n7, String(u7), true)) : o7.push(""); + return i7.forEach(function(i8) { + i8.match(/^\d+$/) || o7.push(se(e9, t7, r7, n7, i8, true)); + }), o7; + }(e8, t6, r6, u6, o6) : o6.map(function(n7) { + return se(e8, t6, r6, u6, n7, s6); + }), e8.seen.pop(), function(e9, t7, r7) { + var n7 = 0; + if (e9.reduce(function(e10, t8) { + return n7++, t8.indexOf("\n") >= 0 && n7++, e10 + t8.replace(/\u001b\[\d\d?m/g, "").length + 1; + }, 0) > 60) + return r7[0] + ("" === t7 ? "" : t7 + "\n ") + " " + e9.join(",\n ") + " " + r7[1]; + return r7[0] + t7 + " " + e9.join(", ") + " " + r7[1]; + }(a6, c6, p6)) : p6[0] + c6 + p6[1]; +} +function ce(e8) { + return "[" + Error.prototype.toString.call(e8) + "]"; +} +function se(e8, t6, r6, n6, i6, o6) { + var u6, f7, a6; + if ((a6 = Object.getOwnPropertyDescriptor(t6, i6) || { value: t6[i6] }).get ? f7 = a6.set ? e8.stylize("[Getter/Setter]", "special") : e8.stylize("[Getter]", "special") : a6.set && (f7 = e8.stylize("[Setter]", "special")), ke(n6, i6) || (u6 = "[" + i6 + "]"), f7 || (e8.seen.indexOf(a6.value) < 0 ? (f7 = le(r6) ? ae(e8, a6.value, null) : ae(e8, a6.value, r6 - 1)).indexOf("\n") > -1 && (f7 = o6 ? f7.split("\n").map(function(e9) { + return " " + e9; + }).join("\n").substr(2) : "\n" + f7.split("\n").map(function(e9) { + return " " + e9; + }).join("\n")) : f7 = e8.stylize("[Circular]", "special")), be(u6)) { + if (o6 && i6.match(/^\d+$/)) + return f7; + (u6 = JSON.stringify("" + i6)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (u6 = u6.substr(1, u6.length - 2), u6 = e8.stylize(u6, "name")) : (u6 = u6.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), u6 = e8.stylize(u6, "string")); + } + return u6 + ": " + f7; +} +function pe(e8) { + return Array.isArray(e8); +} +function ye(e8) { + return "boolean" == typeof e8; +} +function le(e8) { + return null === e8; +} +function de(e8) { + return "number" == typeof e8; +} +function ge(e8) { + return "string" == typeof e8; +} +function be(e8) { + return void 0 === e8; +} +function me(e8) { + return he(e8) && "[object RegExp]" === ve(e8); +} +function he(e8) { + return "object" == typeof e8 && null !== e8; +} +function je(e8) { + return he(e8) && "[object Date]" === ve(e8); +} +function Ae(e8) { + return he(e8) && ("[object Error]" === ve(e8) || e8 instanceof Error); +} +function we(e8) { + return "function" == typeof e8; +} +function ve(e8) { + return Object.prototype.toString.call(e8); +} +function Oe(e8) { + return e8 < 10 ? "0" + e8.toString(10) : e8.toString(10); +} +X.debuglog = function(e8) { + if (e8 = e8.toUpperCase(), !re[e8]) + if (ne.test(e8)) { + var t6 = Y.pid; + re[e8] = function() { + var r6 = X.format.apply(X, arguments); + console.error("%s %d: %s", e8, t6, r6); + }; + } else + re[e8] = function() { + }; + return re[e8]; +}, X.inspect = oe, oe.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, oe.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" }, X.types = o$2, X.isArray = pe, X.isBoolean = ye, X.isNull = le, X.isNullOrUndefined = function(e8) { + return null == e8; +}, X.isNumber = de, X.isString = ge, X.isSymbol = function(e8) { + return "symbol" == typeof e8; +}, X.isUndefined = be, X.isRegExp = me, X.types.isRegExp = me, X.isObject = he, X.isDate = je, X.types.isDate = je, X.isError = Ae, X.types.isNativeError = Ae, X.isFunction = we, X.isPrimitive = function(e8) { + return null === e8 || "boolean" == typeof e8 || "number" == typeof e8 || "string" == typeof e8 || "symbol" == typeof e8 || void 0 === e8; +}, X.isBuffer = i$1; +var Se = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; +function Be() { + var e8 = /* @__PURE__ */ new Date(), t6 = [Oe(e8.getHours()), Oe(e8.getMinutes()), Oe(e8.getSeconds())].join(":"); + return [e8.getDate(), Se[e8.getMonth()], t6].join(" "); +} +function ke(e8, t6) { + return Object.prototype.hasOwnProperty.call(e8, t6); +} +X.log = function() { + console.log("%s - %s", Be(), X.format.apply(X, arguments)); +}, X.inherits = t$2, X._extend = function(e8, t6) { + if (!t6 || !he(t6)) + return e8; + for (var r6 = Object.keys(t6), n6 = r6.length; n6--; ) + e8[r6[n6]] = t6[r6[n6]]; + return e8; +}; +var Ee = "undefined" != typeof Symbol ? Symbol("util.promisify.custom") : void 0; +function De(e8, t6) { + if (!e8) { + var r6 = new Error("Promise was rejected with a falsy value"); + r6.reason = e8, e8 = r6; + } + return t6(e8); +} +X.promisify = function(e8) { + if ("function" != typeof e8) + throw new TypeError('The "original" argument must be of type Function'); + if (Ee && e8[Ee]) { + var t6; + if ("function" != typeof (t6 = e8[Ee])) + throw new TypeError('The "util.promisify.custom" argument must be of type Function'); + return Object.defineProperty(t6, Ee, { value: t6, enumerable: false, writable: false, configurable: true }), t6; + } + function t6() { + for (var t7, r6, n6 = new Promise(function(e9, n7) { + t7 = e9, r6 = n7; + }), i6 = [], o6 = 0; o6 < arguments.length; o6++) + i6.push(arguments[o6]); + i6.push(function(e9, n7) { + e9 ? r6(e9) : t7(n7); + }); + try { + e8.apply(this || Q, i6); + } catch (e9) { + r6(e9); + } + return n6; + } + return Object.setPrototypeOf(t6, Object.getPrototypeOf(e8)), Ee && Object.defineProperty(t6, Ee, { value: t6, enumerable: false, writable: false, configurable: true }), Object.defineProperties(t6, ee(e8)); +}, X.promisify.custom = Ee, X.callbackify = function(e8) { + if ("function" != typeof e8) + throw new TypeError('The "original" argument must be of type Function'); + function t6() { + for (var t7 = [], r6 = 0; r6 < arguments.length; r6++) + t7.push(arguments[r6]); + var n6 = t7.pop(); + if ("function" != typeof n6) + throw new TypeError("The last argument must be of type Function"); + var i6 = this || Q, o6 = function() { + return n6.apply(i6, arguments); + }; + e8.apply(this || Q, t7).then(function(e9) { + Y.nextTick(o6.bind(null, null, e9)); + }, function(e9) { + Y.nextTick(De.bind(null, e9, o6)); + }); + } + return Object.setPrototypeOf(t6, Object.getPrototypeOf(e8)), Object.defineProperties(t6, ee(e8)), t6; +}; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-ce0fbc82.js +X._extend; +X.callbackify; +X.debuglog; +X.deprecate; +X.format; +X.inherits; +X.inspect; +X.isArray; +X.isBoolean; +X.isBuffer; +X.isDate; +X.isError; +X.isFunction; +X.isNull; +X.isNullOrUndefined; +X.isNumber; +X.isObject; +X.isPrimitive; +X.isRegExp; +X.isString; +X.isSymbol; +X.isUndefined; +X.log; +X.promisify; +var _extend = X._extend; +var callbackify = X.callbackify; +var debuglog = X.debuglog; +var deprecate = X.deprecate; +var format = X.format; +var inherits = X.inherits; +var inspect = X.inspect; +var isArray = X.isArray; +var isBoolean = X.isBoolean; +var isBuffer = X.isBuffer; +var isDate = X.isDate; +var isError = X.isError; +var isFunction = X.isFunction; +var isNull = X.isNull; +var isNullOrUndefined = X.isNullOrUndefined; +var isNumber = X.isNumber; +var isObject = X.isObject; +var isPrimitive = X.isPrimitive; +var isRegExp = X.isRegExp; +var isString = X.isString; +var isSymbol = X.isSymbol; +var isUndefined = X.isUndefined; +var log = X.log; +var promisify = X.promisify; +var types = X.types; +var TextEncoder = self.TextEncoder; +var TextDecoder = self.TextDecoder; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-2eac56ff.js +var exports = {}; +var _dewExec = false; +var _global = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew() { + if (_dewExec) + return exports; + _dewExec = true; + var process2 = exports = {}; + var cachedSetTimeout; + var cachedClearTimeout; + function defaultSetTimout() { + throw new Error("setTimeout has not been defined"); + } + function defaultClearTimeout() { + throw new Error("clearTimeout has not been defined"); + } + (function() { + try { + if (typeof setTimeout === "function") { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e8) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === "function") { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e8) { + cachedClearTimeout = defaultClearTimeout; + } + })(); + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + return setTimeout(fun, 0); + } + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + return cachedSetTimeout(fun, 0); + } catch (e8) { + try { + return cachedSetTimeout.call(null, fun, 0); + } catch (e9) { + return cachedSetTimeout.call(this || _global, fun, 0); + } + } + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + return clearTimeout(marker); + } + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + return cachedClearTimeout(marker); + } catch (e8) { + try { + return cachedClearTimeout.call(null, marker); + } catch (e9) { + return cachedClearTimeout.call(this || _global, marker); + } + } + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + process2.nextTick = function(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i6 = 1; i6 < arguments.length; i6++) { + args[i6 - 1] = arguments[i6]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + function Item(fun, array) { + (this || _global).fun = fun; + (this || _global).array = array; + } + Item.prototype.run = function() { + (this || _global).fun.apply(null, (this || _global).array); + }; + process2.title = "browser"; + process2.browser = true; + process2.env = {}; + process2.argv = []; + process2.version = ""; + process2.versions = {}; + function noop() { + } + process2.on = noop; + process2.addListener = noop; + process2.once = noop; + process2.off = noop; + process2.removeListener = noop; + process2.removeAllListeners = noop; + process2.emit = noop; + process2.prependListener = noop; + process2.prependOnceListener = noop; + process2.listeners = function(name) { + return []; + }; + process2.binding = function(name) { + throw new Error("process.binding is not supported"); + }; + process2.cwd = function() { + return "/"; + }; + process2.chdir = function(dir) { + throw new Error("process.chdir is not supported"); + }; + process2.umask = function() { + return 0; + }; + return exports; +} +var process = dew(); +process.platform = "browser"; +process.addListener; +process.argv; +process.binding; +process.browser; +process.chdir; +process.cwd; +process.emit; +process.env; +process.listeners; +process.nextTick; +process.off; +process.on; +process.once; +process.prependListener; +process.prependOnceListener; +process.removeAllListeners; +process.removeListener; +process.title; +process.umask; +process.version; +process.versions; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-4ccc3a29.js +for (r$13 = { byteLength: function(r6) { + var t6 = u$2(r6), e8 = t6[0], n6 = t6[1]; + return 3 * (e8 + n6) / 4 - n6; +}, toByteArray: function(r6) { + var t6, o6, a6 = u$2(r6), h6 = a6[0], c6 = a6[1], d5 = new n$22(function(r7, t7, e8) { + return 3 * (t7 + e8) / 4 - e8; + }(0, h6, c6)), f7 = 0, A4 = c6 > 0 ? h6 - 4 : h6; + for (o6 = 0; o6 < A4; o6 += 4) + t6 = e$22[r6.charCodeAt(o6)] << 18 | e$22[r6.charCodeAt(o6 + 1)] << 12 | e$22[r6.charCodeAt(o6 + 2)] << 6 | e$22[r6.charCodeAt(o6 + 3)], d5[f7++] = t6 >> 16 & 255, d5[f7++] = t6 >> 8 & 255, d5[f7++] = 255 & t6; + 2 === c6 && (t6 = e$22[r6.charCodeAt(o6)] << 2 | e$22[r6.charCodeAt(o6 + 1)] >> 4, d5[f7++] = 255 & t6); + 1 === c6 && (t6 = e$22[r6.charCodeAt(o6)] << 10 | e$22[r6.charCodeAt(o6 + 1)] << 4 | e$22[r6.charCodeAt(o6 + 2)] >> 2, d5[f7++] = t6 >> 8 & 255, d5[f7++] = 255 & t6); + return d5; +}, fromByteArray: function(r6) { + for (var e8, n6 = r6.length, o6 = n6 % 3, a6 = [], h6 = 0, u6 = n6 - o6; h6 < u6; h6 += 16383) + a6.push(c$12(r6, h6, h6 + 16383 > u6 ? u6 : h6 + 16383)); + 1 === o6 ? (e8 = r6[n6 - 1], a6.push(t$13[e8 >> 2] + t$13[e8 << 4 & 63] + "==")) : 2 === o6 && (e8 = (r6[n6 - 2] << 8) + r6[n6 - 1], a6.push(t$13[e8 >> 10] + t$13[e8 >> 4 & 63] + t$13[e8 << 2 & 63] + "=")); + return a6.join(""); +} }, t$13 = [], e$22 = [], n$22 = "undefined" != typeof Uint8Array ? Uint8Array : Array, o$23 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a$12 = 0, h$12 = o$23.length; a$12 < h$12; ++a$12) + t$13[a$12] = o$23[a$12], e$22[o$23.charCodeAt(a$12)] = a$12; +var r$13; +var t$13; +var e$22; +var n$22; +var o$23; +var a$12; +var h$12; +function u$2(r6) { + var t6 = r6.length; + if (t6 % 4 > 0) + throw new Error("Invalid string. Length must be a multiple of 4"); + var e8 = r6.indexOf("="); + return -1 === e8 && (e8 = t6), [e8, e8 === t6 ? 0 : 4 - e8 % 4]; +} +function c$12(r6, e8, n6) { + for (var o6, a6, h6 = [], u6 = e8; u6 < n6; u6 += 3) + o6 = (r6[u6] << 16 & 16711680) + (r6[u6 + 1] << 8 & 65280) + (255 & r6[u6 + 2]), h6.push(t$13[(a6 = o6) >> 18 & 63] + t$13[a6 >> 12 & 63] + t$13[a6 >> 6 & 63] + t$13[63 & a6]); + return h6.join(""); +} +e$22["-".charCodeAt(0)] = 62, e$22["_".charCodeAt(0)] = 63; +var a$1$1 = { read: function(a6, t6, o6, r6, h6) { + var M4, f7, p6 = 8 * h6 - r6 - 1, w4 = (1 << p6) - 1, e8 = w4 >> 1, i6 = -7, N4 = o6 ? h6 - 1 : 0, n6 = o6 ? -1 : 1, u6 = a6[t6 + N4]; + for (N4 += n6, M4 = u6 & (1 << -i6) - 1, u6 >>= -i6, i6 += p6; i6 > 0; M4 = 256 * M4 + a6[t6 + N4], N4 += n6, i6 -= 8) + ; + for (f7 = M4 & (1 << -i6) - 1, M4 >>= -i6, i6 += r6; i6 > 0; f7 = 256 * f7 + a6[t6 + N4], N4 += n6, i6 -= 8) + ; + if (0 === M4) + M4 = 1 - e8; + else { + if (M4 === w4) + return f7 ? NaN : 1 / 0 * (u6 ? -1 : 1); + f7 += Math.pow(2, r6), M4 -= e8; + } + return (u6 ? -1 : 1) * f7 * Math.pow(2, M4 - r6); +}, write: function(a6, t6, o6, r6, h6, M4) { + var f7, p6, w4, e8 = 8 * M4 - h6 - 1, i6 = (1 << e8) - 1, N4 = i6 >> 1, n6 = 23 === h6 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, u6 = r6 ? 0 : M4 - 1, l6 = r6 ? 1 : -1, s6 = t6 < 0 || 0 === t6 && 1 / t6 < 0 ? 1 : 0; + for (t6 = Math.abs(t6), isNaN(t6) || t6 === 1 / 0 ? (p6 = isNaN(t6) ? 1 : 0, f7 = i6) : (f7 = Math.floor(Math.log(t6) / Math.LN2), t6 * (w4 = Math.pow(2, -f7)) < 1 && (f7--, w4 *= 2), (t6 += f7 + N4 >= 1 ? n6 / w4 : n6 * Math.pow(2, 1 - N4)) * w4 >= 2 && (f7++, w4 /= 2), f7 + N4 >= i6 ? (p6 = 0, f7 = i6) : f7 + N4 >= 1 ? (p6 = (t6 * w4 - 1) * Math.pow(2, h6), f7 += N4) : (p6 = t6 * Math.pow(2, N4 - 1) * Math.pow(2, h6), f7 = 0)); h6 >= 8; a6[o6 + u6] = 255 & p6, u6 += l6, p6 /= 256, h6 -= 8) + ; + for (f7 = f7 << h6 | p6, e8 += h6; e8 > 0; a6[o6 + u6] = 255 & f7, u6 += l6, f7 /= 256, e8 -= 8) + ; + a6[o6 + u6 - l6] |= 128 * s6; +} }; +var e$1$1 = {}; +var n$1$1 = r$13; +var i$12 = a$1$1; +var o$1$1 = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null; +e$1$1.Buffer = u$1$1, e$1$1.SlowBuffer = function(t6) { + +t6 != t6 && (t6 = 0); + return u$1$1.alloc(+t6); +}, e$1$1.INSPECT_MAX_BYTES = 50; +function f$2(t6) { + if (t6 > 2147483647) + throw new RangeError('The value "' + t6 + '" is invalid for option "size"'); + var r6 = new Uint8Array(t6); + return Object.setPrototypeOf(r6, u$1$1.prototype), r6; +} +function u$1$1(t6, r6, e8) { + if ("number" == typeof t6) { + if ("string" == typeof r6) + throw new TypeError('The "string" argument must be of type string. Received type number'); + return a$2(t6); + } + return s$1(t6, r6, e8); +} +function s$1(t6, r6, e8) { + if ("string" == typeof t6) + return function(t7, r7) { + "string" == typeof r7 && "" !== r7 || (r7 = "utf8"); + if (!u$1$1.isEncoding(r7)) + throw new TypeError("Unknown encoding: " + r7); + var e9 = 0 | y3(t7, r7), n7 = f$2(e9), i7 = n7.write(t7, r7); + i7 !== e9 && (n7 = n7.slice(0, i7)); + return n7; + }(t6, r6); + if (ArrayBuffer.isView(t6)) + return p4(t6); + if (null == t6) + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t6); + if (F2(t6, ArrayBuffer) || t6 && F2(t6.buffer, ArrayBuffer)) + return c$1$1(t6, r6, e8); + if ("undefined" != typeof SharedArrayBuffer && (F2(t6, SharedArrayBuffer) || t6 && F2(t6.buffer, SharedArrayBuffer))) + return c$1$1(t6, r6, e8); + if ("number" == typeof t6) + throw new TypeError('The "value" argument must not be of type number. Received type number'); + var n6 = t6.valueOf && t6.valueOf(); + if (null != n6 && n6 !== t6) + return u$1$1.from(n6, r6, e8); + var i6 = function(t7) { + if (u$1$1.isBuffer(t7)) { + var r7 = 0 | l$12(t7.length), e9 = f$2(r7); + return 0 === e9.length || t7.copy(e9, 0, 0, r7), e9; + } + if (void 0 !== t7.length) + return "number" != typeof t7.length || N2(t7.length) ? f$2(0) : p4(t7); + if ("Buffer" === t7.type && Array.isArray(t7.data)) + return p4(t7.data); + }(t6); + if (i6) + return i6; + if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t6[Symbol.toPrimitive]) + return u$1$1.from(t6[Symbol.toPrimitive]("string"), r6, e8); + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t6); +} +function h$1$1(t6) { + if ("number" != typeof t6) + throw new TypeError('"size" argument must be of type number'); + if (t6 < 0) + throw new RangeError('The value "' + t6 + '" is invalid for option "size"'); +} +function a$2(t6) { + return h$1$1(t6), f$2(t6 < 0 ? 0 : 0 | l$12(t6)); +} +function p4(t6) { + for (var r6 = t6.length < 0 ? 0 : 0 | l$12(t6.length), e8 = f$2(r6), n6 = 0; n6 < r6; n6 += 1) + e8[n6] = 255 & t6[n6]; + return e8; +} +function c$1$1(t6, r6, e8) { + if (r6 < 0 || t6.byteLength < r6) + throw new RangeError('"offset" is outside of buffer bounds'); + if (t6.byteLength < r6 + (e8 || 0)) + throw new RangeError('"length" is outside of buffer bounds'); + var n6; + return n6 = void 0 === r6 && void 0 === e8 ? new Uint8Array(t6) : void 0 === e8 ? new Uint8Array(t6, r6) : new Uint8Array(t6, r6, e8), Object.setPrototypeOf(n6, u$1$1.prototype), n6; +} +function l$12(t6) { + if (t6 >= 2147483647) + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + 2147483647 .toString(16) + " bytes"); + return 0 | t6; +} +function y3(t6, r6) { + if (u$1$1.isBuffer(t6)) + return t6.length; + if (ArrayBuffer.isView(t6) || F2(t6, ArrayBuffer)) + return t6.byteLength; + if ("string" != typeof t6) + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t6); + var e8 = t6.length, n6 = arguments.length > 2 && true === arguments[2]; + if (!n6 && 0 === e8) + return 0; + for (var i6 = false; ; ) + switch (r6) { + case "ascii": + case "latin1": + case "binary": + return e8; + case "utf8": + case "utf-8": + return _2(t6).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return 2 * e8; + case "hex": + return e8 >>> 1; + case "base64": + return z2(t6).length; + default: + if (i6) + return n6 ? -1 : _2(t6).length; + r6 = ("" + r6).toLowerCase(), i6 = true; + } +} +function g2(t6, r6, e8) { + var n6 = false; + if ((void 0 === r6 || r6 < 0) && (r6 = 0), r6 > this.length) + return ""; + if ((void 0 === e8 || e8 > this.length) && (e8 = this.length), e8 <= 0) + return ""; + if ((e8 >>>= 0) <= (r6 >>>= 0)) + return ""; + for (t6 || (t6 = "utf8"); ; ) + switch (t6) { + case "hex": + return O2(this, r6, e8); + case "utf8": + case "utf-8": + return I2(this, r6, e8); + case "ascii": + return S2(this, r6, e8); + case "latin1": + case "binary": + return R2(this, r6, e8); + case "base64": + return T3(this, r6, e8); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return L2(this, r6, e8); + default: + if (n6) + throw new TypeError("Unknown encoding: " + t6); + t6 = (t6 + "").toLowerCase(), n6 = true; + } +} +function w2(t6, r6, e8) { + var n6 = t6[r6]; + t6[r6] = t6[e8], t6[e8] = n6; +} +function d3(t6, r6, e8, n6, i6) { + if (0 === t6.length) + return -1; + if ("string" == typeof e8 ? (n6 = e8, e8 = 0) : e8 > 2147483647 ? e8 = 2147483647 : e8 < -2147483648 && (e8 = -2147483648), N2(e8 = +e8) && (e8 = i6 ? 0 : t6.length - 1), e8 < 0 && (e8 = t6.length + e8), e8 >= t6.length) { + if (i6) + return -1; + e8 = t6.length - 1; + } else if (e8 < 0) { + if (!i6) + return -1; + e8 = 0; + } + if ("string" == typeof r6 && (r6 = u$1$1.from(r6, n6)), u$1$1.isBuffer(r6)) + return 0 === r6.length ? -1 : v3(t6, r6, e8, n6, i6); + if ("number" == typeof r6) + return r6 &= 255, "function" == typeof Uint8Array.prototype.indexOf ? i6 ? Uint8Array.prototype.indexOf.call(t6, r6, e8) : Uint8Array.prototype.lastIndexOf.call(t6, r6, e8) : v3(t6, [r6], e8, n6, i6); + throw new TypeError("val must be string, number or Buffer"); +} +function v3(t6, r6, e8, n6, i6) { + var o6, f7 = 1, u6 = t6.length, s6 = r6.length; + if (void 0 !== n6 && ("ucs2" === (n6 = String(n6).toLowerCase()) || "ucs-2" === n6 || "utf16le" === n6 || "utf-16le" === n6)) { + if (t6.length < 2 || r6.length < 2) + return -1; + f7 = 2, u6 /= 2, s6 /= 2, e8 /= 2; + } + function h6(t7, r7) { + return 1 === f7 ? t7[r7] : t7.readUInt16BE(r7 * f7); + } + if (i6) { + var a6 = -1; + for (o6 = e8; o6 < u6; o6++) + if (h6(t6, o6) === h6(r6, -1 === a6 ? 0 : o6 - a6)) { + if (-1 === a6 && (a6 = o6), o6 - a6 + 1 === s6) + return a6 * f7; + } else + -1 !== a6 && (o6 -= o6 - a6), a6 = -1; + } else + for (e8 + s6 > u6 && (e8 = u6 - s6), o6 = e8; o6 >= 0; o6--) { + for (var p6 = true, c6 = 0; c6 < s6; c6++) + if (h6(t6, o6 + c6) !== h6(r6, c6)) { + p6 = false; + break; + } + if (p6) + return o6; + } + return -1; +} +function b2(t6, r6, e8, n6) { + e8 = Number(e8) || 0; + var i6 = t6.length - e8; + n6 ? (n6 = Number(n6)) > i6 && (n6 = i6) : n6 = i6; + var o6 = r6.length; + n6 > o6 / 2 && (n6 = o6 / 2); + for (var f7 = 0; f7 < n6; ++f7) { + var u6 = parseInt(r6.substr(2 * f7, 2), 16); + if (N2(u6)) + return f7; + t6[e8 + f7] = u6; + } + return f7; +} +function m3(t6, r6, e8, n6) { + return D2(_2(r6, t6.length - e8), t6, e8, n6); +} +function E2(t6, r6, e8, n6) { + return D2(function(t7) { + for (var r7 = [], e9 = 0; e9 < t7.length; ++e9) + r7.push(255 & t7.charCodeAt(e9)); + return r7; + }(r6), t6, e8, n6); +} +function B2(t6, r6, e8, n6) { + return E2(t6, r6, e8, n6); +} +function A2(t6, r6, e8, n6) { + return D2(z2(r6), t6, e8, n6); +} +function U2(t6, r6, e8, n6) { + return D2(function(t7, r7) { + for (var e9, n7, i6, o6 = [], f7 = 0; f7 < t7.length && !((r7 -= 2) < 0); ++f7) + e9 = t7.charCodeAt(f7), n7 = e9 >> 8, i6 = e9 % 256, o6.push(i6), o6.push(n7); + return o6; + }(r6, t6.length - e8), t6, e8, n6); +} +function T3(t6, r6, e8) { + return 0 === r6 && e8 === t6.length ? n$1$1.fromByteArray(t6) : n$1$1.fromByteArray(t6.slice(r6, e8)); +} +function I2(t6, r6, e8) { + e8 = Math.min(t6.length, e8); + for (var n6 = [], i6 = r6; i6 < e8; ) { + var o6, f7, u6, s6, h6 = t6[i6], a6 = null, p6 = h6 > 239 ? 4 : h6 > 223 ? 3 : h6 > 191 ? 2 : 1; + if (i6 + p6 <= e8) + switch (p6) { + case 1: + h6 < 128 && (a6 = h6); + break; + case 2: + 128 == (192 & (o6 = t6[i6 + 1])) && (s6 = (31 & h6) << 6 | 63 & o6) > 127 && (a6 = s6); + break; + case 3: + o6 = t6[i6 + 1], f7 = t6[i6 + 2], 128 == (192 & o6) && 128 == (192 & f7) && (s6 = (15 & h6) << 12 | (63 & o6) << 6 | 63 & f7) > 2047 && (s6 < 55296 || s6 > 57343) && (a6 = s6); + break; + case 4: + o6 = t6[i6 + 1], f7 = t6[i6 + 2], u6 = t6[i6 + 3], 128 == (192 & o6) && 128 == (192 & f7) && 128 == (192 & u6) && (s6 = (15 & h6) << 18 | (63 & o6) << 12 | (63 & f7) << 6 | 63 & u6) > 65535 && s6 < 1114112 && (a6 = s6); + } + null === a6 ? (a6 = 65533, p6 = 1) : a6 > 65535 && (a6 -= 65536, n6.push(a6 >>> 10 & 1023 | 55296), a6 = 56320 | 1023 & a6), n6.push(a6), i6 += p6; + } + return function(t7) { + var r7 = t7.length; + if (r7 <= 4096) + return String.fromCharCode.apply(String, t7); + var e9 = "", n7 = 0; + for (; n7 < r7; ) + e9 += String.fromCharCode.apply(String, t7.slice(n7, n7 += 4096)); + return e9; + }(n6); +} +e$1$1.kMaxLength = 2147483647, u$1$1.TYPED_ARRAY_SUPPORT = function() { + try { + var t6 = new Uint8Array(1), r6 = { foo: function() { + return 42; + } }; + return Object.setPrototypeOf(r6, Uint8Array.prototype), Object.setPrototypeOf(t6, r6), 42 === t6.foo(); + } catch (t7) { + return false; + } +}(), u$1$1.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(u$1$1.prototype, "parent", { enumerable: true, get: function() { + if (u$1$1.isBuffer(this)) + return this.buffer; +} }), Object.defineProperty(u$1$1.prototype, "offset", { enumerable: true, get: function() { + if (u$1$1.isBuffer(this)) + return this.byteOffset; +} }), u$1$1.poolSize = 8192, u$1$1.from = function(t6, r6, e8) { + return s$1(t6, r6, e8); +}, Object.setPrototypeOf(u$1$1.prototype, Uint8Array.prototype), Object.setPrototypeOf(u$1$1, Uint8Array), u$1$1.alloc = function(t6, r6, e8) { + return function(t7, r7, e9) { + return h$1$1(t7), t7 <= 0 ? f$2(t7) : void 0 !== r7 ? "string" == typeof e9 ? f$2(t7).fill(r7, e9) : f$2(t7).fill(r7) : f$2(t7); + }(t6, r6, e8); +}, u$1$1.allocUnsafe = function(t6) { + return a$2(t6); +}, u$1$1.allocUnsafeSlow = function(t6) { + return a$2(t6); +}, u$1$1.isBuffer = function(t6) { + return null != t6 && true === t6._isBuffer && t6 !== u$1$1.prototype; +}, u$1$1.compare = function(t6, r6) { + if (F2(t6, Uint8Array) && (t6 = u$1$1.from(t6, t6.offset, t6.byteLength)), F2(r6, Uint8Array) && (r6 = u$1$1.from(r6, r6.offset, r6.byteLength)), !u$1$1.isBuffer(t6) || !u$1$1.isBuffer(r6)) + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + if (t6 === r6) + return 0; + for (var e8 = t6.length, n6 = r6.length, i6 = 0, o6 = Math.min(e8, n6); i6 < o6; ++i6) + if (t6[i6] !== r6[i6]) { + e8 = t6[i6], n6 = r6[i6]; + break; + } + return e8 < n6 ? -1 : n6 < e8 ? 1 : 0; +}, u$1$1.isEncoding = function(t6) { + switch (String(t6).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } +}, u$1$1.concat = function(t6, r6) { + if (!Array.isArray(t6)) + throw new TypeError('"list" argument must be an Array of Buffers'); + if (0 === t6.length) + return u$1$1.alloc(0); + var e8; + if (void 0 === r6) + for (r6 = 0, e8 = 0; e8 < t6.length; ++e8) + r6 += t6[e8].length; + var n6 = u$1$1.allocUnsafe(r6), i6 = 0; + for (e8 = 0; e8 < t6.length; ++e8) { + var o6 = t6[e8]; + if (F2(o6, Uint8Array) && (o6 = u$1$1.from(o6)), !u$1$1.isBuffer(o6)) + throw new TypeError('"list" argument must be an Array of Buffers'); + o6.copy(n6, i6), i6 += o6.length; + } + return n6; +}, u$1$1.byteLength = y3, u$1$1.prototype._isBuffer = true, u$1$1.prototype.swap16 = function() { + var t6 = this.length; + if (t6 % 2 != 0) + throw new RangeError("Buffer size must be a multiple of 16-bits"); + for (var r6 = 0; r6 < t6; r6 += 2) + w2(this, r6, r6 + 1); + return this; +}, u$1$1.prototype.swap32 = function() { + var t6 = this.length; + if (t6 % 4 != 0) + throw new RangeError("Buffer size must be a multiple of 32-bits"); + for (var r6 = 0; r6 < t6; r6 += 4) + w2(this, r6, r6 + 3), w2(this, r6 + 1, r6 + 2); + return this; +}, u$1$1.prototype.swap64 = function() { + var t6 = this.length; + if (t6 % 8 != 0) + throw new RangeError("Buffer size must be a multiple of 64-bits"); + for (var r6 = 0; r6 < t6; r6 += 8) + w2(this, r6, r6 + 7), w2(this, r6 + 1, r6 + 6), w2(this, r6 + 2, r6 + 5), w2(this, r6 + 3, r6 + 4); + return this; +}, u$1$1.prototype.toString = function() { + var t6 = this.length; + return 0 === t6 ? "" : 0 === arguments.length ? I2(this, 0, t6) : g2.apply(this, arguments); +}, u$1$1.prototype.toLocaleString = u$1$1.prototype.toString, u$1$1.prototype.equals = function(t6) { + if (!u$1$1.isBuffer(t6)) + throw new TypeError("Argument must be a Buffer"); + return this === t6 || 0 === u$1$1.compare(this, t6); +}, u$1$1.prototype.inspect = function() { + var t6 = "", r6 = e$1$1.INSPECT_MAX_BYTES; + return t6 = this.toString("hex", 0, r6).replace(/(.{2})/g, "$1 ").trim(), this.length > r6 && (t6 += " ... "), ""; +}, o$1$1 && (u$1$1.prototype[o$1$1] = u$1$1.prototype.inspect), u$1$1.prototype.compare = function(t6, r6, e8, n6, i6) { + if (F2(t6, Uint8Array) && (t6 = u$1$1.from(t6, t6.offset, t6.byteLength)), !u$1$1.isBuffer(t6)) + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t6); + if (void 0 === r6 && (r6 = 0), void 0 === e8 && (e8 = t6 ? t6.length : 0), void 0 === n6 && (n6 = 0), void 0 === i6 && (i6 = this.length), r6 < 0 || e8 > t6.length || n6 < 0 || i6 > this.length) + throw new RangeError("out of range index"); + if (n6 >= i6 && r6 >= e8) + return 0; + if (n6 >= i6) + return -1; + if (r6 >= e8) + return 1; + if (this === t6) + return 0; + for (var o6 = (i6 >>>= 0) - (n6 >>>= 0), f7 = (e8 >>>= 0) - (r6 >>>= 0), s6 = Math.min(o6, f7), h6 = this.slice(n6, i6), a6 = t6.slice(r6, e8), p6 = 0; p6 < s6; ++p6) + if (h6[p6] !== a6[p6]) { + o6 = h6[p6], f7 = a6[p6]; + break; + } + return o6 < f7 ? -1 : f7 < o6 ? 1 : 0; +}, u$1$1.prototype.includes = function(t6, r6, e8) { + return -1 !== this.indexOf(t6, r6, e8); +}, u$1$1.prototype.indexOf = function(t6, r6, e8) { + return d3(this, t6, r6, e8, true); +}, u$1$1.prototype.lastIndexOf = function(t6, r6, e8) { + return d3(this, t6, r6, e8, false); +}, u$1$1.prototype.write = function(t6, r6, e8, n6) { + if (void 0 === r6) + n6 = "utf8", e8 = this.length, r6 = 0; + else if (void 0 === e8 && "string" == typeof r6) + n6 = r6, e8 = this.length, r6 = 0; + else { + if (!isFinite(r6)) + throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + r6 >>>= 0, isFinite(e8) ? (e8 >>>= 0, void 0 === n6 && (n6 = "utf8")) : (n6 = e8, e8 = void 0); + } + var i6 = this.length - r6; + if ((void 0 === e8 || e8 > i6) && (e8 = i6), t6.length > 0 && (e8 < 0 || r6 < 0) || r6 > this.length) + throw new RangeError("Attempt to write outside buffer bounds"); + n6 || (n6 = "utf8"); + for (var o6 = false; ; ) + switch (n6) { + case "hex": + return b2(this, t6, r6, e8); + case "utf8": + case "utf-8": + return m3(this, t6, r6, e8); + case "ascii": + return E2(this, t6, r6, e8); + case "latin1": + case "binary": + return B2(this, t6, r6, e8); + case "base64": + return A2(this, t6, r6, e8); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return U2(this, t6, r6, e8); + default: + if (o6) + throw new TypeError("Unknown encoding: " + n6); + n6 = ("" + n6).toLowerCase(), o6 = true; + } +}, u$1$1.prototype.toJSON = function() { + return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) }; +}; +function S2(t6, r6, e8) { + var n6 = ""; + e8 = Math.min(t6.length, e8); + for (var i6 = r6; i6 < e8; ++i6) + n6 += String.fromCharCode(127 & t6[i6]); + return n6; +} +function R2(t6, r6, e8) { + var n6 = ""; + e8 = Math.min(t6.length, e8); + for (var i6 = r6; i6 < e8; ++i6) + n6 += String.fromCharCode(t6[i6]); + return n6; +} +function O2(t6, r6, e8) { + var n6 = t6.length; + (!r6 || r6 < 0) && (r6 = 0), (!e8 || e8 < 0 || e8 > n6) && (e8 = n6); + for (var i6 = "", o6 = r6; o6 < e8; ++o6) + i6 += Y2[t6[o6]]; + return i6; +} +function L2(t6, r6, e8) { + for (var n6 = t6.slice(r6, e8), i6 = "", o6 = 0; o6 < n6.length; o6 += 2) + i6 += String.fromCharCode(n6[o6] + 256 * n6[o6 + 1]); + return i6; +} +function x2(t6, r6, e8) { + if (t6 % 1 != 0 || t6 < 0) + throw new RangeError("offset is not uint"); + if (t6 + r6 > e8) + throw new RangeError("Trying to access beyond buffer length"); +} +function C2(t6, r6, e8, n6, i6, o6) { + if (!u$1$1.isBuffer(t6)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (r6 > i6 || r6 < o6) + throw new RangeError('"value" argument is out of bounds'); + if (e8 + n6 > t6.length) + throw new RangeError("Index out of range"); +} +function P2(t6, r6, e8, n6, i6, o6) { + if (e8 + n6 > t6.length) + throw new RangeError("Index out of range"); + if (e8 < 0) + throw new RangeError("Index out of range"); +} +function k2(t6, r6, e8, n6, o6) { + return r6 = +r6, e8 >>>= 0, o6 || P2(t6, 0, e8, 4), i$12.write(t6, r6, e8, n6, 23, 4), e8 + 4; +} +function M2(t6, r6, e8, n6, o6) { + return r6 = +r6, e8 >>>= 0, o6 || P2(t6, 0, e8, 8), i$12.write(t6, r6, e8, n6, 52, 8), e8 + 8; +} +u$1$1.prototype.slice = function(t6, r6) { + var e8 = this.length; + (t6 = ~~t6) < 0 ? (t6 += e8) < 0 && (t6 = 0) : t6 > e8 && (t6 = e8), (r6 = void 0 === r6 ? e8 : ~~r6) < 0 ? (r6 += e8) < 0 && (r6 = 0) : r6 > e8 && (r6 = e8), r6 < t6 && (r6 = t6); + var n6 = this.subarray(t6, r6); + return Object.setPrototypeOf(n6, u$1$1.prototype), n6; +}, u$1$1.prototype.readUIntLE = function(t6, r6, e8) { + t6 >>>= 0, r6 >>>= 0, e8 || x2(t6, r6, this.length); + for (var n6 = this[t6], i6 = 1, o6 = 0; ++o6 < r6 && (i6 *= 256); ) + n6 += this[t6 + o6] * i6; + return n6; +}, u$1$1.prototype.readUIntBE = function(t6, r6, e8) { + t6 >>>= 0, r6 >>>= 0, e8 || x2(t6, r6, this.length); + for (var n6 = this[t6 + --r6], i6 = 1; r6 > 0 && (i6 *= 256); ) + n6 += this[t6 + --r6] * i6; + return n6; +}, u$1$1.prototype.readUInt8 = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 1, this.length), this[t6]; +}, u$1$1.prototype.readUInt16LE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 2, this.length), this[t6] | this[t6 + 1] << 8; +}, u$1$1.prototype.readUInt16BE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 2, this.length), this[t6] << 8 | this[t6 + 1]; +}, u$1$1.prototype.readUInt32LE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), (this[t6] | this[t6 + 1] << 8 | this[t6 + 2] << 16) + 16777216 * this[t6 + 3]; +}, u$1$1.prototype.readUInt32BE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), 16777216 * this[t6] + (this[t6 + 1] << 16 | this[t6 + 2] << 8 | this[t6 + 3]); +}, u$1$1.prototype.readIntLE = function(t6, r6, e8) { + t6 >>>= 0, r6 >>>= 0, e8 || x2(t6, r6, this.length); + for (var n6 = this[t6], i6 = 1, o6 = 0; ++o6 < r6 && (i6 *= 256); ) + n6 += this[t6 + o6] * i6; + return n6 >= (i6 *= 128) && (n6 -= Math.pow(2, 8 * r6)), n6; +}, u$1$1.prototype.readIntBE = function(t6, r6, e8) { + t6 >>>= 0, r6 >>>= 0, e8 || x2(t6, r6, this.length); + for (var n6 = r6, i6 = 1, o6 = this[t6 + --n6]; n6 > 0 && (i6 *= 256); ) + o6 += this[t6 + --n6] * i6; + return o6 >= (i6 *= 128) && (o6 -= Math.pow(2, 8 * r6)), o6; +}, u$1$1.prototype.readInt8 = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 1, this.length), 128 & this[t6] ? -1 * (255 - this[t6] + 1) : this[t6]; +}, u$1$1.prototype.readInt16LE = function(t6, r6) { + t6 >>>= 0, r6 || x2(t6, 2, this.length); + var e8 = this[t6] | this[t6 + 1] << 8; + return 32768 & e8 ? 4294901760 | e8 : e8; +}, u$1$1.prototype.readInt16BE = function(t6, r6) { + t6 >>>= 0, r6 || x2(t6, 2, this.length); + var e8 = this[t6 + 1] | this[t6] << 8; + return 32768 & e8 ? 4294901760 | e8 : e8; +}, u$1$1.prototype.readInt32LE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), this[t6] | this[t6 + 1] << 8 | this[t6 + 2] << 16 | this[t6 + 3] << 24; +}, u$1$1.prototype.readInt32BE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), this[t6] << 24 | this[t6 + 1] << 16 | this[t6 + 2] << 8 | this[t6 + 3]; +}, u$1$1.prototype.readFloatLE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), i$12.read(this, t6, true, 23, 4); +}, u$1$1.prototype.readFloatBE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 4, this.length), i$12.read(this, t6, false, 23, 4); +}, u$1$1.prototype.readDoubleLE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 8, this.length), i$12.read(this, t6, true, 52, 8); +}, u$1$1.prototype.readDoubleBE = function(t6, r6) { + return t6 >>>= 0, r6 || x2(t6, 8, this.length), i$12.read(this, t6, false, 52, 8); +}, u$1$1.prototype.writeUIntLE = function(t6, r6, e8, n6) { + (t6 = +t6, r6 >>>= 0, e8 >>>= 0, n6) || C2(this, t6, r6, e8, Math.pow(2, 8 * e8) - 1, 0); + var i6 = 1, o6 = 0; + for (this[r6] = 255 & t6; ++o6 < e8 && (i6 *= 256); ) + this[r6 + o6] = t6 / i6 & 255; + return r6 + e8; +}, u$1$1.prototype.writeUIntBE = function(t6, r6, e8, n6) { + (t6 = +t6, r6 >>>= 0, e8 >>>= 0, n6) || C2(this, t6, r6, e8, Math.pow(2, 8 * e8) - 1, 0); + var i6 = e8 - 1, o6 = 1; + for (this[r6 + i6] = 255 & t6; --i6 >= 0 && (o6 *= 256); ) + this[r6 + i6] = t6 / o6 & 255; + return r6 + e8; +}, u$1$1.prototype.writeUInt8 = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 1, 255, 0), this[r6] = 255 & t6, r6 + 1; +}, u$1$1.prototype.writeUInt16LE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 2, 65535, 0), this[r6] = 255 & t6, this[r6 + 1] = t6 >>> 8, r6 + 2; +}, u$1$1.prototype.writeUInt16BE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 2, 65535, 0), this[r6] = t6 >>> 8, this[r6 + 1] = 255 & t6, r6 + 2; +}, u$1$1.prototype.writeUInt32LE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 4, 4294967295, 0), this[r6 + 3] = t6 >>> 24, this[r6 + 2] = t6 >>> 16, this[r6 + 1] = t6 >>> 8, this[r6] = 255 & t6, r6 + 4; +}, u$1$1.prototype.writeUInt32BE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 4, 4294967295, 0), this[r6] = t6 >>> 24, this[r6 + 1] = t6 >>> 16, this[r6 + 2] = t6 >>> 8, this[r6 + 3] = 255 & t6, r6 + 4; +}, u$1$1.prototype.writeIntLE = function(t6, r6, e8, n6) { + if (t6 = +t6, r6 >>>= 0, !n6) { + var i6 = Math.pow(2, 8 * e8 - 1); + C2(this, t6, r6, e8, i6 - 1, -i6); + } + var o6 = 0, f7 = 1, u6 = 0; + for (this[r6] = 255 & t6; ++o6 < e8 && (f7 *= 256); ) + t6 < 0 && 0 === u6 && 0 !== this[r6 + o6 - 1] && (u6 = 1), this[r6 + o6] = (t6 / f7 >> 0) - u6 & 255; + return r6 + e8; +}, u$1$1.prototype.writeIntBE = function(t6, r6, e8, n6) { + if (t6 = +t6, r6 >>>= 0, !n6) { + var i6 = Math.pow(2, 8 * e8 - 1); + C2(this, t6, r6, e8, i6 - 1, -i6); + } + var o6 = e8 - 1, f7 = 1, u6 = 0; + for (this[r6 + o6] = 255 & t6; --o6 >= 0 && (f7 *= 256); ) + t6 < 0 && 0 === u6 && 0 !== this[r6 + o6 + 1] && (u6 = 1), this[r6 + o6] = (t6 / f7 >> 0) - u6 & 255; + return r6 + e8; +}, u$1$1.prototype.writeInt8 = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 1, 127, -128), t6 < 0 && (t6 = 255 + t6 + 1), this[r6] = 255 & t6, r6 + 1; +}, u$1$1.prototype.writeInt16LE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 2, 32767, -32768), this[r6] = 255 & t6, this[r6 + 1] = t6 >>> 8, r6 + 2; +}, u$1$1.prototype.writeInt16BE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 2, 32767, -32768), this[r6] = t6 >>> 8, this[r6 + 1] = 255 & t6, r6 + 2; +}, u$1$1.prototype.writeInt32LE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 4, 2147483647, -2147483648), this[r6] = 255 & t6, this[r6 + 1] = t6 >>> 8, this[r6 + 2] = t6 >>> 16, this[r6 + 3] = t6 >>> 24, r6 + 4; +}, u$1$1.prototype.writeInt32BE = function(t6, r6, e8) { + return t6 = +t6, r6 >>>= 0, e8 || C2(this, t6, r6, 4, 2147483647, -2147483648), t6 < 0 && (t6 = 4294967295 + t6 + 1), this[r6] = t6 >>> 24, this[r6 + 1] = t6 >>> 16, this[r6 + 2] = t6 >>> 8, this[r6 + 3] = 255 & t6, r6 + 4; +}, u$1$1.prototype.writeFloatLE = function(t6, r6, e8) { + return k2(this, t6, r6, true, e8); +}, u$1$1.prototype.writeFloatBE = function(t6, r6, e8) { + return k2(this, t6, r6, false, e8); +}, u$1$1.prototype.writeDoubleLE = function(t6, r6, e8) { + return M2(this, t6, r6, true, e8); +}, u$1$1.prototype.writeDoubleBE = function(t6, r6, e8) { + return M2(this, t6, r6, false, e8); +}, u$1$1.prototype.copy = function(t6, r6, e8, n6) { + if (!u$1$1.isBuffer(t6)) + throw new TypeError("argument should be a Buffer"); + if (e8 || (e8 = 0), n6 || 0 === n6 || (n6 = this.length), r6 >= t6.length && (r6 = t6.length), r6 || (r6 = 0), n6 > 0 && n6 < e8 && (n6 = e8), n6 === e8) + return 0; + if (0 === t6.length || 0 === this.length) + return 0; + if (r6 < 0) + throw new RangeError("targetStart out of bounds"); + if (e8 < 0 || e8 >= this.length) + throw new RangeError("Index out of range"); + if (n6 < 0) + throw new RangeError("sourceEnd out of bounds"); + n6 > this.length && (n6 = this.length), t6.length - r6 < n6 - e8 && (n6 = t6.length - r6 + e8); + var i6 = n6 - e8; + if (this === t6 && "function" == typeof Uint8Array.prototype.copyWithin) + this.copyWithin(r6, e8, n6); + else if (this === t6 && e8 < r6 && r6 < n6) + for (var o6 = i6 - 1; o6 >= 0; --o6) + t6[o6 + r6] = this[o6 + e8]; + else + Uint8Array.prototype.set.call(t6, this.subarray(e8, n6), r6); + return i6; +}, u$1$1.prototype.fill = function(t6, r6, e8, n6) { + if ("string" == typeof t6) { + if ("string" == typeof r6 ? (n6 = r6, r6 = 0, e8 = this.length) : "string" == typeof e8 && (n6 = e8, e8 = this.length), void 0 !== n6 && "string" != typeof n6) + throw new TypeError("encoding must be a string"); + if ("string" == typeof n6 && !u$1$1.isEncoding(n6)) + throw new TypeError("Unknown encoding: " + n6); + if (1 === t6.length) { + var i6 = t6.charCodeAt(0); + ("utf8" === n6 && i6 < 128 || "latin1" === n6) && (t6 = i6); + } + } else + "number" == typeof t6 ? t6 &= 255 : "boolean" == typeof t6 && (t6 = Number(t6)); + if (r6 < 0 || this.length < r6 || this.length < e8) + throw new RangeError("Out of range index"); + if (e8 <= r6) + return this; + var o6; + if (r6 >>>= 0, e8 = void 0 === e8 ? this.length : e8 >>> 0, t6 || (t6 = 0), "number" == typeof t6) + for (o6 = r6; o6 < e8; ++o6) + this[o6] = t6; + else { + var f7 = u$1$1.isBuffer(t6) ? t6 : u$1$1.from(t6, n6), s6 = f7.length; + if (0 === s6) + throw new TypeError('The value "' + t6 + '" is invalid for argument "value"'); + for (o6 = 0; o6 < e8 - r6; ++o6) + this[o6 + r6] = f7[o6 % s6]; + } + return this; +}; +var j2 = /[^+/0-9A-Za-z-_]/g; +function _2(t6, r6) { + var e8; + r6 = r6 || 1 / 0; + for (var n6 = t6.length, i6 = null, o6 = [], f7 = 0; f7 < n6; ++f7) { + if ((e8 = t6.charCodeAt(f7)) > 55295 && e8 < 57344) { + if (!i6) { + if (e8 > 56319) { + (r6 -= 3) > -1 && o6.push(239, 191, 189); + continue; + } + if (f7 + 1 === n6) { + (r6 -= 3) > -1 && o6.push(239, 191, 189); + continue; + } + i6 = e8; + continue; + } + if (e8 < 56320) { + (r6 -= 3) > -1 && o6.push(239, 191, 189), i6 = e8; + continue; + } + e8 = 65536 + (i6 - 55296 << 10 | e8 - 56320); + } else + i6 && (r6 -= 3) > -1 && o6.push(239, 191, 189); + if (i6 = null, e8 < 128) { + if ((r6 -= 1) < 0) + break; + o6.push(e8); + } else if (e8 < 2048) { + if ((r6 -= 2) < 0) + break; + o6.push(e8 >> 6 | 192, 63 & e8 | 128); + } else if (e8 < 65536) { + if ((r6 -= 3) < 0) + break; + o6.push(e8 >> 12 | 224, e8 >> 6 & 63 | 128, 63 & e8 | 128); + } else { + if (!(e8 < 1114112)) + throw new Error("Invalid code point"); + if ((r6 -= 4) < 0) + break; + o6.push(e8 >> 18 | 240, e8 >> 12 & 63 | 128, e8 >> 6 & 63 | 128, 63 & e8 | 128); + } + } + return o6; +} +function z2(t6) { + return n$1$1.toByteArray(function(t7) { + if ((t7 = (t7 = t7.split("=")[0]).trim().replace(j2, "")).length < 2) + return ""; + for (; t7.length % 4 != 0; ) + t7 += "="; + return t7; + }(t6)); +} +function D2(t6, r6, e8, n6) { + for (var i6 = 0; i6 < n6 && !(i6 + e8 >= r6.length || i6 >= t6.length); ++i6) + r6[i6 + e8] = t6[i6]; + return i6; +} +function F2(t6, r6) { + return t6 instanceof r6 || null != t6 && null != t6.constructor && null != t6.constructor.name && t6.constructor.name === r6.name; +} +function N2(t6) { + return t6 != t6; +} +var Y2 = function() { + for (var t6 = new Array(256), r6 = 0; r6 < 16; ++r6) + for (var e8 = 16 * r6, n6 = 0; n6 < 16; ++n6) + t6[e8 + n6] = "0123456789abcdef"[r6] + "0123456789abcdef"[n6]; + return t6; +}(); +e$1$1.Buffer; +e$1$1.INSPECT_MAX_BYTES; +e$1$1.kMaxLength; +var e4 = {}; +var n4 = e$1$1; +var o4 = n4.Buffer; +function t4(r6, e8) { + for (var n6 in r6) + e8[n6] = r6[n6]; +} +function f4(r6, e8, n6) { + return o4(r6, e8, n6); +} +o4.from && o4.alloc && o4.allocUnsafe && o4.allocUnsafeSlow ? e4 = n4 : (t4(n4, e4), e4.Buffer = f4), f4.prototype = Object.create(o4.prototype), t4(o4, f4), f4.from = function(r6, e8, n6) { + if ("number" == typeof r6) + throw new TypeError("Argument must not be a number"); + return o4(r6, e8, n6); +}, f4.alloc = function(r6, e8, n6) { + if ("number" != typeof r6) + throw new TypeError("Argument must be a number"); + var t6 = o4(r6); + return void 0 !== e8 ? "string" == typeof n6 ? t6.fill(e8, n6) : t6.fill(e8) : t6.fill(0), t6; +}, f4.allocUnsafe = function(r6) { + if ("number" != typeof r6) + throw new TypeError("Argument must be a number"); + return o4(r6); +}, f4.allocUnsafeSlow = function(r6) { + if ("number" != typeof r6) + throw new TypeError("Argument must be a number"); + return n4.SlowBuffer(r6); +}; +var u4 = e4; +var e$12 = {}; +var s4 = u4.Buffer; +var i4 = s4.isEncoding || function(t6) { + switch ((t6 = "" + t6) && t6.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return true; + default: + return false; + } +}; +function a4(t6) { + var e8; + switch (this.encoding = function(t7) { + var e9 = function(t8) { + if (!t8) + return "utf8"; + for (var e10; ; ) + switch (t8) { + case "utf8": + case "utf-8": + return "utf8"; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + case "latin1": + case "binary": + return "latin1"; + case "base64": + case "ascii": + case "hex": + return t8; + default: + if (e10) + return; + t8 = ("" + t8).toLowerCase(), e10 = true; + } + }(t7); + if ("string" != typeof e9 && (s4.isEncoding === i4 || !i4(t7))) + throw new Error("Unknown encoding: " + t7); + return e9 || t7; + }(t6), this.encoding) { + case "utf16le": + this.text = h4, this.end = l4, e8 = 4; + break; + case "utf8": + this.fillLast = n$12, e8 = 4; + break; + case "base64": + this.text = u$12, this.end = o$12, e8 = 3; + break; + default: + return this.write = f$1, this.end = c4, void 0; + } + this.lastNeed = 0, this.lastTotal = 0, this.lastChar = s4.allocUnsafe(e8); +} +function r4(t6) { + return t6 <= 127 ? 0 : t6 >> 5 == 6 ? 2 : t6 >> 4 == 14 ? 3 : t6 >> 3 == 30 ? 4 : t6 >> 6 == 2 ? -1 : -2; +} +function n$12(t6) { + var e8 = this.lastTotal - this.lastNeed, s6 = function(t7, e9, s7) { + if (128 != (192 & e9[0])) + return t7.lastNeed = 0, "\uFFFD"; + if (t7.lastNeed > 1 && e9.length > 1) { + if (128 != (192 & e9[1])) + return t7.lastNeed = 1, "\uFFFD"; + if (t7.lastNeed > 2 && e9.length > 2 && 128 != (192 & e9[2])) + return t7.lastNeed = 2, "\uFFFD"; + } + }(this, t6); + return void 0 !== s6 ? s6 : this.lastNeed <= t6.length ? (t6.copy(this.lastChar, e8, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (t6.copy(this.lastChar, e8, 0, t6.length), this.lastNeed -= t6.length, void 0); +} +function h4(t6, e8) { + if ((t6.length - e8) % 2 == 0) { + var s6 = t6.toString("utf16le", e8); + if (s6) { + var i6 = s6.charCodeAt(s6.length - 1); + if (i6 >= 55296 && i6 <= 56319) + return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t6[t6.length - 2], this.lastChar[1] = t6[t6.length - 1], s6.slice(0, -1); + } + return s6; + } + return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t6[t6.length - 1], t6.toString("utf16le", e8, t6.length - 1); +} +function l4(t6) { + var e8 = t6 && t6.length ? this.write(t6) : ""; + if (this.lastNeed) { + var s6 = this.lastTotal - this.lastNeed; + return e8 + this.lastChar.toString("utf16le", 0, s6); + } + return e8; +} +function u$12(t6, e8) { + var s6 = (t6.length - e8) % 3; + return 0 === s6 ? t6.toString("base64", e8) : (this.lastNeed = 3 - s6, this.lastTotal = 3, 1 === s6 ? this.lastChar[0] = t6[t6.length - 1] : (this.lastChar[0] = t6[t6.length - 2], this.lastChar[1] = t6[t6.length - 1]), t6.toString("base64", e8, t6.length - s6)); +} +function o$12(t6) { + var e8 = t6 && t6.length ? this.write(t6) : ""; + return this.lastNeed ? e8 + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : e8; +} +function f$1(t6) { + return t6.toString(this.encoding); +} +function c4(t6) { + return t6 && t6.length ? this.write(t6) : ""; +} +e$12.StringDecoder = a4, a4.prototype.write = function(t6) { + if (0 === t6.length) + return ""; + var e8, s6; + if (this.lastNeed) { + if (void 0 === (e8 = this.fillLast(t6))) + return ""; + s6 = this.lastNeed, this.lastNeed = 0; + } else + s6 = 0; + return s6 < t6.length ? e8 ? e8 + this.text(t6, s6) : this.text(t6, s6) : e8 || ""; +}, a4.prototype.end = function(t6) { + var e8 = t6 && t6.length ? this.write(t6) : ""; + return this.lastNeed ? e8 + "\uFFFD" : e8; +}, a4.prototype.text = function(t6, e8) { + var s6 = function(t7, e9, s7) { + var i7 = e9.length - 1; + if (i7 < s7) + return 0; + var a6 = r4(e9[i7]); + if (a6 >= 0) + return a6 > 0 && (t7.lastNeed = a6 - 1), a6; + if (--i7 < s7 || -2 === a6) + return 0; + if ((a6 = r4(e9[i7])) >= 0) + return a6 > 0 && (t7.lastNeed = a6 - 2), a6; + if (--i7 < s7 || -2 === a6) + return 0; + if ((a6 = r4(e9[i7])) >= 0) + return a6 > 0 && (2 === a6 ? a6 = 0 : t7.lastNeed = a6 - 3), a6; + return 0; + }(this, t6, e8); + if (!this.lastNeed) + return t6.toString("utf8", e8); + this.lastTotal = s6; + var i6 = t6.length - (s6 - this.lastNeed); + return t6.copy(this.lastChar, 0, i6), t6.toString("utf8", e8, i6); +}, a4.prototype.fillLast = function(t6) { + if (this.lastNeed <= t6.length) + return t6.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal); + t6.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t6.length), this.lastNeed -= t6.length; +}; +e$12.StringDecoder; +e$12.StringDecoder; + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-44e51b61.js +var exports$2$1 = {}; +var _dewExec$2$1 = false; +function dew$2$1() { + if (_dewExec$2$1) + return exports$2$1; + _dewExec$2$1 = true; + exports$2$1.byteLength = byteLength; + exports$2$1.toByteArray = toByteArray; + exports$2$1.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (var i6 = 0, len = code.length; i6 < len; ++i6) { + lookup[i6] = code[i6]; + revLookup[code.charCodeAt(i6)] = i6; + } + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) + validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i7; + for (i7 = 0; i7 < len2; i7 += 4) { + tmp = revLookup[b64.charCodeAt(i7)] << 18 | revLookup[b64.charCodeAt(i7 + 1)] << 12 | revLookup[b64.charCodeAt(i7 + 2)] << 6 | revLookup[b64.charCodeAt(i7 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i7)] << 2 | revLookup[b64.charCodeAt(i7 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i7)] << 10 | revLookup[b64.charCodeAt(i7 + 1)] << 4 | revLookup[b64.charCodeAt(i7 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num) { + return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i7 = start; i7 < end; i7 += 3) { + tmp = (uint8[i7] << 16 & 16711680) + (uint8[i7 + 1] << 8 & 65280) + (uint8[i7 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i7 = 0, len22 = len2 - extraBytes; i7 < len22; i7 += maxChunkLength) { + parts.push(encodeChunk(uint8, i7, i7 + maxChunkLength > len22 ? len22 : i7 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="); + } + return parts.join(""); + } + return exports$2$1; +} +var exports$1$1 = {}; +var _dewExec$1$1 = false; +function dew$1$1() { + if (_dewExec$1$1) + return exports$1$1; + _dewExec$1$1 = true; + exports$1$1.read = function(buffer2, offset, isLE, mLen, nBytes) { + var e8, m5; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i6 = isLE ? nBytes - 1 : 0; + var d5 = isLE ? -1 : 1; + var s6 = buffer2[offset + i6]; + i6 += d5; + e8 = s6 & (1 << -nBits) - 1; + s6 >>= -nBits; + nBits += eLen; + for (; nBits > 0; e8 = e8 * 256 + buffer2[offset + i6], i6 += d5, nBits -= 8) { + } + m5 = e8 & (1 << -nBits) - 1; + e8 >>= -nBits; + nBits += mLen; + for (; nBits > 0; m5 = m5 * 256 + buffer2[offset + i6], i6 += d5, nBits -= 8) { + } + if (e8 === 0) { + e8 = 1 - eBias; + } else if (e8 === eMax) { + return m5 ? NaN : (s6 ? -1 : 1) * Infinity; + } else { + m5 = m5 + Math.pow(2, mLen); + e8 = e8 - eBias; + } + return (s6 ? -1 : 1) * m5 * Math.pow(2, e8 - mLen); + }; + exports$1$1.write = function(buffer2, value, offset, isLE, mLen, nBytes) { + var e8, m5, c6; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i6 = isLE ? 0 : nBytes - 1; + var d5 = isLE ? 1 : -1; + var s6 = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m5 = isNaN(value) ? 1 : 0; + e8 = eMax; + } else { + e8 = Math.floor(Math.log(value) / Math.LN2); + if (value * (c6 = Math.pow(2, -e8)) < 1) { + e8--; + c6 *= 2; + } + if (e8 + eBias >= 1) { + value += rt / c6; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c6 >= 2) { + e8++; + c6 /= 2; + } + if (e8 + eBias >= eMax) { + m5 = 0; + e8 = eMax; + } else if (e8 + eBias >= 1) { + m5 = (value * c6 - 1) * Math.pow(2, mLen); + e8 = e8 + eBias; + } else { + m5 = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e8 = 0; + } + } + for (; mLen >= 8; buffer2[offset + i6] = m5 & 255, i6 += d5, m5 /= 256, mLen -= 8) { + } + e8 = e8 << mLen | m5; + eLen += mLen; + for (; eLen > 0; buffer2[offset + i6] = e8 & 255, i6 += d5, e8 /= 256, eLen -= 8) { + } + buffer2[offset + i6 - d5] |= s6 * 128; + }; + return exports$1$1; +} +var exports$g = {}; +var _dewExec$g = false; +function dew$g() { + if (_dewExec$g) + return exports$g; + _dewExec$g = true; + const base64 = dew$2$1(); + const ieee754 = dew$1$1(); + const customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports$g.Buffer = Buffer2; + exports$g.SlowBuffer = SlowBuffer; + exports$g.INSPECT_MAX_BYTES = 50; + const K_MAX_LENGTH = 2147483647; + exports$g.kMaxLength = K_MAX_LENGTH; + Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { + foo: function() { + return 42; + } + }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e8) { + return false; + } + } + Object.defineProperty(Buffer2.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) + return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer2.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) + return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function Buffer2(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError('The "string" argument must be of type string. Received type number'); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer2.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type number'); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer2.from(valueOf, encodingOrOffset, length); + } + const b4 = fromObject(value); + if (b4) + return b4; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer2.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + Buffer2.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer2, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer2.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer2.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer2.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i6 = 0; i6 < length; i6 += 1) { + buf[i6] = array[i6] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy = new Uint8Array(arrayView); + return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer2.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer2.alloc(+length); + } + Buffer2.isBuffer = function isBuffer2(b4) { + return b4 != null && b4._isBuffer === true && b4 !== Buffer2.prototype; + }; + Buffer2.compare = function compare(a6, b4) { + if (isInstance(a6, Uint8Array)) + a6 = Buffer2.from(a6, a6.offset, a6.byteLength); + if (isInstance(b4, Uint8Array)) + b4 = Buffer2.from(b4, b4.offset, b4.byteLength); + if (!Buffer2.isBuffer(a6) || !Buffer2.isBuffer(b4)) { + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + } + if (a6 === b4) + return 0; + let x4 = a6.length; + let y5 = b4.length; + for (let i6 = 0, len = Math.min(x4, y5); i6 < len; ++i6) { + if (a6[i6] !== b4[i6]) { + x4 = a6[i6]; + y5 = b4[i6]; + break; + } + } + if (x4 < y5) + return -1; + if (y5 < x4) + return 1; + return 0; + }; + Buffer2.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer2.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer2.alloc(0); + } + let i6; + if (length === void 0) { + length = 0; + for (i6 = 0; i6 < list.length; ++i6) { + length += list[i6].length; + } + } + const buffer2 = Buffer2.allocUnsafe(length); + let pos = 0; + for (i6 = 0; i6 < list.length; ++i6) { + let buf = list[i6]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer2.length) { + if (!Buffer2.isBuffer(buf)) + buf = Buffer2.from(buf); + buf.copy(buffer2, pos); + } else { + Uint8Array.prototype.set.call(buffer2, buf, pos); + } + } else if (!Buffer2.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer2, pos); + } + pos += buf.length; + } + return buffer2; + }; + function byteLength(string, encoding) { + if (Buffer2.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) + return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) + encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.prototype._isBuffer = true; + function swap(b4, n6, m5) { + const i6 = b4[n6]; + b4[n6] = b4[m5]; + b4[m5] = i6; + } + Buffer2.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i6 = 0; i6 < len; i6 += 2) { + swap(this, i6, i6 + 1); + } + return this; + }; + Buffer2.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i6 = 0; i6 < len; i6 += 4) { + swap(this, i6, i6 + 3); + swap(this, i6 + 1, i6 + 2); + } + return this; + }; + Buffer2.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i6 = 0; i6 < len; i6 += 8) { + swap(this, i6, i6 + 7); + swap(this, i6 + 1, i6 + 6); + swap(this, i6 + 2, i6 + 5); + swap(this, i6 + 3, i6 + 4); + } + return this; + }; + Buffer2.prototype.toString = function toString() { + const length = this.length; + if (length === 0) + return ""; + if (arguments.length === 0) + return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer2.prototype.toLocaleString = Buffer2.prototype.toString; + Buffer2.prototype.equals = function equals(b4) { + if (!Buffer2.isBuffer(b4)) + throw new TypeError("Argument must be a Buffer"); + if (this === b4) + return true; + return Buffer2.compare(this, b4) === 0; + }; + Buffer2.prototype.inspect = function inspect2() { + let str = ""; + const max = exports$g.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) + str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect; + } + Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer2.from(target, target.offset, target.byteLength); + } + if (!Buffer2.isBuffer(target)) { + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) + return 0; + let x4 = thisEnd - thisStart; + let y5 = end - start; + const len = Math.min(x4, y5); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i6 = 0; i6 < len; ++i6) { + if (thisCopy[i6] !== targetCopy[i6]) { + x4 = thisCopy[i6]; + y5 = targetCopy[i6]; + break; + } + } + if (x4 < y5) + return -1; + if (y5 < x4) + return 1; + return 0; + }; + function bidirectionalIndexOf(buffer2, val, byteOffset, encoding, dir) { + if (buffer2.length === 0) + return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer2.length - 1; + } + if (byteOffset < 0) + byteOffset = buffer2.length + byteOffset; + if (byteOffset >= buffer2.length) { + if (dir) + return -1; + else + byteOffset = buffer2.length - 1; + } else if (byteOffset < 0) { + if (dir) + byteOffset = 0; + else + return -1; + } + if (typeof val === "string") { + val = Buffer2.from(val, encoding); + } + if (Buffer2.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer2, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer2, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer2, val, byteOffset); + } + } + return arrayIndexOf(buffer2, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i7) { + if (indexSize === 1) { + return buf[i7]; + } else { + return buf.readUInt16BE(i7 * indexSize); + } + } + let i6; + if (dir) { + let foundIndex = -1; + for (i6 = byteOffset; i6 < arrLength; i6++) { + if (read(arr, i6) === read(val, foundIndex === -1 ? 0 : i6 - foundIndex)) { + if (foundIndex === -1) + foundIndex = i6; + if (i6 - foundIndex + 1 === valLength) + return foundIndex * indexSize; + } else { + if (foundIndex !== -1) + i6 -= i6 - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) + byteOffset = arrLength - valLength; + for (i6 = byteOffset; i6 >= 0; i6--) { + let found = true; + for (let j4 = 0; j4 < valLength; j4++) { + if (read(arr, i6 + j4) !== read(val, j4)) { + found = false; + break; + } + } + if (found) + return i6; + } + } + return -1; + } + Buffer2.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer2.prototype.indexOf = function indexOf2(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i6; + for (i6 = 0; i6 < length; ++i6) { + const parsed = parseInt(string.substr(i6 * 2, 2), 16); + if (numberIsNaN(parsed)) + return i6; + buf[offset + i6] = parsed; + } + return i6; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer2.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) + encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) + length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) + encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) + throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer2.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i6 = start; + while (i6 < end) { + const firstByte = buf[i6]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i6 + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i6 + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i6 + 1]; + thirdByte = buf[i6 + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i6 + 1]; + thirdByte = buf[i6 + 2]; + fourthByte = buf[i6 + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i6 += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + const MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i6 = 0; + while (i6 < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i6, i6 += MAX_ARGUMENTS_LENGTH)); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i6 = start; i6 < end; ++i6) { + ret += String.fromCharCode(buf[i6] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i6 = start; i6 < end; ++i6) { + ret += String.fromCharCode(buf[i6]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) + start = 0; + if (!end || end < 0 || end > len) + end = len; + let out = ""; + for (let i6 = start; i6 < end; ++i6) { + out += hexSliceLookupTable[buf[i6]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i6 = 0; i6 < bytes.length - 1; i6 += 2) { + res += String.fromCharCode(bytes[i6] + bytes[i6 + 1] * 256); + } + return res; + } + Buffer2.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) + start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) + end = 0; + } else if (end > len) { + end = len; + } + if (end < start) + end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer2.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError("offset is not uint"); + if (offset + ext > length) + throw new RangeError("Trying to access beyond buffer length"); + } + Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i6 = 0; + while (++i6 < byteLength2 && (mul *= 256)) { + val += this[offset + i6] * mul; + } + return val; + }; + Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer2.prototype.readUint16LE = Buffer2.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer2.prototype.readUint16BE = Buffer2.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i6 = 0; + while (++i6 < byteLength2 && (mul *= 256)) { + val += this[offset + i6] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) + checkOffset(offset, byteLength2, this.length); + let i6 = byteLength2; + let mul = 1; + let val = this[offset + --i6]; + while (i6 > 0 && (mul *= 256)) { + val += this[offset + --i6] * mul; + } + mul *= 128; + if (val >= mul) + val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) + return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first << 24) + // Overflow + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last); + }); + Buffer2.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer2.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer2.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer2.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) + checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer2.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + } + Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i6 = 0; + this[offset] = value & 255; + while (++i6 < byteLength2 && (mul *= 256)) { + this[offset + i6] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i6 = byteLength2 - 1; + let mul = 1; + this[offset + i6] = value & 255; + while (--i6 >= 0 && (mul *= 256)) { + this[offset + i6] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i6 = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i6 < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i6 - 1] !== 0) { + sub = 1; + } + this[offset + i6] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i6 = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i6] = value & 255; + while (--i6 >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i6 + 1] !== 0) { + sub = 1; + } + this[offset + i6] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 1, 127, -128); + if (value < 0) + value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) + checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) + value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) + throw new RangeError("Index out of range"); + if (offset < 0) + throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer2.prototype.copy = function copy(target, targetStart, start, end) { + if (!Buffer2.isBuffer(target)) + throw new TypeError("argument should be a Buffer"); + if (!start) + start = 0; + if (!end && end !== 0) + end = this.length; + if (targetStart >= target.length) + targetStart = target.length; + if (!targetStart) + targetStart = 0; + if (end > 0 && end < start) + end = start; + if (end === start) + return 0; + if (target.length === 0 || this.length === 0) + return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) + throw new RangeError("Index out of range"); + if (end < 0) + throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) + end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart); + } + return len; + }; + Buffer2.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) + val = 0; + let i6; + if (typeof val === "number") { + for (i6 = start; i6 < end; ++i6) { + this[i6] = val; + } + } else { + const bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i6 = 0; i6 < end - start; ++i6) { + this[i6 + start] = bytes[i6 % len]; + } + } + return this; + }; + const errors = {}; + function E4(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E4("ERR_BUFFER_OUT_OF_BOUNDS", function(name) { + if (name) { + return `${name} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, RangeError); + E4("ERR_INVALID_ARG_TYPE", function(name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}`; + }, TypeError); + E4("ERR_OUT_OF_RANGE", function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, RangeError); + function addNumericalSeparator(val) { + let res = ""; + let i6 = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i6 >= start + 4; i6 -= 3) { + res = `_${val.slice(i6 - 3, i6)}${res}`; + } + return `${val.slice(0, i6)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n6 = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n6} and < 2${n6} ** ${(byteLength2 + 1) * 8}${n6}`; + } else { + range = `>= -(2${n6} ** ${(byteLength2 + 1) * 8 - 1}${n6}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n6}`; + } + } else { + range = `>= ${min}${n6} and <= ${max}${n6}`; + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value); + } + const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) + return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i6 = 0; i6 < length; ++i6) { + codePoint = string.charCodeAt(i6); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } else if (i6 + 1 === length) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) + bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) + break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) + break; + bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) + break; + bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) + break; + bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i6 = 0; i6 < str.length; ++i6) { + byteArray.push(str.charCodeAt(i6) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c6, hi, lo; + const byteArray = []; + for (let i6 = 0; i6 < str.length; ++i6) { + if ((units -= 2) < 0) + break; + c6 = str.charCodeAt(i6); + hi = c6 >> 8; + lo = c6 % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i6; + for (i6 = 0; i6 < length; ++i6) { + if (i6 + offset >= dst.length || i6 >= src.length) + break; + dst[i6 + offset] = src[i6]; + } + return i6; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + const hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i6 = 0; i6 < 16; ++i6) { + const i16 = i6 * 16; + for (let j4 = 0; j4 < 16; ++j4) { + table[i16 + j4] = alphabet[i6] + alphabet[j4]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + return exports$g; +} +var buffer = dew$g(); +buffer.Buffer; +buffer.INSPECT_MAX_BYTES; +buffer.kMaxLength; +var exports$f = {}; +var _dewExec$f = false; +function dew$f() { + if (_dewExec$f) + return exports$f; + _dewExec$f = true; + if (typeof Object.create === "function") { + exports$f = function inherits2(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + exports$f = function inherits2(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + return exports$f; +} +var exports$e = {}; +var _dewExec$e = false; +function dew$e() { + if (_dewExec$e) + return exports$e; + _dewExec$e = true; + exports$e = y.EventEmitter; + return exports$e; +} +var exports$d = {}; +var _dewExec$d = false; +function dew$d() { + if (_dewExec$d) + return exports$d; + _dewExec$d = true; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) + symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i6 = 1; i6 < arguments.length; i6++) { + var source = arguments[i6] != null ? arguments[i6] : {}; + if (i6 % 2) { + ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i6 = 0; i6 < props.length; i6++) { + var descriptor = props[i6]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + return Constructor; + } + var _require = buffer, Buffer2 = _require.Buffer; + var _require2 = X, inspect2 = _require2.inspect; + var custom = inspect2 && inspect2.custom || "inspect"; + function copyBuffer(src, target, offset) { + Buffer2.prototype.copy.call(src, target, offset); + } + exports$d = /* @__PURE__ */ function() { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v5) { + var entry = { + data: v5, + next: null + }; + if (this.length > 0) + this.tail.next = entry; + else + this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v5) { + var entry = { + data: v5, + next: this.head + }; + if (this.length === 0) + this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) + return; + var ret = this.head.data; + if (this.length === 1) + this.head = this.tail = null; + else + this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s6) { + if (this.length === 0) + return ""; + var p6 = this.head; + var ret = "" + p6.data; + while (p6 = p6.next) { + ret += s6 + p6.data; + } + return ret; + } + }, { + key: "concat", + value: function concat(n6) { + if (this.length === 0) + return Buffer2.alloc(0); + var ret = Buffer2.allocUnsafe(n6 >>> 0); + var p6 = this.head; + var i6 = 0; + while (p6) { + copyBuffer(p6.data, ret, i6); + i6 += p6.data.length; + p6 = p6.next; + } + return ret; + } + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n6, hasStrings) { + var ret; + if (n6 < this.head.data.length) { + ret = this.head.data.slice(0, n6); + this.head.data = this.head.data.slice(n6); + } else if (n6 === this.head.data.length) { + ret = this.shift(); + } else { + ret = hasStrings ? this._getString(n6) : this._getBuffer(n6); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n6) { + var p6 = this.head; + var c6 = 1; + var ret = p6.data; + n6 -= ret.length; + while (p6 = p6.next) { + var str = p6.data; + var nb = n6 > str.length ? str.length : n6; + if (nb === str.length) + ret += str; + else + ret += str.slice(0, n6); + n6 -= nb; + if (n6 === 0) { + if (nb === str.length) { + ++c6; + if (p6.next) + this.head = p6.next; + else + this.head = this.tail = null; + } else { + this.head = p6; + p6.data = str.slice(nb); + } + break; + } + ++c6; + } + this.length -= c6; + return ret; + } + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n6) { + var ret = Buffer2.allocUnsafe(n6); + var p6 = this.head; + var c6 = 1; + p6.data.copy(ret); + n6 -= p6.data.length; + while (p6 = p6.next) { + var buf = p6.data; + var nb = n6 > buf.length ? buf.length : n6; + buf.copy(ret, ret.length - n6, 0, nb); + n6 -= nb; + if (n6 === 0) { + if (nb === buf.length) { + ++c6; + if (p6.next) + this.head = p6.next; + else + this.head = this.tail = null; + } else { + this.head = p6; + p6.data = buf.slice(nb); + } + break; + } + ++c6; + } + this.length -= c6; + return ret; + } + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_4, options) { + return inspect2(this, _objectSpread({}, options, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; + }(); + return exports$d; +} +var exports$c = {}; +var _dewExec$c = false; +function dew$c() { + if (_dewExec$c) + return exports$c; + _dewExec$c = true; + var process$1 = process; + function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process$1.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process$1.nextTick(emitErrorNT, this, err); + } + } + return this; + } + if (this._readableState) { + this._readableState.destroyed = true; + } + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function(err2) { + if (!cb && err2) { + if (!_this._writableState) { + process$1.nextTick(emitErrorAndCloseNT, _this, err2); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process$1.nextTick(emitErrorAndCloseNT, _this, err2); + } else { + process$1.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process$1.nextTick(emitCloseNT, _this); + cb(err2); + } else { + process$1.nextTick(emitCloseNT, _this); + } + }); + return this; + } + function emitErrorAndCloseNT(self2, err) { + emitErrorNT(self2, err); + emitCloseNT(self2); + } + function emitCloseNT(self2) { + if (self2._writableState && !self2._writableState.emitClose) + return; + if (self2._readableState && !self2._readableState.emitClose) + return; + self2.emit("close"); + } + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } + } + function emitErrorNT(self2, err) { + self2.emit("error", err); + } + function errorOrDestroy(stream2, err) { + var rState = stream2._readableState; + var wState = stream2._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) + stream2.destroy(err); + else + stream2.emit("error", err); + } + exports$c = { + destroy, + undestroy, + errorOrDestroy + }; + return exports$c; +} +var exports$b = {}; +var _dewExec$b = false; +function dew$b() { + if (_dewExec$b) + return exports$b; + _dewExec$b = true; + const codes = {}; + function createErrorType(code, message, Base) { + if (!Base) { + Base = Error; + } + function getMessage(arg1, arg2, arg3) { + if (typeof message === "string") { + return message; + } else { + return message(arg1, arg2, arg3); + } + } + class NodeError extends Base { + constructor(arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + codes[code] = NodeError; + } + function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i6) => String(i6)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(", ")}, or ` + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } + } + function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; + } + function endsWith(str, search, this_len) { + if (this_len === void 0 || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; + } + function includes(str, search, start) { + if (typeof start !== "number") { + start = 0; + } + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } + } + createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"'; + }, TypeError); + createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) { + let determiner; + if (typeof expected === "string" && startsWith(expected, "not ")) { + determiner = "must not be"; + expected = expected.replace(/^not /, ""); + } else { + determiner = "must be"; + } + let msg; + if (endsWith(name, " argument")) { + msg = `The ${name} ${determiner} ${oneOf(expected, "type")}`; + } else { + const type = includes(name, ".") ? "property" : "argument"; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, "type")}`; + } + msg += `. Received type ${typeof actual}`; + return msg; + }, TypeError); + createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"); + createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) { + return "The " + name + " method is not implemented"; + }); + createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close"); + createErrorType("ERR_STREAM_DESTROYED", function(name) { + return "Cannot call " + name + " after a stream was destroyed"; + }); + createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"); + createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"); + createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end"); + createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError); + createErrorType("ERR_UNKNOWN_ENCODING", function(arg) { + return "Unknown encoding: " + arg; + }, TypeError); + createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"); + exports$b.codes = codes; + return exports$b; +} +var exports$a = {}; +var _dewExec$a = false; +function dew$a() { + if (_dewExec$a) + return exports$a; + _dewExec$a = true; + var ERR_INVALID_OPT_VALUE = dew$b().codes.ERR_INVALID_OPT_VALUE; + function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; + } + function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : "highWaterMark"; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + return state.objectMode ? 16 : 16 * 1024; + } + exports$a = { + getHighWaterMark + }; + return exports$a; +} +var exports$9 = {}; +var _dewExec$9 = false; +var _global$2 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$9() { + if (_dewExec$9) + return exports$9; + _dewExec$9 = true; + exports$9 = deprecate2; + function deprecate2(fn, msg) { + if (config("noDeprecation")) { + return fn; + } + var warned = false; + function deprecated() { + if (!warned) { + if (config("throwDeprecation")) { + throw new Error(msg); + } else if (config("traceDeprecation")) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this || _global$2, arguments); + } + return deprecated; + } + function config(name) { + try { + if (!_global$2.localStorage) + return false; + } catch (_4) { + return false; + } + var val = _global$2.localStorage[name]; + if (null == val) + return false; + return String(val).toLowerCase() === "true"; + } + return exports$9; +} +var exports$8 = {}; +var _dewExec$8 = false; +var _global$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$8() { + if (_dewExec$8) + return exports$8; + _dewExec$8 = true; + var process$1 = process; + exports$8 = Writable; + function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function() { + onCorkedFinish(_this, state); + }; + } + var Duplex; + Writable.WritableState = WritableState; + var internalUtil = { + deprecate: dew$9() + }; + var Stream = dew$e(); + var Buffer2 = buffer.Buffer; + var OurUint8Array = _global$1.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var destroyImpl = dew$c(); + var _require = dew$a(), getHighWaterMark = _require.getHighWaterMark; + var _require$codes = dew$b().codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + var errorOrDestroy = destroyImpl.errorOrDestroy; + dew$f()(Writable, Stream); + function nop() { + } + function WritableState(options, stream2, isDuplex) { + Duplex = Duplex || dew$7(); + options = options || {}; + if (typeof isDuplex !== "boolean") + isDuplex = stream2 instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.writableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex); + this.finalCalled = false; + this.needDrain = false; + this.ending = false; + this.ended = false; + this.finished = false; + this.destroyed = false; + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.length = 0; + this.writing = false; + this.corked = 0; + this.sync = true; + this.bufferProcessing = false; + this.onwrite = function(er) { + onwrite(stream2, er); + }; + this.writecb = null; + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + this.pendingcb = 0; + this.prefinished = false; + this.errorEmitted = false; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.bufferedRequestCount = 0; + this.corkedRequestsFree = new CorkedRequest(this); + } + WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; + }; + (function() { + try { + Object.defineProperty(WritableState.prototype, "buffer", { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") + }); + } catch (_4) { + } + })(); + var realHasInstance; + if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) + return true; + if (this !== Writable) + return false; + return object && object._writableState instanceof WritableState; + } + }); + } else { + realHasInstance = function realHasInstance2(object) { + return object instanceof this; + }; + } + function Writable(options) { + Duplex = Duplex || dew$7(); + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) + return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + this.writable = true; + if (options) { + if (typeof options.write === "function") + this._write = options.write; + if (typeof options.writev === "function") + this._writev = options.writev; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + if (typeof options.final === "function") + this._final = options.final; + } + Stream.call(this); + } + Writable.prototype.pipe = function() { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); + }; + function writeAfterEnd(stream2, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + errorOrDestroy(stream2, er); + process$1.nextTick(cb, er); + } + function validChunk(stream2, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== "string" && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk); + } + if (er) { + errorOrDestroy(stream2, er); + process$1.nextTick(cb, er); + return false; + } + return true; + } + Writable.prototype.write = function(chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer2.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (isBuf) + encoding = "buffer"; + else if (!encoding) + encoding = state.defaultEncoding; + if (typeof cb !== "function") + cb = nop; + if (state.ending) + writeAfterEnd(this, cb); + else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; + }; + Writable.prototype.cork = function() { + this._writableState.corked++; + }; + Writable.prototype.uncork = function() { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) + clearBuffer(this, state); + } + }; + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + if (typeof encoding === "string") + encoding = encoding.toLowerCase(); + if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) + throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; + }; + Object.defineProperty(Writable.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } + }); + function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") { + chunk = Buffer2.from(chunk, encoding); + } + return chunk; + } + Object.defineProperty(Writable.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } + }); + function writeOrBuffer(stream2, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = "buffer"; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + if (!ret) + state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk, + encoding, + isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream2, state, false, len, chunk, encoding, cb); + } + return ret; + } + function doWrite(stream2, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) + state.onwrite(new ERR_STREAM_DESTROYED("write")); + else if (writev) + stream2._writev(chunk, state.onwrite); + else + stream2._write(chunk, encoding, state.onwrite); + state.sync = false; + } + function onwriteError(stream2, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + process$1.nextTick(cb, er); + process$1.nextTick(finishMaybe, stream2, state); + stream2._writableState.errorEmitted = true; + errorOrDestroy(stream2, er); + } else { + cb(er); + stream2._writableState.errorEmitted = true; + errorOrDestroy(stream2, er); + finishMaybe(stream2, state); + } + } + function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + } + function onwrite(stream2, er) { + var state = stream2._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== "function") + throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) + onwriteError(stream2, state, sync, er, cb); + else { + var finished = needFinish(state) || stream2.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream2, state); + } + if (sync) { + process$1.nextTick(afterWrite, stream2, state, finished, cb); + } else { + afterWrite(stream2, state, finished, cb); + } + } + } + function afterWrite(stream2, state, finished, cb) { + if (!finished) + onwriteDrain(stream2, state); + state.pendingcb--; + cb(); + finishMaybe(stream2, state); + } + function onwriteDrain(stream2, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream2.emit("drain"); + } + } + function clearBuffer(stream2, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream2._writev && entry && entry.next) { + var l6 = state.bufferedRequestCount; + var buffer2 = new Array(l6); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer2[count] = entry; + if (!entry.isBuf) + allBuffers = false; + entry = entry.next; + count += 1; + } + buffer2.allBuffers = allBuffers; + doWrite(stream2, state, true, state.length, buffer2, "", holder.finish); + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream2, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + if (state.writing) { + break; + } + } + if (entry === null) + state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; + } + Writable.prototype._write = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()")); + }; + Writable.prototype._writev = null; + Writable.prototype.end = function(chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === "function") { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== void 0) + this.write(chunk, encoding); + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (!state.ending) + endWritable(this, state, cb); + return this; + }; + Object.defineProperty(Writable.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } + }); + function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; + } + function callFinal(stream2, state) { + stream2._final(function(err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream2, err); + } + state.prefinished = true; + stream2.emit("prefinish"); + finishMaybe(stream2, state); + }); + } + function prefinish(stream2, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream2._final === "function" && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process$1.nextTick(callFinal, stream2, state); + } else { + state.prefinished = true; + stream2.emit("prefinish"); + } + } + } + function finishMaybe(stream2, state) { + var need = needFinish(state); + if (need) { + prefinish(stream2, state); + if (state.pendingcb === 0) { + state.finished = true; + stream2.emit("finish"); + if (state.autoDestroy) { + var rState = stream2._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream2.destroy(); + } + } + } + } + return need; + } + function endWritable(stream2, state, cb) { + state.ending = true; + finishMaybe(stream2, state); + if (cb) { + if (state.finished) + process$1.nextTick(cb); + else + stream2.once("finish", cb); + } + state.ended = true; + stream2.writable = false; + } + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + state.corkedRequestsFree.next = corkReq; + } + Object.defineProperty(Writable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === void 0) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + if (!this._writableState) { + return; + } + this._writableState.destroyed = value; + } + }); + Writable.prototype.destroy = destroyImpl.destroy; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function(err, cb) { + cb(err); + }; + return exports$8; +} +var exports$7 = {}; +var _dewExec$7 = false; +function dew$7() { + if (_dewExec$7) + return exports$7; + _dewExec$7 = true; + var process$1 = process; + var objectKeys = Object.keys || function(obj) { + var keys2 = []; + for (var key in obj) { + keys2.push(key); + } + return keys2; + }; + exports$7 = Duplex; + var Readable = dew$3(); + var Writable = dew$8(); + dew$f()(Duplex, Readable); + { + var keys = objectKeys(Writable.prototype); + for (var v5 = 0; v5 < keys.length; v5++) { + var method = keys[v5]; + if (!Duplex.prototype[method]) + Duplex.prototype[method] = Writable.prototype[method]; + } + } + function Duplex(options) { + if (!(this instanceof Duplex)) + return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) + this.readable = false; + if (options.writable === false) + this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once("end", onend); + } + } + } + Object.defineProperty(Duplex.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } + }); + Object.defineProperty(Duplex.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } + }); + Object.defineProperty(Duplex.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } + }); + function onend() { + if (this._writableState.ended) + return; + process$1.nextTick(onEndNT, this); + } + function onEndNT(self2) { + self2.end(); + } + Object.defineProperty(Duplex.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === void 0 || this._writableState === void 0) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + if (this._readableState === void 0 || this._writableState === void 0) { + return; + } + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } + }); + return exports$7; +} +var exports$6 = {}; +var _dewExec$6 = false; +function dew$6() { + if (_dewExec$6) + return exports$6; + _dewExec$6 = true; + var ERR_STREAM_PREMATURE_CLOSE = dew$b().codes.ERR_STREAM_PREMATURE_CLOSE; + function once(callback) { + var called = false; + return function() { + if (called) + return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; + } + function noop() { + } + function isRequest(stream2) { + return stream2.setHeader && typeof stream2.abort === "function"; + } + function eos(stream2, opts, callback) { + if (typeof opts === "function") + return eos(stream2, null, opts); + if (!opts) + opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream2.readable; + var writable = opts.writable || opts.writable !== false && stream2.writable; + var onlegacyfinish = function onlegacyfinish2() { + if (!stream2.writable) + onfinish(); + }; + var writableEnded = stream2._writableState && stream2._writableState.finished; + var onfinish = function onfinish2() { + writable = false; + writableEnded = true; + if (!readable) + callback.call(stream2); + }; + var readableEnded = stream2._readableState && stream2._readableState.endEmitted; + var onend = function onend2() { + readable = false; + readableEnded = true; + if (!writable) + callback.call(stream2); + }; + var onerror = function onerror2(err) { + callback.call(stream2, err); + }; + var onclose = function onclose2() { + var err; + if (readable && !readableEnded) { + if (!stream2._readableState || !stream2._readableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream2, err); + } + if (writable && !writableEnded) { + if (!stream2._writableState || !stream2._writableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream2, err); + } + }; + var onrequest = function onrequest2() { + stream2.req.on("finish", onfinish); + }; + if (isRequest(stream2)) { + stream2.on("complete", onfinish); + stream2.on("abort", onclose); + if (stream2.req) + onrequest(); + else + stream2.on("request", onrequest); + } else if (writable && !stream2._writableState) { + stream2.on("end", onlegacyfinish); + stream2.on("close", onlegacyfinish); + } + stream2.on("end", onend); + stream2.on("finish", onfinish); + if (opts.error !== false) + stream2.on("error", onerror); + stream2.on("close", onclose); + return function() { + stream2.removeListener("complete", onfinish); + stream2.removeListener("abort", onclose); + stream2.removeListener("request", onrequest); + if (stream2.req) + stream2.req.removeListener("finish", onfinish); + stream2.removeListener("end", onlegacyfinish); + stream2.removeListener("close", onlegacyfinish); + stream2.removeListener("finish", onfinish); + stream2.removeListener("end", onend); + stream2.removeListener("error", onerror); + stream2.removeListener("close", onclose); + }; + } + exports$6 = eos; + return exports$6; +} +var exports$5 = {}; +var _dewExec$5 = false; +function dew$5() { + if (_dewExec$5) + return exports$5; + _dewExec$5 = true; + var process$1 = process; + var _Object$setPrototypeO; + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var finished = dew$6(); + var kLastResolve = Symbol("lastResolve"); + var kLastReject = Symbol("lastReject"); + var kError = Symbol("error"); + var kEnded = Symbol("ended"); + var kLastPromise = Symbol("lastPromise"); + var kHandlePromise = Symbol("handlePromise"); + var kStream = Symbol("stream"); + function createIterResult(value, done) { + return { + value, + done + }; + } + function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } + } + function onReadable(iter) { + process$1.nextTick(readAndResolve, iter); + } + function wrapForNext(lastPromise, iter) { + return function(resolve, reject) { + lastPromise.then(function() { + if (iter[kEnded]) { + resolve(createIterResult(void 0, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; + } + var AsyncIteratorPrototype = Object.getPrototypeOf(function() { + }); + var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(void 0, true)); + } + if (this[kStream].destroyed) { + return new Promise(function(resolve, reject) { + process$1.nextTick(function() { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(void 0, true)); + } + }); + }); + } + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } + }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() { + return this; + }), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + return new Promise(function(resolve, reject) { + _this2[kStream].destroy(null, function(err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(void 0, true)); + }); + }); + }), _Object$setPrototypeO), AsyncIteratorPrototype); + var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream2) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream2, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream2._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream2, function(err) { + if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { + var reject = iterator[kLastReject]; + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(void 0, true)); + } + iterator[kEnded] = true; + }); + stream2.on("readable", onReadable.bind(null, iterator)); + return iterator; + }; + exports$5 = createReadableStreamAsyncIterator; + return exports$5; +} +var exports$4 = {}; +var _dewExec$4 = false; +function dew$4() { + if (_dewExec$4) + return exports$4; + _dewExec$4 = true; + exports$4 = function() { + throw new Error("Readable.from is not available in the browser"); + }; + return exports$4; +} +var exports$3 = {}; +var _dewExec$3 = false; +var _global2 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$3() { + if (_dewExec$3) + return exports$3; + _dewExec$3 = true; + var process$1 = process; + exports$3 = Readable; + var Duplex; + Readable.ReadableState = ReadableState; + y.EventEmitter; + var EElistenerCount = function EElistenerCount2(emitter, type) { + return emitter.listeners(type).length; + }; + var Stream = dew$e(); + var Buffer2 = buffer.Buffer; + var OurUint8Array = _global2.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var debugUtil = X; + var debug; + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog("stream"); + } else { + debug = function debug2() { + }; + } + var BufferList = dew$d(); + var destroyImpl = dew$c(); + var _require = dew$a(), getHighWaterMark = _require.getHighWaterMark; + var _require$codes = dew$b().codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + var StringDecoder; + var createReadableStreamAsyncIterator; + var from; + dew$f()(Readable, Stream); + var errorOrDestroy = destroyImpl.errorOrDestroy; + var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; + function prependListener(emitter, event, fn) { + if (typeof emitter.prependListener === "function") + return emitter.prependListener(event, fn); + if (!emitter._events || !emitter._events[event]) + emitter.on(event, fn); + else if (Array.isArray(emitter._events[event])) + emitter._events[event].unshift(fn); + else + emitter._events[event] = [fn, emitter._events[event]]; + } + function ReadableState(options, stream2, isDuplex) { + Duplex = Duplex || dew$7(); + options = options || {}; + if (typeof isDuplex !== "boolean") + isDuplex = stream2 instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.readableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex); + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + this.sync = true; + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.destroyed = false; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.awaitDrain = 0; + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) + StringDecoder = e$12.StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } + function Readable(options) { + Duplex = Duplex || dew$7(); + if (!(this instanceof Readable)) + return new Readable(options); + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + this.readable = true; + if (options) { + if (typeof options.read === "function") + this._read = options.read; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + } + Stream.call(this); + } + Object.defineProperty(Readable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === void 0) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + if (!this._readableState) { + return; + } + this._readableState.destroyed = value; + } + }); + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function(err, cb) { + cb(err); + }; + Readable.prototype.push = function(chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === "string") { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer2.from(chunk, encoding); + encoding = ""; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); + }; + Readable.prototype.unshift = function(chunk) { + return readableAddChunk(this, chunk, null, true, false); + }; + function readableAddChunk(stream2, chunk, encoding, addToFront, skipChunkCheck) { + debug("readableAddChunk", chunk); + var state = stream2._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream2, state); + } else { + var er; + if (!skipChunkCheck) + er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream2, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) + errorOrDestroy(stream2, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else + addChunk(stream2, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream2, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) + addChunk(stream2, state, chunk, false); + else + maybeReadMore(stream2, state); + } else { + addChunk(stream2, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream2, state); + } + } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); + } + function addChunk(stream2, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream2.emit("data", chunk); + } else { + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) + state.buffer.unshift(chunk); + else + state.buffer.push(chunk); + if (state.needReadable) + emitReadable(stream2); + } + maybeReadMore(stream2, state); + } + function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk); + } + return er; + } + Readable.prototype.isPaused = function() { + return this._readableState.flowing === false; + }; + Readable.prototype.setEncoding = function(enc) { + if (!StringDecoder) + StringDecoder = e$12.StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + this._readableState.encoding = this._readableState.decoder.encoding; + var p6 = this._readableState.buffer.head; + var content = ""; + while (p6 !== null) { + content += decoder.write(p6.data); + p6 = p6.next; + } + this._readableState.buffer.clear(); + if (content !== "") + this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; + }; + var MAX_HWM = 1073741824; + function computeNewHighWaterMark(n6) { + if (n6 >= MAX_HWM) { + n6 = MAX_HWM; + } else { + n6--; + n6 |= n6 >>> 1; + n6 |= n6 >>> 2; + n6 |= n6 >>> 4; + n6 |= n6 >>> 8; + n6 |= n6 >>> 16; + n6++; + } + return n6; + } + function howMuchToRead(n6, state) { + if (n6 <= 0 || state.length === 0 && state.ended) + return 0; + if (state.objectMode) + return 1; + if (n6 !== n6) { + if (state.flowing && state.length) + return state.buffer.head.data.length; + else + return state.length; + } + if (n6 > state.highWaterMark) + state.highWaterMark = computeNewHighWaterMark(n6); + if (n6 <= state.length) + return n6; + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; + } + Readable.prototype.read = function(n6) { + debug("read", n6); + n6 = parseInt(n6, 10); + var state = this._readableState; + var nOrig = n6; + if (n6 !== 0) + state.emittedReadable = false; + if (n6 === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug("read: emitReadable", state.length, state.ended); + if (state.length === 0 && state.ended) + endReadable(this); + else + emitReadable(this); + return null; + } + n6 = howMuchToRead(n6, state); + if (n6 === 0 && state.ended) { + if (state.length === 0) + endReadable(this); + return null; + } + var doRead = state.needReadable; + debug("need readable", doRead); + if (state.length === 0 || state.length - n6 < state.highWaterMark) { + doRead = true; + debug("length less than watermark", doRead); + } + if (state.ended || state.reading) { + doRead = false; + debug("reading or ended", doRead); + } else if (doRead) { + debug("do read"); + state.reading = true; + state.sync = true; + if (state.length === 0) + state.needReadable = true; + this._read(state.highWaterMark); + state.sync = false; + if (!state.reading) + n6 = howMuchToRead(nOrig, state); + } + var ret; + if (n6 > 0) + ret = fromList(n6, state); + else + ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n6 = 0; + } else { + state.length -= n6; + state.awaitDrain = 0; + } + if (state.length === 0) { + if (!state.ended) + state.needReadable = true; + if (nOrig !== n6 && state.ended) + endReadable(this); + } + if (ret !== null) + this.emit("data", ret); + return ret; + }; + function onEofChunk(stream2, state) { + debug("onEofChunk"); + if (state.ended) + return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + emitReadable(stream2); + } else { + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream2); + } + } + } + function emitReadable(stream2) { + var state = stream2._readableState; + debug("emitReadable", state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug("emitReadable", state.flowing); + state.emittedReadable = true; + process$1.nextTick(emitReadable_, stream2); + } + } + function emitReadable_(stream2) { + var state = stream2._readableState; + debug("emitReadable_", state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream2.emit("readable"); + state.emittedReadable = false; + } + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream2); + } + function maybeReadMore(stream2, state) { + if (!state.readingMore) { + state.readingMore = true; + process$1.nextTick(maybeReadMore_, stream2, state); + } + } + function maybeReadMore_(stream2, state) { + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug("maybeReadMore read 0"); + stream2.read(0); + if (len === state.length) + break; + } + state.readingMore = false; + } + Readable.prototype._read = function(n6) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()")); + }; + Readable.prototype.pipe = function(dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process$1.stdout && dest !== process$1.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) + process$1.nextTick(endFn); + else + src.once("end", endFn); + dest.on("unpipe", onunpipe); + function onunpipe(readable, unpipeInfo) { + debug("onunpipe"); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug("onend"); + dest.end(); + } + var ondrain = pipeOnDrain(src); + dest.on("drain", ondrain); + var cleanedUp = false; + function cleanup() { + debug("cleanup"); + dest.removeListener("close", onclose); + dest.removeListener("finish", onfinish); + dest.removeListener("drain", ondrain); + dest.removeListener("error", onerror); + dest.removeListener("unpipe", onunpipe); + src.removeListener("end", onend); + src.removeListener("end", unpipe); + src.removeListener("data", ondata); + cleanedUp = true; + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) + ondrain(); + } + src.on("data", ondata); + function ondata(chunk) { + debug("ondata"); + var ret = dest.write(chunk); + debug("dest.write", ret); + if (ret === false) { + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf2(state.pipes, dest) !== -1) && !cleanedUp) { + debug("false write response, pause", state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + function onerror(er) { + debug("onerror", er); + unpipe(); + dest.removeListener("error", onerror); + if (EElistenerCount(dest, "error") === 0) + errorOrDestroy(dest, er); + } + prependListener(dest, "error", onerror); + function onclose() { + dest.removeListener("finish", onfinish); + unpipe(); + } + dest.once("close", onclose); + function onfinish() { + debug("onfinish"); + dest.removeListener("close", onclose); + unpipe(); + } + dest.once("finish", onfinish); + function unpipe() { + debug("unpipe"); + src.unpipe(dest); + } + dest.emit("pipe", src); + if (!state.flowing) { + debug("pipe resume"); + src.resume(); + } + return dest; + }; + function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug("pipeOnDrain", state.awaitDrain); + if (state.awaitDrain) + state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { + state.flowing = true; + flow(src); + } + }; + } + Readable.prototype.unpipe = function(dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + if (state.pipesCount === 0) + return this; + if (state.pipesCount === 1) { + if (dest && dest !== state.pipes) + return this; + if (!dest) + dest = state.pipes; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) + dest.emit("unpipe", this, unpipeInfo); + return this; + } + if (!dest) { + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i6 = 0; i6 < len; i6++) { + dests[i6].emit("unpipe", this, { + hasUnpiped: false + }); + } + return this; + } + var index = indexOf2(state.pipes, dest); + if (index === -1) + return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) + state.pipes = state.pipes[0]; + dest.emit("unpipe", this, unpipeInfo); + return this; + }; + Readable.prototype.on = function(ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === "data") { + state.readableListening = this.listenerCount("readable") > 0; + if (state.flowing !== false) + this.resume(); + } else if (ev === "readable") { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug("on readable", state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process$1.nextTick(nReadingNextTick, this); + } + } + } + return res; + }; + Readable.prototype.addListener = Readable.prototype.on; + Readable.prototype.removeListener = function(ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === "readable") { + process$1.nextTick(updateReadableListening, this); + } + return res; + }; + Readable.prototype.removeAllListeners = function(ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === "readable" || ev === void 0) { + process$1.nextTick(updateReadableListening, this); + } + return res; + }; + function updateReadableListening(self2) { + var state = self2._readableState; + state.readableListening = self2.listenerCount("readable") > 0; + if (state.resumeScheduled && !state.paused) { + state.flowing = true; + } else if (self2.listenerCount("data") > 0) { + self2.resume(); + } + } + function nReadingNextTick(self2) { + debug("readable nexttick read 0"); + self2.read(0); + } + Readable.prototype.resume = function() { + var state = this._readableState; + if (!state.flowing) { + debug("resume"); + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; + }; + function resume(stream2, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process$1.nextTick(resume_, stream2, state); + } + } + function resume_(stream2, state) { + debug("resume", state.reading); + if (!state.reading) { + stream2.read(0); + } + state.resumeScheduled = false; + stream2.emit("resume"); + flow(stream2); + if (state.flowing && !state.reading) + stream2.read(0); + } + Readable.prototype.pause = function() { + debug("call pause flowing=%j", this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug("pause"); + this._readableState.flowing = false; + this.emit("pause"); + } + this._readableState.paused = true; + return this; + }; + function flow(stream2) { + var state = stream2._readableState; + debug("flow", state.flowing); + while (state.flowing && stream2.read() !== null) { + } + } + Readable.prototype.wrap = function(stream2) { + var _this = this; + var state = this._readableState; + var paused = false; + stream2.on("end", function() { + debug("wrapped end"); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) + _this.push(chunk); + } + _this.push(null); + }); + stream2.on("data", function(chunk) { + debug("wrapped data"); + if (state.decoder) + chunk = state.decoder.write(chunk); + if (state.objectMode && (chunk === null || chunk === void 0)) + return; + else if (!state.objectMode && (!chunk || !chunk.length)) + return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream2.pause(); + } + }); + for (var i6 in stream2) { + if (this[i6] === void 0 && typeof stream2[i6] === "function") { + this[i6] = /* @__PURE__ */ function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream2[method].apply(stream2, arguments); + }; + }(i6); + } + } + for (var n6 = 0; n6 < kProxyEvents.length; n6++) { + stream2.on(kProxyEvents[n6], this.emit.bind(this, kProxyEvents[n6])); + } + this._read = function(n7) { + debug("wrapped _read", n7); + if (paused) { + paused = false; + stream2.resume(); + } + }; + return this; + }; + if (typeof Symbol === "function") { + Readable.prototype[Symbol.asyncIterator] = function() { + if (createReadableStreamAsyncIterator === void 0) { + createReadableStreamAsyncIterator = dew$5(); + } + return createReadableStreamAsyncIterator(this); + }; + } + Object.defineProperty(Readable.prototype, "readableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } + }); + Object.defineProperty(Readable.prototype, "readableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } + }); + Object.defineProperty(Readable.prototype, "readableFlowing", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } + }); + Readable._fromList = fromList; + Object.defineProperty(Readable.prototype, "readableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } + }); + function fromList(n6, state) { + if (state.length === 0) + return null; + var ret; + if (state.objectMode) + ret = state.buffer.shift(); + else if (!n6 || n6 >= state.length) { + if (state.decoder) + ret = state.buffer.join(""); + else if (state.buffer.length === 1) + ret = state.buffer.first(); + else + ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + ret = state.buffer.consume(n6, state.decoder); + } + return ret; + } + function endReadable(stream2) { + var state = stream2._readableState; + debug("endReadable", state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process$1.nextTick(endReadableNT, state, stream2); + } + } + function endReadableNT(state, stream2) { + debug("endReadableNT", state.endEmitted, state.length); + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream2.readable = false; + stream2.emit("end"); + if (state.autoDestroy) { + var wState = stream2._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream2.destroy(); + } + } + } + } + if (typeof Symbol === "function") { + Readable.from = function(iterable, opts) { + if (from === void 0) { + from = dew$4(); + } + return from(Readable, iterable, opts); + }; + } + function indexOf2(xs, x4) { + for (var i6 = 0, l6 = xs.length; i6 < l6; i6++) { + if (xs[i6] === x4) + return i6; + } + return -1; + } + return exports$3; +} +var exports$2 = {}; +var _dewExec$2 = false; +function dew$2() { + if (_dewExec$2) + return exports$2; + _dewExec$2 = true; + exports$2 = Transform; + var _require$codes = dew$b().codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; + var Duplex = dew$7(); + dew$f()(Transform, Duplex); + function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit("error", new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } + } + function Transform(options) { + if (!(this instanceof Transform)) + return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + this._readableState.needReadable = true; + this._readableState.sync = false; + if (options) { + if (typeof options.transform === "function") + this._transform = options.transform; + if (typeof options.flush === "function") + this._flush = options.flush; + } + this.on("prefinish", prefinish); + } + function prefinish() { + var _this = this; + if (typeof this._flush === "function" && !this._readableState.destroyed) { + this._flush(function(er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } + } + Transform.prototype.push = function(chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); + }; + Transform.prototype._transform = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()")); + }; + Transform.prototype._write = function(chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) + this._read(rs.highWaterMark); + } + }; + Transform.prototype._read = function(n6) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + ts.needTransform = true; + } + }; + Transform.prototype._destroy = function(err, cb) { + Duplex.prototype._destroy.call(this, err, function(err2) { + cb(err2); + }); + }; + function done(stream2, er, data) { + if (er) + return stream2.emit("error", er); + if (data != null) + stream2.push(data); + if (stream2._writableState.length) + throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream2._transformState.transforming) + throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream2.push(null); + } + return exports$2; +} +var exports$1 = {}; +var _dewExec$1 = false; +function dew$1() { + if (_dewExec$1) + return exports$1; + _dewExec$1 = true; + exports$1 = PassThrough; + var Transform = dew$2(); + dew$f()(PassThrough, Transform); + function PassThrough(options) { + if (!(this instanceof PassThrough)) + return new PassThrough(options); + Transform.call(this, options); + } + PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); + }; + return exports$1; +} +var exports2 = {}; +var _dewExec2 = false; +function dew2() { + if (_dewExec2) + return exports2; + _dewExec2 = true; + var eos; + function once(callback) { + var called = false; + return function() { + if (called) + return; + called = true; + callback.apply(void 0, arguments); + }; + } + var _require$codes = dew$b().codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + function noop(err) { + if (err) + throw err; + } + function isRequest(stream2) { + return stream2.setHeader && typeof stream2.abort === "function"; + } + function destroyer(stream2, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream2.on("close", function() { + closed = true; + }); + if (eos === void 0) + eos = dew$6(); + eos(stream2, { + readable: reading, + writable: writing + }, function(err) { + if (err) + return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function(err) { + if (closed) + return; + if (destroyed) + return; + destroyed = true; + if (isRequest(stream2)) + return stream2.abort(); + if (typeof stream2.destroy === "function") + return stream2.destroy(); + callback(err || new ERR_STREAM_DESTROYED("pipe")); + }; + } + function call(fn) { + fn(); + } + function pipe(from, to) { + return from.pipe(to); + } + function popCallback(streams) { + if (!streams.length) + return noop; + if (typeof streams[streams.length - 1] !== "function") + return noop; + return streams.pop(); + } + function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) + streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS("streams"); + } + var error; + var destroys = streams.map(function(stream2, i6) { + var reading = i6 < streams.length - 1; + var writing = i6 > 0; + return destroyer(stream2, reading, writing, function(err) { + if (!error) + error = err; + if (err) + destroys.forEach(call); + if (reading) + return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); + } + exports2 = pipeline; + return exports2; +} + +// ../../node_modules/@jspm/core/nodelibs/browser/chunk-c3d025d9.js +var exports3 = {}; +var _dewExec3 = false; +function dew3() { + if (_dewExec3) + return exports3; + _dewExec3 = true; + exports3 = exports3 = dew$3(); + exports3.Stream = exports3; + exports3.Readable = exports3; + exports3.Writable = dew$8(); + exports3.Duplex = dew$7(); + exports3.Transform = dew$2(); + exports3.PassThrough = dew$1(); + exports3.finished = dew$6(); + exports3.pipeline = dew2(); + return exports3; +} + +// node-modules-polyfills:node:crypto +var exports$2Q = {}; +var _dewExec$2P = false; +function dew$2P() { + if (_dewExec$2P) + return exports$2Q; + _dewExec$2P = true; + var buffer$1 = buffer; + var Buffer2 = buffer$1.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + exports$2Q = buffer$1; + } else { + copyProps(buffer$1, exports$2Q); + exports$2Q.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer$1.SlowBuffer(size); + }; + return exports$2Q; +} +var exports$2P = {}; +var _dewExec$2O = false; +var _global$U = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2O() { + if (_dewExec$2O) + return exports$2P; + _dewExec$2O = true; + var process$1 = process; + var MAX_BYTES = 65536; + var MAX_UINT32 = 4294967295; + function oldBrowser() { + throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11"); + } + var Buffer2 = dew$2P().Buffer; + var crypto2 = _global$U.crypto || _global$U.msCrypto; + if (crypto2 && crypto2.getRandomValues) { + exports$2P = randomBytes2; + } else { + exports$2P = oldBrowser; + } + function randomBytes2(size, cb) { + if (size > MAX_UINT32) + throw new RangeError("requested too many random bytes"); + var bytes = Buffer2.allocUnsafe(size); + if (size > 0) { + if (size > MAX_BYTES) { + for (var generated = 0; generated < size; generated += MAX_BYTES) { + crypto2.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)); + } + } else { + crypto2.getRandomValues(bytes); + } + } + if (typeof cb === "function") { + return process$1.nextTick(function() { + cb(null, bytes); + }); + } + return bytes; + } + return exports$2P; +} +var exports$2O = {}; +var _dewExec$2N = false; +function dew$2N() { + if (_dewExec$2N) + return exports$2O; + _dewExec$2N = true; + var buffer$1 = buffer; + var Buffer2 = buffer$1.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + exports$2O = buffer$1; + } else { + copyProps(buffer$1, exports$2O); + exports$2O.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer$1.SlowBuffer(size); + }; + return exports$2O; +} +var exports$2N = {}; +var _dewExec$2M = false; +function dew$2M() { + if (_dewExec$2M) + return exports$2N; + _dewExec$2M = true; + var Buffer2 = dew$2N().Buffer; + var Transform = dew3().Transform; + var inherits2 = dew$f(); + function throwIfNotStringOrBuffer(val, prefix) { + if (!Buffer2.isBuffer(val) && typeof val !== "string") { + throw new TypeError(prefix + " must be a string or a buffer"); + } + } + function HashBase(blockSize) { + Transform.call(this); + this._block = Buffer2.allocUnsafe(blockSize); + this._blockSize = blockSize; + this._blockOffset = 0; + this._length = [0, 0, 0, 0]; + this._finalized = false; + } + inherits2(HashBase, Transform); + HashBase.prototype._transform = function(chunk, encoding, callback) { + var error = null; + try { + this.update(chunk, encoding); + } catch (err) { + error = err; + } + callback(error); + }; + HashBase.prototype._flush = function(callback) { + var error = null; + try { + this.push(this.digest()); + } catch (err) { + error = err; + } + callback(error); + }; + HashBase.prototype.update = function(data, encoding) { + throwIfNotStringOrBuffer(data, "Data"); + if (this._finalized) + throw new Error("Digest already called"); + if (!Buffer2.isBuffer(data)) + data = Buffer2.from(data, encoding); + var block = this._block; + var offset = 0; + while (this._blockOffset + data.length - offset >= this._blockSize) { + for (var i6 = this._blockOffset; i6 < this._blockSize; ) + block[i6++] = data[offset++]; + this._update(); + this._blockOffset = 0; + } + while (offset < data.length) + block[this._blockOffset++] = data[offset++]; + for (var j4 = 0, carry = data.length * 8; carry > 0; ++j4) { + this._length[j4] += carry; + carry = this._length[j4] / 4294967296 | 0; + if (carry > 0) + this._length[j4] -= 4294967296 * carry; + } + return this; + }; + HashBase.prototype._update = function() { + throw new Error("_update is not implemented"); + }; + HashBase.prototype.digest = function(encoding) { + if (this._finalized) + throw new Error("Digest already called"); + this._finalized = true; + var digest = this._digest(); + if (encoding !== void 0) + digest = digest.toString(encoding); + this._block.fill(0); + this._blockOffset = 0; + for (var i6 = 0; i6 < 4; ++i6) + this._length[i6] = 0; + return digest; + }; + HashBase.prototype._digest = function() { + throw new Error("_digest is not implemented"); + }; + exports$2N = HashBase; + return exports$2N; +} +var exports$2M = {}; +var _dewExec$2L = false; +function dew$2L() { + if (_dewExec$2L) + return exports$2M; + _dewExec$2L = true; + var inherits2 = dew$f(); + var HashBase = dew$2M(); + var Buffer2 = dew$2P().Buffer; + var ARRAY16 = new Array(16); + function MD5() { + HashBase.call(this, 64); + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + } + inherits2(MD5, HashBase); + MD5.prototype._update = function() { + var M4 = ARRAY16; + for (var i6 = 0; i6 < 16; ++i6) + M4[i6] = this._block.readInt32LE(i6 * 4); + var a6 = this._a; + var b4 = this._b; + var c6 = this._c; + var d5 = this._d; + a6 = fnF(a6, b4, c6, d5, M4[0], 3614090360, 7); + d5 = fnF(d5, a6, b4, c6, M4[1], 3905402710, 12); + c6 = fnF(c6, d5, a6, b4, M4[2], 606105819, 17); + b4 = fnF(b4, c6, d5, a6, M4[3], 3250441966, 22); + a6 = fnF(a6, b4, c6, d5, M4[4], 4118548399, 7); + d5 = fnF(d5, a6, b4, c6, M4[5], 1200080426, 12); + c6 = fnF(c6, d5, a6, b4, M4[6], 2821735955, 17); + b4 = fnF(b4, c6, d5, a6, M4[7], 4249261313, 22); + a6 = fnF(a6, b4, c6, d5, M4[8], 1770035416, 7); + d5 = fnF(d5, a6, b4, c6, M4[9], 2336552879, 12); + c6 = fnF(c6, d5, a6, b4, M4[10], 4294925233, 17); + b4 = fnF(b4, c6, d5, a6, M4[11], 2304563134, 22); + a6 = fnF(a6, b4, c6, d5, M4[12], 1804603682, 7); + d5 = fnF(d5, a6, b4, c6, M4[13], 4254626195, 12); + c6 = fnF(c6, d5, a6, b4, M4[14], 2792965006, 17); + b4 = fnF(b4, c6, d5, a6, M4[15], 1236535329, 22); + a6 = fnG(a6, b4, c6, d5, M4[1], 4129170786, 5); + d5 = fnG(d5, a6, b4, c6, M4[6], 3225465664, 9); + c6 = fnG(c6, d5, a6, b4, M4[11], 643717713, 14); + b4 = fnG(b4, c6, d5, a6, M4[0], 3921069994, 20); + a6 = fnG(a6, b4, c6, d5, M4[5], 3593408605, 5); + d5 = fnG(d5, a6, b4, c6, M4[10], 38016083, 9); + c6 = fnG(c6, d5, a6, b4, M4[15], 3634488961, 14); + b4 = fnG(b4, c6, d5, a6, M4[4], 3889429448, 20); + a6 = fnG(a6, b4, c6, d5, M4[9], 568446438, 5); + d5 = fnG(d5, a6, b4, c6, M4[14], 3275163606, 9); + c6 = fnG(c6, d5, a6, b4, M4[3], 4107603335, 14); + b4 = fnG(b4, c6, d5, a6, M4[8], 1163531501, 20); + a6 = fnG(a6, b4, c6, d5, M4[13], 2850285829, 5); + d5 = fnG(d5, a6, b4, c6, M4[2], 4243563512, 9); + c6 = fnG(c6, d5, a6, b4, M4[7], 1735328473, 14); + b4 = fnG(b4, c6, d5, a6, M4[12], 2368359562, 20); + a6 = fnH(a6, b4, c6, d5, M4[5], 4294588738, 4); + d5 = fnH(d5, a6, b4, c6, M4[8], 2272392833, 11); + c6 = fnH(c6, d5, a6, b4, M4[11], 1839030562, 16); + b4 = fnH(b4, c6, d5, a6, M4[14], 4259657740, 23); + a6 = fnH(a6, b4, c6, d5, M4[1], 2763975236, 4); + d5 = fnH(d5, a6, b4, c6, M4[4], 1272893353, 11); + c6 = fnH(c6, d5, a6, b4, M4[7], 4139469664, 16); + b4 = fnH(b4, c6, d5, a6, M4[10], 3200236656, 23); + a6 = fnH(a6, b4, c6, d5, M4[13], 681279174, 4); + d5 = fnH(d5, a6, b4, c6, M4[0], 3936430074, 11); + c6 = fnH(c6, d5, a6, b4, M4[3], 3572445317, 16); + b4 = fnH(b4, c6, d5, a6, M4[6], 76029189, 23); + a6 = fnH(a6, b4, c6, d5, M4[9], 3654602809, 4); + d5 = fnH(d5, a6, b4, c6, M4[12], 3873151461, 11); + c6 = fnH(c6, d5, a6, b4, M4[15], 530742520, 16); + b4 = fnH(b4, c6, d5, a6, M4[2], 3299628645, 23); + a6 = fnI(a6, b4, c6, d5, M4[0], 4096336452, 6); + d5 = fnI(d5, a6, b4, c6, M4[7], 1126891415, 10); + c6 = fnI(c6, d5, a6, b4, M4[14], 2878612391, 15); + b4 = fnI(b4, c6, d5, a6, M4[5], 4237533241, 21); + a6 = fnI(a6, b4, c6, d5, M4[12], 1700485571, 6); + d5 = fnI(d5, a6, b4, c6, M4[3], 2399980690, 10); + c6 = fnI(c6, d5, a6, b4, M4[10], 4293915773, 15); + b4 = fnI(b4, c6, d5, a6, M4[1], 2240044497, 21); + a6 = fnI(a6, b4, c6, d5, M4[8], 1873313359, 6); + d5 = fnI(d5, a6, b4, c6, M4[15], 4264355552, 10); + c6 = fnI(c6, d5, a6, b4, M4[6], 2734768916, 15); + b4 = fnI(b4, c6, d5, a6, M4[13], 1309151649, 21); + a6 = fnI(a6, b4, c6, d5, M4[4], 4149444226, 6); + d5 = fnI(d5, a6, b4, c6, M4[11], 3174756917, 10); + c6 = fnI(c6, d5, a6, b4, M4[2], 718787259, 15); + b4 = fnI(b4, c6, d5, a6, M4[9], 3951481745, 21); + this._a = this._a + a6 | 0; + this._b = this._b + b4 | 0; + this._c = this._c + c6 | 0; + this._d = this._d + d5 | 0; + }; + MD5.prototype._digest = function() { + this._block[this._blockOffset++] = 128; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; + } + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); + var buffer2 = Buffer2.allocUnsafe(16); + buffer2.writeInt32LE(this._a, 0); + buffer2.writeInt32LE(this._b, 4); + buffer2.writeInt32LE(this._c, 8); + buffer2.writeInt32LE(this._d, 12); + return buffer2; + }; + function rotl(x4, n6) { + return x4 << n6 | x4 >>> 32 - n6; + } + function fnF(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 & c6 | ~b4 & d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnG(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 & d5 | c6 & ~d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnH(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 ^ c6 ^ d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnI(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (c6 ^ (b4 | ~d5)) + m5 + k4 | 0, s6) + b4 | 0; + } + exports$2M = MD5; + return exports$2M; +} +var exports$2L = {}; +var _dewExec$2K = false; +function dew$2K() { + if (_dewExec$2K) + return exports$2L; + _dewExec$2K = true; + var Buffer2 = buffer.Buffer; + var inherits2 = dew$f(); + var HashBase = dew$2M(); + var ARRAY16 = new Array(16); + var zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; + var zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; + var sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; + var sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; + var hl = [0, 1518500249, 1859775393, 2400959708, 2840853838]; + var hr = [1352829926, 1548603684, 1836072691, 2053994217, 0]; + function RIPEMD160() { + HashBase.call(this, 64); + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + } + inherits2(RIPEMD160, HashBase); + RIPEMD160.prototype._update = function() { + var words = ARRAY16; + for (var j4 = 0; j4 < 16; ++j4) + words[j4] = this._block.readInt32LE(j4 * 4); + var al = this._a | 0; + var bl = this._b | 0; + var cl = this._c | 0; + var dl = this._d | 0; + var el = this._e | 0; + var ar = this._a | 0; + var br = this._b | 0; + var cr = this._c | 0; + var dr = this._d | 0; + var er = this._e | 0; + for (var i6 = 0; i6 < 80; i6 += 1) { + var tl; + var tr; + if (i6 < 16) { + tl = fn1(al, bl, cl, dl, el, words[zl[i6]], hl[0], sl[i6]); + tr = fn5(ar, br, cr, dr, er, words[zr[i6]], hr[0], sr[i6]); + } else if (i6 < 32) { + tl = fn2(al, bl, cl, dl, el, words[zl[i6]], hl[1], sl[i6]); + tr = fn4(ar, br, cr, dr, er, words[zr[i6]], hr[1], sr[i6]); + } else if (i6 < 48) { + tl = fn3(al, bl, cl, dl, el, words[zl[i6]], hl[2], sl[i6]); + tr = fn3(ar, br, cr, dr, er, words[zr[i6]], hr[2], sr[i6]); + } else if (i6 < 64) { + tl = fn4(al, bl, cl, dl, el, words[zl[i6]], hl[3], sl[i6]); + tr = fn2(ar, br, cr, dr, er, words[zr[i6]], hr[3], sr[i6]); + } else { + tl = fn5(al, bl, cl, dl, el, words[zl[i6]], hl[4], sl[i6]); + tr = fn1(ar, br, cr, dr, er, words[zr[i6]], hr[4], sr[i6]); + } + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = tl; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = tr; + } + var t6 = this._b + cl + dr | 0; + this._b = this._c + dl + er | 0; + this._c = this._d + el + ar | 0; + this._d = this._e + al + br | 0; + this._e = this._a + bl + cr | 0; + this._a = t6; + }; + RIPEMD160.prototype._digest = function() { + this._block[this._blockOffset++] = 128; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; + } + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); + var buffer2 = Buffer2.alloc ? Buffer2.alloc(20) : new Buffer2(20); + buffer2.writeInt32LE(this._a, 0); + buffer2.writeInt32LE(this._b, 4); + buffer2.writeInt32LE(this._c, 8); + buffer2.writeInt32LE(this._d, 12); + buffer2.writeInt32LE(this._e, 16); + return buffer2; + }; + function rotl(x4, n6) { + return x4 << n6 | x4 >>> 32 - n6; + } + function fn1(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 ^ c6 ^ d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn2(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 & c6 | ~b4 & d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn3(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + ((b4 | ~c6) ^ d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn4(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 & d5 | c6 & ~d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn5(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 ^ (c6 | ~d5)) + m5 + k4 | 0, s6) + e8 | 0; + } + exports$2L = RIPEMD160; + return exports$2L; +} +var exports$2K = {}; +var _dewExec$2J = false; +var _global$T = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2J() { + if (_dewExec$2J) + return exports$2K; + _dewExec$2J = true; + var Buffer2 = dew$2P().Buffer; + function Hash2(blockSize, finalSize) { + (this || _global$T)._block = Buffer2.alloc(blockSize); + (this || _global$T)._finalSize = finalSize; + (this || _global$T)._blockSize = blockSize; + (this || _global$T)._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer2.from(data, enc); + } + var block = (this || _global$T)._block; + var blockSize = (this || _global$T)._blockSize; + var length = data.length; + var accum = (this || _global$T)._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i6 = 0; i6 < remainder; i6++) { + block[assigned + i6] = data[offset + i6]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + (this || _global$T)._len += length; + return this || _global$T; + }; + Hash2.prototype.digest = function(enc) { + var rem = (this || _global$T)._len % (this || _global$T)._blockSize; + (this || _global$T)._block[rem] = 128; + (this || _global$T)._block.fill(0, rem + 1); + if (rem >= (this || _global$T)._finalSize) { + this._update((this || _global$T)._block); + (this || _global$T)._block.fill(0); + } + var bits = (this || _global$T)._len * 8; + if (bits <= 4294967295) { + (this || _global$T)._block.writeUInt32BE(bits, (this || _global$T)._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + (this || _global$T)._block.writeUInt32BE(highBits, (this || _global$T)._blockSize - 8); + (this || _global$T)._block.writeUInt32BE(lowBits, (this || _global$T)._blockSize - 4); + } + this._update((this || _global$T)._block); + var hash = this._hash(); + return enc ? hash.toString(enc) : hash; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + exports$2K = Hash2; + return exports$2K; +} +var exports$2J = {}; +var _dewExec$2I = false; +var _global$S = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2I() { + if (_dewExec$2I) + return exports$2J; + _dewExec$2I = true; + var inherits2 = dew$f(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var K3 = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0]; + var W3 = new Array(80); + function Sha() { + this.init(); + (this || _global$S)._w = W3; + Hash2.call(this || _global$S, 64, 56); + } + inherits2(Sha, Hash2); + Sha.prototype.init = function() { + (this || _global$S)._a = 1732584193; + (this || _global$S)._b = 4023233417; + (this || _global$S)._c = 2562383102; + (this || _global$S)._d = 271733878; + (this || _global$S)._e = 3285377520; + return this || _global$S; + }; + function rotl5(num) { + return num << 5 | num >>> 27; + } + function rotl30(num) { + return num << 30 | num >>> 2; + } + function ft(s6, b4, c6, d5) { + if (s6 === 0) + return b4 & c6 | ~b4 & d5; + if (s6 === 2) + return b4 & c6 | b4 & d5 | c6 & d5; + return b4 ^ c6 ^ d5; + } + Sha.prototype._update = function(M4) { + var W4 = (this || _global$S)._w; + var a6 = (this || _global$S)._a | 0; + var b4 = (this || _global$S)._b | 0; + var c6 = (this || _global$S)._c | 0; + var d5 = (this || _global$S)._d | 0; + var e8 = (this || _global$S)._e | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 80; ++i6) + W4[i6] = W4[i6 - 3] ^ W4[i6 - 8] ^ W4[i6 - 14] ^ W4[i6 - 16]; + for (var j4 = 0; j4 < 80; ++j4) { + var s6 = ~~(j4 / 20); + var t6 = rotl5(a6) + ft(s6, b4, c6, d5) + e8 + W4[j4] + K3[s6] | 0; + e8 = d5; + d5 = c6; + c6 = rotl30(b4); + b4 = a6; + a6 = t6; + } + (this || _global$S)._a = a6 + (this || _global$S)._a | 0; + (this || _global$S)._b = b4 + (this || _global$S)._b | 0; + (this || _global$S)._c = c6 + (this || _global$S)._c | 0; + (this || _global$S)._d = d5 + (this || _global$S)._d | 0; + (this || _global$S)._e = e8 + (this || _global$S)._e | 0; + }; + Sha.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(20); + H3.writeInt32BE((this || _global$S)._a | 0, 0); + H3.writeInt32BE((this || _global$S)._b | 0, 4); + H3.writeInt32BE((this || _global$S)._c | 0, 8); + H3.writeInt32BE((this || _global$S)._d | 0, 12); + H3.writeInt32BE((this || _global$S)._e | 0, 16); + return H3; + }; + exports$2J = Sha; + return exports$2J; +} +var exports$2I = {}; +var _dewExec$2H = false; +var _global$R = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2H() { + if (_dewExec$2H) + return exports$2I; + _dewExec$2H = true; + var inherits2 = dew$f(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var K3 = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0]; + var W3 = new Array(80); + function Sha1() { + this.init(); + (this || _global$R)._w = W3; + Hash2.call(this || _global$R, 64, 56); + } + inherits2(Sha1, Hash2); + Sha1.prototype.init = function() { + (this || _global$R)._a = 1732584193; + (this || _global$R)._b = 4023233417; + (this || _global$R)._c = 2562383102; + (this || _global$R)._d = 271733878; + (this || _global$R)._e = 3285377520; + return this || _global$R; + }; + function rotl1(num) { + return num << 1 | num >>> 31; + } + function rotl5(num) { + return num << 5 | num >>> 27; + } + function rotl30(num) { + return num << 30 | num >>> 2; + } + function ft(s6, b4, c6, d5) { + if (s6 === 0) + return b4 & c6 | ~b4 & d5; + if (s6 === 2) + return b4 & c6 | b4 & d5 | c6 & d5; + return b4 ^ c6 ^ d5; + } + Sha1.prototype._update = function(M4) { + var W4 = (this || _global$R)._w; + var a6 = (this || _global$R)._a | 0; + var b4 = (this || _global$R)._b | 0; + var c6 = (this || _global$R)._c | 0; + var d5 = (this || _global$R)._d | 0; + var e8 = (this || _global$R)._e | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 80; ++i6) + W4[i6] = rotl1(W4[i6 - 3] ^ W4[i6 - 8] ^ W4[i6 - 14] ^ W4[i6 - 16]); + for (var j4 = 0; j4 < 80; ++j4) { + var s6 = ~~(j4 / 20); + var t6 = rotl5(a6) + ft(s6, b4, c6, d5) + e8 + W4[j4] + K3[s6] | 0; + e8 = d5; + d5 = c6; + c6 = rotl30(b4); + b4 = a6; + a6 = t6; + } + (this || _global$R)._a = a6 + (this || _global$R)._a | 0; + (this || _global$R)._b = b4 + (this || _global$R)._b | 0; + (this || _global$R)._c = c6 + (this || _global$R)._c | 0; + (this || _global$R)._d = d5 + (this || _global$R)._d | 0; + (this || _global$R)._e = e8 + (this || _global$R)._e | 0; + }; + Sha1.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(20); + H3.writeInt32BE((this || _global$R)._a | 0, 0); + H3.writeInt32BE((this || _global$R)._b | 0, 4); + H3.writeInt32BE((this || _global$R)._c | 0, 8); + H3.writeInt32BE((this || _global$R)._d | 0, 12); + H3.writeInt32BE((this || _global$R)._e | 0, 16); + return H3; + }; + exports$2I = Sha1; + return exports$2I; +} +var exports$2H = {}; +var _dewExec$2G = false; +var _global$Q = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2G() { + if (_dewExec$2G) + return exports$2H; + _dewExec$2G = true; + var inherits2 = dew$f(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var K3 = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; + var W3 = new Array(64); + function Sha256() { + this.init(); + (this || _global$Q)._w = W3; + Hash2.call(this || _global$Q, 64, 56); + } + inherits2(Sha256, Hash2); + Sha256.prototype.init = function() { + (this || _global$Q)._a = 1779033703; + (this || _global$Q)._b = 3144134277; + (this || _global$Q)._c = 1013904242; + (this || _global$Q)._d = 2773480762; + (this || _global$Q)._e = 1359893119; + (this || _global$Q)._f = 2600822924; + (this || _global$Q)._g = 528734635; + (this || _global$Q)._h = 1541459225; + return this || _global$Q; + }; + function ch(x4, y5, z4) { + return z4 ^ x4 & (y5 ^ z4); + } + function maj(x4, y5, z4) { + return x4 & y5 | z4 & (x4 | y5); + } + function sigma0(x4) { + return (x4 >>> 2 | x4 << 30) ^ (x4 >>> 13 | x4 << 19) ^ (x4 >>> 22 | x4 << 10); + } + function sigma1(x4) { + return (x4 >>> 6 | x4 << 26) ^ (x4 >>> 11 | x4 << 21) ^ (x4 >>> 25 | x4 << 7); + } + function gamma0(x4) { + return (x4 >>> 7 | x4 << 25) ^ (x4 >>> 18 | x4 << 14) ^ x4 >>> 3; + } + function gamma1(x4) { + return (x4 >>> 17 | x4 << 15) ^ (x4 >>> 19 | x4 << 13) ^ x4 >>> 10; + } + Sha256.prototype._update = function(M4) { + var W4 = (this || _global$Q)._w; + var a6 = (this || _global$Q)._a | 0; + var b4 = (this || _global$Q)._b | 0; + var c6 = (this || _global$Q)._c | 0; + var d5 = (this || _global$Q)._d | 0; + var e8 = (this || _global$Q)._e | 0; + var f7 = (this || _global$Q)._f | 0; + var g4 = (this || _global$Q)._g | 0; + var h6 = (this || _global$Q)._h | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 64; ++i6) + W4[i6] = gamma1(W4[i6 - 2]) + W4[i6 - 7] + gamma0(W4[i6 - 15]) + W4[i6 - 16] | 0; + for (var j4 = 0; j4 < 64; ++j4) { + var T1 = h6 + sigma1(e8) + ch(e8, f7, g4) + K3[j4] + W4[j4] | 0; + var T22 = sigma0(a6) + maj(a6, b4, c6) | 0; + h6 = g4; + g4 = f7; + f7 = e8; + e8 = d5 + T1 | 0; + d5 = c6; + c6 = b4; + b4 = a6; + a6 = T1 + T22 | 0; + } + (this || _global$Q)._a = a6 + (this || _global$Q)._a | 0; + (this || _global$Q)._b = b4 + (this || _global$Q)._b | 0; + (this || _global$Q)._c = c6 + (this || _global$Q)._c | 0; + (this || _global$Q)._d = d5 + (this || _global$Q)._d | 0; + (this || _global$Q)._e = e8 + (this || _global$Q)._e | 0; + (this || _global$Q)._f = f7 + (this || _global$Q)._f | 0; + (this || _global$Q)._g = g4 + (this || _global$Q)._g | 0; + (this || _global$Q)._h = h6 + (this || _global$Q)._h | 0; + }; + Sha256.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(32); + H3.writeInt32BE((this || _global$Q)._a, 0); + H3.writeInt32BE((this || _global$Q)._b, 4); + H3.writeInt32BE((this || _global$Q)._c, 8); + H3.writeInt32BE((this || _global$Q)._d, 12); + H3.writeInt32BE((this || _global$Q)._e, 16); + H3.writeInt32BE((this || _global$Q)._f, 20); + H3.writeInt32BE((this || _global$Q)._g, 24); + H3.writeInt32BE((this || _global$Q)._h, 28); + return H3; + }; + exports$2H = Sha256; + return exports$2H; +} +var exports$2G = {}; +var _dewExec$2F = false; +var _global$P = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2F() { + if (_dewExec$2F) + return exports$2G; + _dewExec$2F = true; + var inherits2 = dew$f(); + var Sha256 = dew$2G(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var W3 = new Array(64); + function Sha224() { + this.init(); + (this || _global$P)._w = W3; + Hash2.call(this || _global$P, 64, 56); + } + inherits2(Sha224, Sha256); + Sha224.prototype.init = function() { + (this || _global$P)._a = 3238371032; + (this || _global$P)._b = 914150663; + (this || _global$P)._c = 812702999; + (this || _global$P)._d = 4144912697; + (this || _global$P)._e = 4290775857; + (this || _global$P)._f = 1750603025; + (this || _global$P)._g = 1694076839; + (this || _global$P)._h = 3204075428; + return this || _global$P; + }; + Sha224.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(28); + H3.writeInt32BE((this || _global$P)._a, 0); + H3.writeInt32BE((this || _global$P)._b, 4); + H3.writeInt32BE((this || _global$P)._c, 8); + H3.writeInt32BE((this || _global$P)._d, 12); + H3.writeInt32BE((this || _global$P)._e, 16); + H3.writeInt32BE((this || _global$P)._f, 20); + H3.writeInt32BE((this || _global$P)._g, 24); + return H3; + }; + exports$2G = Sha224; + return exports$2G; +} +var exports$2F = {}; +var _dewExec$2E = false; +var _global$O = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2E() { + if (_dewExec$2E) + return exports$2F; + _dewExec$2E = true; + var inherits2 = dew$f(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var K3 = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591]; + var W3 = new Array(160); + function Sha512() { + this.init(); + (this || _global$O)._w = W3; + Hash2.call(this || _global$O, 128, 112); + } + inherits2(Sha512, Hash2); + Sha512.prototype.init = function() { + (this || _global$O)._ah = 1779033703; + (this || _global$O)._bh = 3144134277; + (this || _global$O)._ch = 1013904242; + (this || _global$O)._dh = 2773480762; + (this || _global$O)._eh = 1359893119; + (this || _global$O)._fh = 2600822924; + (this || _global$O)._gh = 528734635; + (this || _global$O)._hh = 1541459225; + (this || _global$O)._al = 4089235720; + (this || _global$O)._bl = 2227873595; + (this || _global$O)._cl = 4271175723; + (this || _global$O)._dl = 1595750129; + (this || _global$O)._el = 2917565137; + (this || _global$O)._fl = 725511199; + (this || _global$O)._gl = 4215389547; + (this || _global$O)._hl = 327033209; + return this || _global$O; + }; + function Ch(x4, y5, z4) { + return z4 ^ x4 & (y5 ^ z4); + } + function maj(x4, y5, z4) { + return x4 & y5 | z4 & (x4 | y5); + } + function sigma0(x4, xl) { + return (x4 >>> 28 | xl << 4) ^ (xl >>> 2 | x4 << 30) ^ (xl >>> 7 | x4 << 25); + } + function sigma1(x4, xl) { + return (x4 >>> 14 | xl << 18) ^ (x4 >>> 18 | xl << 14) ^ (xl >>> 9 | x4 << 23); + } + function Gamma0(x4, xl) { + return (x4 >>> 1 | xl << 31) ^ (x4 >>> 8 | xl << 24) ^ x4 >>> 7; + } + function Gamma0l(x4, xl) { + return (x4 >>> 1 | xl << 31) ^ (x4 >>> 8 | xl << 24) ^ (x4 >>> 7 | xl << 25); + } + function Gamma1(x4, xl) { + return (x4 >>> 19 | xl << 13) ^ (xl >>> 29 | x4 << 3) ^ x4 >>> 6; + } + function Gamma1l(x4, xl) { + return (x4 >>> 19 | xl << 13) ^ (xl >>> 29 | x4 << 3) ^ (x4 >>> 6 | xl << 26); + } + function getCarry(a6, b4) { + return a6 >>> 0 < b4 >>> 0 ? 1 : 0; + } + Sha512.prototype._update = function(M4) { + var W4 = (this || _global$O)._w; + var ah = (this || _global$O)._ah | 0; + var bh = (this || _global$O)._bh | 0; + var ch = (this || _global$O)._ch | 0; + var dh = (this || _global$O)._dh | 0; + var eh = (this || _global$O)._eh | 0; + var fh = (this || _global$O)._fh | 0; + var gh = (this || _global$O)._gh | 0; + var hh = (this || _global$O)._hh | 0; + var al = (this || _global$O)._al | 0; + var bl = (this || _global$O)._bl | 0; + var cl = (this || _global$O)._cl | 0; + var dl = (this || _global$O)._dl | 0; + var el = (this || _global$O)._el | 0; + var fl = (this || _global$O)._fl | 0; + var gl = (this || _global$O)._gl | 0; + var hl = (this || _global$O)._hl | 0; + for (var i6 = 0; i6 < 32; i6 += 2) { + W4[i6] = M4.readInt32BE(i6 * 4); + W4[i6 + 1] = M4.readInt32BE(i6 * 4 + 4); + } + for (; i6 < 160; i6 += 2) { + var xh = W4[i6 - 15 * 2]; + var xl = W4[i6 - 15 * 2 + 1]; + var gamma0 = Gamma0(xh, xl); + var gamma0l = Gamma0l(xl, xh); + xh = W4[i6 - 2 * 2]; + xl = W4[i6 - 2 * 2 + 1]; + var gamma1 = Gamma1(xh, xl); + var gamma1l = Gamma1l(xl, xh); + var Wi7h = W4[i6 - 7 * 2]; + var Wi7l = W4[i6 - 7 * 2 + 1]; + var Wi16h = W4[i6 - 16 * 2]; + var Wi16l = W4[i6 - 16 * 2 + 1]; + var Wil = gamma0l + Wi7l | 0; + var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0; + Wil = Wil + gamma1l | 0; + Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0; + Wil = Wil + Wi16l | 0; + Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0; + W4[i6] = Wih; + W4[i6 + 1] = Wil; + } + for (var j4 = 0; j4 < 160; j4 += 2) { + Wih = W4[j4]; + Wil = W4[j4 + 1]; + var majh = maj(ah, bh, ch); + var majl = maj(al, bl, cl); + var sigma0h = sigma0(ah, al); + var sigma0l = sigma0(al, ah); + var sigma1h = sigma1(eh, el); + var sigma1l = sigma1(el, eh); + var Kih = K3[j4]; + var Kil = K3[j4 + 1]; + var chh = Ch(eh, fh, gh); + var chl = Ch(el, fl, gl); + var t1l = hl + sigma1l | 0; + var t1h = hh + sigma1h + getCarry(t1l, hl) | 0; + t1l = t1l + chl | 0; + t1h = t1h + chh + getCarry(t1l, chl) | 0; + t1l = t1l + Kil | 0; + t1h = t1h + Kih + getCarry(t1l, Kil) | 0; + t1l = t1l + Wil | 0; + t1h = t1h + Wih + getCarry(t1l, Wil) | 0; + var t2l = sigma0l + majl | 0; + var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0; + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = dl + t1l | 0; + eh = dh + t1h + getCarry(el, dl) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = t1l + t2l | 0; + ah = t1h + t2h + getCarry(al, t1l) | 0; + } + (this || _global$O)._al = (this || _global$O)._al + al | 0; + (this || _global$O)._bl = (this || _global$O)._bl + bl | 0; + (this || _global$O)._cl = (this || _global$O)._cl + cl | 0; + (this || _global$O)._dl = (this || _global$O)._dl + dl | 0; + (this || _global$O)._el = (this || _global$O)._el + el | 0; + (this || _global$O)._fl = (this || _global$O)._fl + fl | 0; + (this || _global$O)._gl = (this || _global$O)._gl + gl | 0; + (this || _global$O)._hl = (this || _global$O)._hl + hl | 0; + (this || _global$O)._ah = (this || _global$O)._ah + ah + getCarry((this || _global$O)._al, al) | 0; + (this || _global$O)._bh = (this || _global$O)._bh + bh + getCarry((this || _global$O)._bl, bl) | 0; + (this || _global$O)._ch = (this || _global$O)._ch + ch + getCarry((this || _global$O)._cl, cl) | 0; + (this || _global$O)._dh = (this || _global$O)._dh + dh + getCarry((this || _global$O)._dl, dl) | 0; + (this || _global$O)._eh = (this || _global$O)._eh + eh + getCarry((this || _global$O)._el, el) | 0; + (this || _global$O)._fh = (this || _global$O)._fh + fh + getCarry((this || _global$O)._fl, fl) | 0; + (this || _global$O)._gh = (this || _global$O)._gh + gh + getCarry((this || _global$O)._gl, gl) | 0; + (this || _global$O)._hh = (this || _global$O)._hh + hh + getCarry((this || _global$O)._hl, hl) | 0; + }; + Sha512.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(64); + function writeInt64BE(h6, l6, offset) { + H3.writeInt32BE(h6, offset); + H3.writeInt32BE(l6, offset + 4); + } + writeInt64BE((this || _global$O)._ah, (this || _global$O)._al, 0); + writeInt64BE((this || _global$O)._bh, (this || _global$O)._bl, 8); + writeInt64BE((this || _global$O)._ch, (this || _global$O)._cl, 16); + writeInt64BE((this || _global$O)._dh, (this || _global$O)._dl, 24); + writeInt64BE((this || _global$O)._eh, (this || _global$O)._el, 32); + writeInt64BE((this || _global$O)._fh, (this || _global$O)._fl, 40); + writeInt64BE((this || _global$O)._gh, (this || _global$O)._gl, 48); + writeInt64BE((this || _global$O)._hh, (this || _global$O)._hl, 56); + return H3; + }; + exports$2F = Sha512; + return exports$2F; +} +var exports$2E = {}; +var _dewExec$2D = false; +var _global$N = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2D() { + if (_dewExec$2D) + return exports$2E; + _dewExec$2D = true; + var inherits2 = dew$f(); + var SHA512 = dew$2E(); + var Hash2 = dew$2J(); + var Buffer2 = dew$2P().Buffer; + var W3 = new Array(160); + function Sha384() { + this.init(); + (this || _global$N)._w = W3; + Hash2.call(this || _global$N, 128, 112); + } + inherits2(Sha384, SHA512); + Sha384.prototype.init = function() { + (this || _global$N)._ah = 3418070365; + (this || _global$N)._bh = 1654270250; + (this || _global$N)._ch = 2438529370; + (this || _global$N)._dh = 355462360; + (this || _global$N)._eh = 1731405415; + (this || _global$N)._fh = 2394180231; + (this || _global$N)._gh = 3675008525; + (this || _global$N)._hh = 1203062813; + (this || _global$N)._al = 3238371032; + (this || _global$N)._bl = 914150663; + (this || _global$N)._cl = 812702999; + (this || _global$N)._dl = 4144912697; + (this || _global$N)._el = 4290775857; + (this || _global$N)._fl = 1750603025; + (this || _global$N)._gl = 1694076839; + (this || _global$N)._hl = 3204075428; + return this || _global$N; + }; + Sha384.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(48); + function writeInt64BE(h6, l6, offset) { + H3.writeInt32BE(h6, offset); + H3.writeInt32BE(l6, offset + 4); + } + writeInt64BE((this || _global$N)._ah, (this || _global$N)._al, 0); + writeInt64BE((this || _global$N)._bh, (this || _global$N)._bl, 8); + writeInt64BE((this || _global$N)._ch, (this || _global$N)._cl, 16); + writeInt64BE((this || _global$N)._dh, (this || _global$N)._dl, 24); + writeInt64BE((this || _global$N)._eh, (this || _global$N)._el, 32); + writeInt64BE((this || _global$N)._fh, (this || _global$N)._fl, 40); + return H3; + }; + exports$2E = Sha384; + return exports$2E; +} +var exports$2D = {}; +var _dewExec$2C = false; +var module$b = { + exports: exports$2D +}; +function dew$2C() { + if (_dewExec$2C) + return module$b.exports; + _dewExec$2C = true; + var exports5 = module$b.exports = function SHA(algorithm) { + algorithm = algorithm.toLowerCase(); + var Algorithm = exports5[algorithm]; + if (!Algorithm) + throw new Error(algorithm + " is not supported (we accept pull requests)"); + return new Algorithm(); + }; + exports5.sha = dew$2I(); + exports5.sha1 = dew$2H(); + exports5.sha224 = dew$2F(); + exports5.sha256 = dew$2G(); + exports5.sha384 = dew$2D(); + exports5.sha512 = dew$2E(); + return module$b.exports; +} +var exports$f$2 = {}; +var _dewExec$f$2 = false; +function dew$f$2() { + if (_dewExec$f$2) + return exports$f$2; + _dewExec$f$2 = true; + if (typeof Object.create === "function") { + exports$f$2 = function inherits2(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + exports$f$2 = function inherits2(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + return exports$f$2; +} +var exports$e$2 = {}; +var _dewExec$e$2 = false; +function dew$e$2() { + if (_dewExec$e$2) + return exports$e$2; + _dewExec$e$2 = true; + exports$e$2 = y.EventEmitter; + return exports$e$2; +} +var exports$d$2 = {}; +var _dewExec$d$2 = false; +function dew$d$2() { + if (_dewExec$d$2) + return exports$d$2; + _dewExec$d$2 = true; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) + symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i6 = 1; i6 < arguments.length; i6++) { + var source = arguments[i6] != null ? arguments[i6] : {}; + if (i6 % 2) { + ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i6 = 0; i6 < props.length; i6++) { + var descriptor = props[i6]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + return Constructor; + } + var _require = e$1$1, Buffer2 = _require.Buffer; + var _require2 = X, inspect2 = _require2.inspect; + var custom = inspect2 && inspect2.custom || "inspect"; + function copyBuffer(src, target, offset) { + Buffer2.prototype.copy.call(src, target, offset); + } + exports$d$2 = /* @__PURE__ */ function() { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v5) { + var entry = { + data: v5, + next: null + }; + if (this.length > 0) + this.tail.next = entry; + else + this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v5) { + var entry = { + data: v5, + next: this.head + }; + if (this.length === 0) + this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) + return; + var ret = this.head.data; + if (this.length === 1) + this.head = this.tail = null; + else + this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s6) { + if (this.length === 0) + return ""; + var p6 = this.head; + var ret = "" + p6.data; + while (p6 = p6.next) { + ret += s6 + p6.data; + } + return ret; + } + }, { + key: "concat", + value: function concat(n6) { + if (this.length === 0) + return Buffer2.alloc(0); + var ret = Buffer2.allocUnsafe(n6 >>> 0); + var p6 = this.head; + var i6 = 0; + while (p6) { + copyBuffer(p6.data, ret, i6); + i6 += p6.data.length; + p6 = p6.next; + } + return ret; + } + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n6, hasStrings) { + var ret; + if (n6 < this.head.data.length) { + ret = this.head.data.slice(0, n6); + this.head.data = this.head.data.slice(n6); + } else if (n6 === this.head.data.length) { + ret = this.shift(); + } else { + ret = hasStrings ? this._getString(n6) : this._getBuffer(n6); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n6) { + var p6 = this.head; + var c6 = 1; + var ret = p6.data; + n6 -= ret.length; + while (p6 = p6.next) { + var str = p6.data; + var nb = n6 > str.length ? str.length : n6; + if (nb === str.length) + ret += str; + else + ret += str.slice(0, n6); + n6 -= nb; + if (n6 === 0) { + if (nb === str.length) { + ++c6; + if (p6.next) + this.head = p6.next; + else + this.head = this.tail = null; + } else { + this.head = p6; + p6.data = str.slice(nb); + } + break; + } + ++c6; + } + this.length -= c6; + return ret; + } + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n6) { + var ret = Buffer2.allocUnsafe(n6); + var p6 = this.head; + var c6 = 1; + p6.data.copy(ret); + n6 -= p6.data.length; + while (p6 = p6.next) { + var buf = p6.data; + var nb = n6 > buf.length ? buf.length : n6; + buf.copy(ret, ret.length - n6, 0, nb); + n6 -= nb; + if (n6 === 0) { + if (nb === buf.length) { + ++c6; + if (p6.next) + this.head = p6.next; + else + this.head = this.tail = null; + } else { + this.head = p6; + p6.data = buf.slice(nb); + } + break; + } + ++c6; + } + this.length -= c6; + return ret; + } + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_4, options) { + return inspect2(this, _objectSpread({}, options, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; + }(); + return exports$d$2; +} +var exports$c$2 = {}; +var _dewExec$c$2 = false; +function dew$c$2() { + if (_dewExec$c$2) + return exports$c$2; + _dewExec$c$2 = true; + var process2 = T; + function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process2.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process2.nextTick(emitErrorNT, this, err); + } + } + return this; + } + if (this._readableState) { + this._readableState.destroyed = true; + } + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function(err2) { + if (!cb && err2) { + if (!_this._writableState) { + process2.nextTick(emitErrorAndCloseNT, _this, err2); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process2.nextTick(emitErrorAndCloseNT, _this, err2); + } else { + process2.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process2.nextTick(emitCloseNT, _this); + cb(err2); + } else { + process2.nextTick(emitCloseNT, _this); + } + }); + return this; + } + function emitErrorAndCloseNT(self2, err) { + emitErrorNT(self2, err); + emitCloseNT(self2); + } + function emitCloseNT(self2) { + if (self2._writableState && !self2._writableState.emitClose) + return; + if (self2._readableState && !self2._readableState.emitClose) + return; + self2.emit("close"); + } + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } + } + function emitErrorNT(self2, err) { + self2.emit("error", err); + } + function errorOrDestroy(stream2, err) { + var rState = stream2._readableState; + var wState = stream2._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) + stream2.destroy(err); + else + stream2.emit("error", err); + } + exports$c$2 = { + destroy, + undestroy, + errorOrDestroy + }; + return exports$c$2; +} +var exports$b$2 = {}; +var _dewExec$b$2 = false; +function dew$b$2() { + if (_dewExec$b$2) + return exports$b$2; + _dewExec$b$2 = true; + const codes = {}; + function createErrorType(code, message, Base) { + if (!Base) { + Base = Error; + } + function getMessage(arg1, arg2, arg3) { + if (typeof message === "string") { + return message; + } else { + return message(arg1, arg2, arg3); + } + } + class NodeError extends Base { + constructor(arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + codes[code] = NodeError; + } + function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i6) => String(i6)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(", ")}, or ` + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } + } + function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; + } + function endsWith(str, search, this_len) { + if (this_len === void 0 || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; + } + function includes(str, search, start) { + if (typeof start !== "number") { + start = 0; + } + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } + } + createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"'; + }, TypeError); + createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) { + let determiner; + if (typeof expected === "string" && startsWith(expected, "not ")) { + determiner = "must not be"; + expected = expected.replace(/^not /, ""); + } else { + determiner = "must be"; + } + let msg; + if (endsWith(name, " argument")) { + msg = `The ${name} ${determiner} ${oneOf(expected, "type")}`; + } else { + const type = includes(name, ".") ? "property" : "argument"; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, "type")}`; + } + msg += `. Received type ${typeof actual}`; + return msg; + }, TypeError); + createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"); + createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) { + return "The " + name + " method is not implemented"; + }); + createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close"); + createErrorType("ERR_STREAM_DESTROYED", function(name) { + return "Cannot call " + name + " after a stream was destroyed"; + }); + createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"); + createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"); + createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end"); + createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError); + createErrorType("ERR_UNKNOWN_ENCODING", function(arg) { + return "Unknown encoding: " + arg; + }, TypeError); + createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"); + exports$b$2.codes = codes; + return exports$b$2; +} +var exports$a$2 = {}; +var _dewExec$a$2 = false; +function dew$a$2() { + if (_dewExec$a$2) + return exports$a$2; + _dewExec$a$2 = true; + var ERR_INVALID_OPT_VALUE = dew$b$2().codes.ERR_INVALID_OPT_VALUE; + function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; + } + function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : "highWaterMark"; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + return state.objectMode ? 16 : 16 * 1024; + } + exports$a$2 = { + getHighWaterMark + }; + return exports$a$2; +} +var exports$9$2 = {}; +var _dewExec$9$2 = false; +var _global$2$2 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$9$2() { + if (_dewExec$9$2) + return exports$9$2; + _dewExec$9$2 = true; + exports$9$2 = deprecate2; + function deprecate2(fn, msg) { + if (config("noDeprecation")) { + return fn; + } + var warned = false; + function deprecated() { + if (!warned) { + if (config("throwDeprecation")) { + throw new Error(msg); + } else if (config("traceDeprecation")) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this || _global$2$2, arguments); + } + return deprecated; + } + function config(name) { + try { + if (!_global$2$2.localStorage) + return false; + } catch (_4) { + return false; + } + var val = _global$2$2.localStorage[name]; + if (null == val) + return false; + return String(val).toLowerCase() === "true"; + } + return exports$9$2; +} +var exports$8$2 = {}; +var _dewExec$8$2 = false; +var _global$1$2 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$8$2() { + if (_dewExec$8$2) + return exports$8$2; + _dewExec$8$2 = true; + var process2 = T; + exports$8$2 = Writable; + function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function() { + onCorkedFinish(_this, state); + }; + } + var Duplex; + Writable.WritableState = WritableState; + var internalUtil = { + deprecate: dew$9$2() + }; + var Stream = dew$e$2(); + var Buffer2 = e$1$1.Buffer; + var OurUint8Array = _global$1$2.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var destroyImpl = dew$c$2(); + var _require = dew$a$2(), getHighWaterMark = _require.getHighWaterMark; + var _require$codes = dew$b$2().codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + var errorOrDestroy = destroyImpl.errorOrDestroy; + dew$f$2()(Writable, Stream); + function nop() { + } + function WritableState(options, stream2, isDuplex) { + Duplex = Duplex || dew$7$2(); + options = options || {}; + if (typeof isDuplex !== "boolean") + isDuplex = stream2 instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.writableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex); + this.finalCalled = false; + this.needDrain = false; + this.ending = false; + this.ended = false; + this.finished = false; + this.destroyed = false; + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.length = 0; + this.writing = false; + this.corked = 0; + this.sync = true; + this.bufferProcessing = false; + this.onwrite = function(er) { + onwrite(stream2, er); + }; + this.writecb = null; + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + this.pendingcb = 0; + this.prefinished = false; + this.errorEmitted = false; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.bufferedRequestCount = 0; + this.corkedRequestsFree = new CorkedRequest(this); + } + WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; + }; + (function() { + try { + Object.defineProperty(WritableState.prototype, "buffer", { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") + }); + } catch (_4) { + } + })(); + var realHasInstance; + if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) + return true; + if (this !== Writable) + return false; + return object && object._writableState instanceof WritableState; + } + }); + } else { + realHasInstance = function realHasInstance2(object) { + return object instanceof this; + }; + } + function Writable(options) { + Duplex = Duplex || dew$7$2(); + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) + return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + this.writable = true; + if (options) { + if (typeof options.write === "function") + this._write = options.write; + if (typeof options.writev === "function") + this._writev = options.writev; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + if (typeof options.final === "function") + this._final = options.final; + } + Stream.call(this); + } + Writable.prototype.pipe = function() { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); + }; + function writeAfterEnd(stream2, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + errorOrDestroy(stream2, er); + process2.nextTick(cb, er); + } + function validChunk(stream2, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== "string" && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk); + } + if (er) { + errorOrDestroy(stream2, er); + process2.nextTick(cb, er); + return false; + } + return true; + } + Writable.prototype.write = function(chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer2.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (isBuf) + encoding = "buffer"; + else if (!encoding) + encoding = state.defaultEncoding; + if (typeof cb !== "function") + cb = nop; + if (state.ending) + writeAfterEnd(this, cb); + else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; + }; + Writable.prototype.cork = function() { + this._writableState.corked++; + }; + Writable.prototype.uncork = function() { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) + clearBuffer(this, state); + } + }; + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + if (typeof encoding === "string") + encoding = encoding.toLowerCase(); + if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) + throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; + }; + Object.defineProperty(Writable.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } + }); + function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") { + chunk = Buffer2.from(chunk, encoding); + } + return chunk; + } + Object.defineProperty(Writable.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } + }); + function writeOrBuffer(stream2, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = "buffer"; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + if (!ret) + state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk, + encoding, + isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream2, state, false, len, chunk, encoding, cb); + } + return ret; + } + function doWrite(stream2, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) + state.onwrite(new ERR_STREAM_DESTROYED("write")); + else if (writev) + stream2._writev(chunk, state.onwrite); + else + stream2._write(chunk, encoding, state.onwrite); + state.sync = false; + } + function onwriteError(stream2, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + process2.nextTick(cb, er); + process2.nextTick(finishMaybe, stream2, state); + stream2._writableState.errorEmitted = true; + errorOrDestroy(stream2, er); + } else { + cb(er); + stream2._writableState.errorEmitted = true; + errorOrDestroy(stream2, er); + finishMaybe(stream2, state); + } + } + function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + } + function onwrite(stream2, er) { + var state = stream2._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== "function") + throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) + onwriteError(stream2, state, sync, er, cb); + else { + var finished = needFinish(state) || stream2.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream2, state); + } + if (sync) { + process2.nextTick(afterWrite, stream2, state, finished, cb); + } else { + afterWrite(stream2, state, finished, cb); + } + } + } + function afterWrite(stream2, state, finished, cb) { + if (!finished) + onwriteDrain(stream2, state); + state.pendingcb--; + cb(); + finishMaybe(stream2, state); + } + function onwriteDrain(stream2, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream2.emit("drain"); + } + } + function clearBuffer(stream2, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream2._writev && entry && entry.next) { + var l6 = state.bufferedRequestCount; + var buffer2 = new Array(l6); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer2[count] = entry; + if (!entry.isBuf) + allBuffers = false; + entry = entry.next; + count += 1; + } + buffer2.allBuffers = allBuffers; + doWrite(stream2, state, true, state.length, buffer2, "", holder.finish); + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream2, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + if (state.writing) { + break; + } + } + if (entry === null) + state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; + } + Writable.prototype._write = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()")); + }; + Writable.prototype._writev = null; + Writable.prototype.end = function(chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === "function") { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== void 0) + this.write(chunk, encoding); + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (!state.ending) + endWritable(this, state, cb); + return this; + }; + Object.defineProperty(Writable.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } + }); + function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; + } + function callFinal(stream2, state) { + stream2._final(function(err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream2, err); + } + state.prefinished = true; + stream2.emit("prefinish"); + finishMaybe(stream2, state); + }); + } + function prefinish(stream2, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream2._final === "function" && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process2.nextTick(callFinal, stream2, state); + } else { + state.prefinished = true; + stream2.emit("prefinish"); + } + } + } + function finishMaybe(stream2, state) { + var need = needFinish(state); + if (need) { + prefinish(stream2, state); + if (state.pendingcb === 0) { + state.finished = true; + stream2.emit("finish"); + if (state.autoDestroy) { + var rState = stream2._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream2.destroy(); + } + } + } + } + return need; + } + function endWritable(stream2, state, cb) { + state.ending = true; + finishMaybe(stream2, state); + if (cb) { + if (state.finished) + process2.nextTick(cb); + else + stream2.once("finish", cb); + } + state.ended = true; + stream2.writable = false; + } + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + state.corkedRequestsFree.next = corkReq; + } + Object.defineProperty(Writable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === void 0) { + return false; + } + return this._writableState.destroyed; + }, + set: function set(value) { + if (!this._writableState) { + return; + } + this._writableState.destroyed = value; + } + }); + Writable.prototype.destroy = destroyImpl.destroy; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function(err, cb) { + cb(err); + }; + return exports$8$2; +} +var exports$7$2 = {}; +var _dewExec$7$2 = false; +function dew$7$2() { + if (_dewExec$7$2) + return exports$7$2; + _dewExec$7$2 = true; + var process2 = T; + var objectKeys = Object.keys || function(obj) { + var keys2 = []; + for (var key in obj) { + keys2.push(key); + } + return keys2; + }; + exports$7$2 = Duplex; + var Readable = dew$3$2(); + var Writable = dew$8$2(); + dew$f$2()(Duplex, Readable); + { + var keys = objectKeys(Writable.prototype); + for (var v5 = 0; v5 < keys.length; v5++) { + var method = keys[v5]; + if (!Duplex.prototype[method]) + Duplex.prototype[method] = Writable.prototype[method]; + } + } + function Duplex(options) { + if (!(this instanceof Duplex)) + return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) + this.readable = false; + if (options.writable === false) + this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once("end", onend); + } + } + } + Object.defineProperty(Duplex.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } + }); + Object.defineProperty(Duplex.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } + }); + Object.defineProperty(Duplex.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } + }); + function onend() { + if (this._writableState.ended) + return; + process2.nextTick(onEndNT, this); + } + function onEndNT(self2) { + self2.end(); + } + Object.defineProperty(Duplex.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === void 0 || this._writableState === void 0) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + if (this._readableState === void 0 || this._writableState === void 0) { + return; + } + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } + }); + return exports$7$2; +} +var exports$6$2 = {}; +var _dewExec$6$2 = false; +function dew$6$2() { + if (_dewExec$6$2) + return exports$6$2; + _dewExec$6$2 = true; + var ERR_STREAM_PREMATURE_CLOSE = dew$b$2().codes.ERR_STREAM_PREMATURE_CLOSE; + function once(callback) { + var called = false; + return function() { + if (called) + return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; + } + function noop() { + } + function isRequest(stream2) { + return stream2.setHeader && typeof stream2.abort === "function"; + } + function eos(stream2, opts, callback) { + if (typeof opts === "function") + return eos(stream2, null, opts); + if (!opts) + opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream2.readable; + var writable = opts.writable || opts.writable !== false && stream2.writable; + var onlegacyfinish = function onlegacyfinish2() { + if (!stream2.writable) + onfinish(); + }; + var writableEnded = stream2._writableState && stream2._writableState.finished; + var onfinish = function onfinish2() { + writable = false; + writableEnded = true; + if (!readable) + callback.call(stream2); + }; + var readableEnded = stream2._readableState && stream2._readableState.endEmitted; + var onend = function onend2() { + readable = false; + readableEnded = true; + if (!writable) + callback.call(stream2); + }; + var onerror = function onerror2(err) { + callback.call(stream2, err); + }; + var onclose = function onclose2() { + var err; + if (readable && !readableEnded) { + if (!stream2._readableState || !stream2._readableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream2, err); + } + if (writable && !writableEnded) { + if (!stream2._writableState || !stream2._writableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream2, err); + } + }; + var onrequest = function onrequest2() { + stream2.req.on("finish", onfinish); + }; + if (isRequest(stream2)) { + stream2.on("complete", onfinish); + stream2.on("abort", onclose); + if (stream2.req) + onrequest(); + else + stream2.on("request", onrequest); + } else if (writable && !stream2._writableState) { + stream2.on("end", onlegacyfinish); + stream2.on("close", onlegacyfinish); + } + stream2.on("end", onend); + stream2.on("finish", onfinish); + if (opts.error !== false) + stream2.on("error", onerror); + stream2.on("close", onclose); + return function() { + stream2.removeListener("complete", onfinish); + stream2.removeListener("abort", onclose); + stream2.removeListener("request", onrequest); + if (stream2.req) + stream2.req.removeListener("finish", onfinish); + stream2.removeListener("end", onlegacyfinish); + stream2.removeListener("close", onlegacyfinish); + stream2.removeListener("finish", onfinish); + stream2.removeListener("end", onend); + stream2.removeListener("error", onerror); + stream2.removeListener("close", onclose); + }; + } + exports$6$2 = eos; + return exports$6$2; +} +var exports$5$2 = {}; +var _dewExec$5$2 = false; +function dew$5$2() { + if (_dewExec$5$2) + return exports$5$2; + _dewExec$5$2 = true; + var process2 = T; + var _Object$setPrototypeO; + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var finished = dew$6$2(); + var kLastResolve = Symbol("lastResolve"); + var kLastReject = Symbol("lastReject"); + var kError = Symbol("error"); + var kEnded = Symbol("ended"); + var kLastPromise = Symbol("lastPromise"); + var kHandlePromise = Symbol("handlePromise"); + var kStream = Symbol("stream"); + function createIterResult(value, done) { + return { + value, + done + }; + } + function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } + } + function onReadable(iter) { + process2.nextTick(readAndResolve, iter); + } + function wrapForNext(lastPromise, iter) { + return function(resolve, reject) { + lastPromise.then(function() { + if (iter[kEnded]) { + resolve(createIterResult(void 0, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; + } + var AsyncIteratorPrototype = Object.getPrototypeOf(function() { + }); + var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(void 0, true)); + } + if (this[kStream].destroyed) { + return new Promise(function(resolve, reject) { + process2.nextTick(function() { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(void 0, true)); + } + }); + }); + } + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } + }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() { + return this; + }), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + return new Promise(function(resolve, reject) { + _this2[kStream].destroy(null, function(err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(void 0, true)); + }); + }); + }), _Object$setPrototypeO), AsyncIteratorPrototype); + var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream2) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream2, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream2._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream2, function(err) { + if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { + var reject = iterator[kLastReject]; + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(void 0, true)); + } + iterator[kEnded] = true; + }); + stream2.on("readable", onReadable.bind(null, iterator)); + return iterator; + }; + exports$5$2 = createReadableStreamAsyncIterator; + return exports$5$2; +} +var exports$4$2 = {}; +var _dewExec$4$2 = false; +function dew$4$2() { + if (_dewExec$4$2) + return exports$4$2; + _dewExec$4$2 = true; + exports$4$2 = function() { + throw new Error("Readable.from is not available in the browser"); + }; + return exports$4$2; +} +var exports$3$2 = {}; +var _dewExec$3$2 = false; +var _global$M = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$3$2() { + if (_dewExec$3$2) + return exports$3$2; + _dewExec$3$2 = true; + var process2 = T; + exports$3$2 = Readable; + var Duplex; + Readable.ReadableState = ReadableState; + y.EventEmitter; + var EElistenerCount = function EElistenerCount2(emitter, type) { + return emitter.listeners(type).length; + }; + var Stream = dew$e$2(); + var Buffer2 = e$1$1.Buffer; + var OurUint8Array = _global$M.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var debugUtil = X; + var debug; + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog("stream"); + } else { + debug = function debug2() { + }; + } + var BufferList = dew$d$2(); + var destroyImpl = dew$c$2(); + var _require = dew$a$2(), getHighWaterMark = _require.getHighWaterMark; + var _require$codes = dew$b$2().codes, ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + var StringDecoder; + var createReadableStreamAsyncIterator; + var from; + dew$f$2()(Readable, Stream); + var errorOrDestroy = destroyImpl.errorOrDestroy; + var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; + function prependListener(emitter, event, fn) { + if (typeof emitter.prependListener === "function") + return emitter.prependListener(event, fn); + if (!emitter._events || !emitter._events[event]) + emitter.on(event, fn); + else if (Array.isArray(emitter._events[event])) + emitter._events[event].unshift(fn); + else + emitter._events[event] = [fn, emitter._events[event]]; + } + function ReadableState(options, stream2, isDuplex) { + Duplex = Duplex || dew$7$2(); + options = options || {}; + if (typeof isDuplex !== "boolean") + isDuplex = stream2 instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.readableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex); + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + this.sync = true; + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.destroyed = false; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.awaitDrain = 0; + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) + StringDecoder = e$12.StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } + function Readable(options) { + Duplex = Duplex || dew$7$2(); + if (!(this instanceof Readable)) + return new Readable(options); + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + this.readable = true; + if (options) { + if (typeof options.read === "function") + this._read = options.read; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + } + Stream.call(this); + } + Object.defineProperty(Readable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === void 0) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + if (!this._readableState) { + return; + } + this._readableState.destroyed = value; + } + }); + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function(err, cb) { + cb(err); + }; + Readable.prototype.push = function(chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === "string") { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer2.from(chunk, encoding); + encoding = ""; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); + }; + Readable.prototype.unshift = function(chunk) { + return readableAddChunk(this, chunk, null, true, false); + }; + function readableAddChunk(stream2, chunk, encoding, addToFront, skipChunkCheck) { + debug("readableAddChunk", chunk); + var state = stream2._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream2, state); + } else { + var er; + if (!skipChunkCheck) + er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream2, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) + errorOrDestroy(stream2, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else + addChunk(stream2, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream2, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) + addChunk(stream2, state, chunk, false); + else + maybeReadMore(stream2, state); + } else { + addChunk(stream2, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream2, state); + } + } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); + } + function addChunk(stream2, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream2.emit("data", chunk); + } else { + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) + state.buffer.unshift(chunk); + else + state.buffer.push(chunk); + if (state.needReadable) + emitReadable(stream2); + } + maybeReadMore(stream2, state); + } + function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk); + } + return er; + } + Readable.prototype.isPaused = function() { + return this._readableState.flowing === false; + }; + Readable.prototype.setEncoding = function(enc) { + if (!StringDecoder) + StringDecoder = e$12.StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + this._readableState.encoding = this._readableState.decoder.encoding; + var p6 = this._readableState.buffer.head; + var content = ""; + while (p6 !== null) { + content += decoder.write(p6.data); + p6 = p6.next; + } + this._readableState.buffer.clear(); + if (content !== "") + this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; + }; + var MAX_HWM = 1073741824; + function computeNewHighWaterMark(n6) { + if (n6 >= MAX_HWM) { + n6 = MAX_HWM; + } else { + n6--; + n6 |= n6 >>> 1; + n6 |= n6 >>> 2; + n6 |= n6 >>> 4; + n6 |= n6 >>> 8; + n6 |= n6 >>> 16; + n6++; + } + return n6; + } + function howMuchToRead(n6, state) { + if (n6 <= 0 || state.length === 0 && state.ended) + return 0; + if (state.objectMode) + return 1; + if (n6 !== n6) { + if (state.flowing && state.length) + return state.buffer.head.data.length; + else + return state.length; + } + if (n6 > state.highWaterMark) + state.highWaterMark = computeNewHighWaterMark(n6); + if (n6 <= state.length) + return n6; + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; + } + Readable.prototype.read = function(n6) { + debug("read", n6); + n6 = parseInt(n6, 10); + var state = this._readableState; + var nOrig = n6; + if (n6 !== 0) + state.emittedReadable = false; + if (n6 === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug("read: emitReadable", state.length, state.ended); + if (state.length === 0 && state.ended) + endReadable(this); + else + emitReadable(this); + return null; + } + n6 = howMuchToRead(n6, state); + if (n6 === 0 && state.ended) { + if (state.length === 0) + endReadable(this); + return null; + } + var doRead = state.needReadable; + debug("need readable", doRead); + if (state.length === 0 || state.length - n6 < state.highWaterMark) { + doRead = true; + debug("length less than watermark", doRead); + } + if (state.ended || state.reading) { + doRead = false; + debug("reading or ended", doRead); + } else if (doRead) { + debug("do read"); + state.reading = true; + state.sync = true; + if (state.length === 0) + state.needReadable = true; + this._read(state.highWaterMark); + state.sync = false; + if (!state.reading) + n6 = howMuchToRead(nOrig, state); + } + var ret; + if (n6 > 0) + ret = fromList(n6, state); + else + ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n6 = 0; + } else { + state.length -= n6; + state.awaitDrain = 0; + } + if (state.length === 0) { + if (!state.ended) + state.needReadable = true; + if (nOrig !== n6 && state.ended) + endReadable(this); + } + if (ret !== null) + this.emit("data", ret); + return ret; + }; + function onEofChunk(stream2, state) { + debug("onEofChunk"); + if (state.ended) + return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + emitReadable(stream2); + } else { + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream2); + } + } + } + function emitReadable(stream2) { + var state = stream2._readableState; + debug("emitReadable", state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug("emitReadable", state.flowing); + state.emittedReadable = true; + process2.nextTick(emitReadable_, stream2); + } + } + function emitReadable_(stream2) { + var state = stream2._readableState; + debug("emitReadable_", state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream2.emit("readable"); + state.emittedReadable = false; + } + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream2); + } + function maybeReadMore(stream2, state) { + if (!state.readingMore) { + state.readingMore = true; + process2.nextTick(maybeReadMore_, stream2, state); + } + } + function maybeReadMore_(stream2, state) { + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug("maybeReadMore read 0"); + stream2.read(0); + if (len === state.length) + break; + } + state.readingMore = false; + } + Readable.prototype._read = function(n6) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()")); + }; + Readable.prototype.pipe = function(dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process2.stdout && dest !== process2.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) + process2.nextTick(endFn); + else + src.once("end", endFn); + dest.on("unpipe", onunpipe); + function onunpipe(readable, unpipeInfo) { + debug("onunpipe"); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug("onend"); + dest.end(); + } + var ondrain = pipeOnDrain(src); + dest.on("drain", ondrain); + var cleanedUp = false; + function cleanup() { + debug("cleanup"); + dest.removeListener("close", onclose); + dest.removeListener("finish", onfinish); + dest.removeListener("drain", ondrain); + dest.removeListener("error", onerror); + dest.removeListener("unpipe", onunpipe); + src.removeListener("end", onend); + src.removeListener("end", unpipe); + src.removeListener("data", ondata); + cleanedUp = true; + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) + ondrain(); + } + src.on("data", ondata); + function ondata(chunk) { + debug("ondata"); + var ret = dest.write(chunk); + debug("dest.write", ret); + if (ret === false) { + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf2(state.pipes, dest) !== -1) && !cleanedUp) { + debug("false write response, pause", state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + function onerror(er) { + debug("onerror", er); + unpipe(); + dest.removeListener("error", onerror); + if (EElistenerCount(dest, "error") === 0) + errorOrDestroy(dest, er); + } + prependListener(dest, "error", onerror); + function onclose() { + dest.removeListener("finish", onfinish); + unpipe(); + } + dest.once("close", onclose); + function onfinish() { + debug("onfinish"); + dest.removeListener("close", onclose); + unpipe(); + } + dest.once("finish", onfinish); + function unpipe() { + debug("unpipe"); + src.unpipe(dest); + } + dest.emit("pipe", src); + if (!state.flowing) { + debug("pipe resume"); + src.resume(); + } + return dest; + }; + function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug("pipeOnDrain", state.awaitDrain); + if (state.awaitDrain) + state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { + state.flowing = true; + flow(src); + } + }; + } + Readable.prototype.unpipe = function(dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + if (state.pipesCount === 0) + return this; + if (state.pipesCount === 1) { + if (dest && dest !== state.pipes) + return this; + if (!dest) + dest = state.pipes; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) + dest.emit("unpipe", this, unpipeInfo); + return this; + } + if (!dest) { + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i6 = 0; i6 < len; i6++) { + dests[i6].emit("unpipe", this, { + hasUnpiped: false + }); + } + return this; + } + var index = indexOf2(state.pipes, dest); + if (index === -1) + return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) + state.pipes = state.pipes[0]; + dest.emit("unpipe", this, unpipeInfo); + return this; + }; + Readable.prototype.on = function(ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === "data") { + state.readableListening = this.listenerCount("readable") > 0; + if (state.flowing !== false) + this.resume(); + } else if (ev === "readable") { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug("on readable", state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process2.nextTick(nReadingNextTick, this); + } + } + } + return res; + }; + Readable.prototype.addListener = Readable.prototype.on; + Readable.prototype.removeListener = function(ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === "readable") { + process2.nextTick(updateReadableListening, this); + } + return res; + }; + Readable.prototype.removeAllListeners = function(ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === "readable" || ev === void 0) { + process2.nextTick(updateReadableListening, this); + } + return res; + }; + function updateReadableListening(self2) { + var state = self2._readableState; + state.readableListening = self2.listenerCount("readable") > 0; + if (state.resumeScheduled && !state.paused) { + state.flowing = true; + } else if (self2.listenerCount("data") > 0) { + self2.resume(); + } + } + function nReadingNextTick(self2) { + debug("readable nexttick read 0"); + self2.read(0); + } + Readable.prototype.resume = function() { + var state = this._readableState; + if (!state.flowing) { + debug("resume"); + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; + }; + function resume(stream2, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process2.nextTick(resume_, stream2, state); + } + } + function resume_(stream2, state) { + debug("resume", state.reading); + if (!state.reading) { + stream2.read(0); + } + state.resumeScheduled = false; + stream2.emit("resume"); + flow(stream2); + if (state.flowing && !state.reading) + stream2.read(0); + } + Readable.prototype.pause = function() { + debug("call pause flowing=%j", this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug("pause"); + this._readableState.flowing = false; + this.emit("pause"); + } + this._readableState.paused = true; + return this; + }; + function flow(stream2) { + var state = stream2._readableState; + debug("flow", state.flowing); + while (state.flowing && stream2.read() !== null) { + } + } + Readable.prototype.wrap = function(stream2) { + var _this = this; + var state = this._readableState; + var paused = false; + stream2.on("end", function() { + debug("wrapped end"); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) + _this.push(chunk); + } + _this.push(null); + }); + stream2.on("data", function(chunk) { + debug("wrapped data"); + if (state.decoder) + chunk = state.decoder.write(chunk); + if (state.objectMode && (chunk === null || chunk === void 0)) + return; + else if (!state.objectMode && (!chunk || !chunk.length)) + return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream2.pause(); + } + }); + for (var i6 in stream2) { + if (this[i6] === void 0 && typeof stream2[i6] === "function") { + this[i6] = /* @__PURE__ */ function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream2[method].apply(stream2, arguments); + }; + }(i6); + } + } + for (var n6 = 0; n6 < kProxyEvents.length; n6++) { + stream2.on(kProxyEvents[n6], this.emit.bind(this, kProxyEvents[n6])); + } + this._read = function(n7) { + debug("wrapped _read", n7); + if (paused) { + paused = false; + stream2.resume(); + } + }; + return this; + }; + if (typeof Symbol === "function") { + Readable.prototype[Symbol.asyncIterator] = function() { + if (createReadableStreamAsyncIterator === void 0) { + createReadableStreamAsyncIterator = dew$5$2(); + } + return createReadableStreamAsyncIterator(this); + }; + } + Object.defineProperty(Readable.prototype, "readableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } + }); + Object.defineProperty(Readable.prototype, "readableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } + }); + Object.defineProperty(Readable.prototype, "readableFlowing", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } + }); + Readable._fromList = fromList; + Object.defineProperty(Readable.prototype, "readableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } + }); + function fromList(n6, state) { + if (state.length === 0) + return null; + var ret; + if (state.objectMode) + ret = state.buffer.shift(); + else if (!n6 || n6 >= state.length) { + if (state.decoder) + ret = state.buffer.join(""); + else if (state.buffer.length === 1) + ret = state.buffer.first(); + else + ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + ret = state.buffer.consume(n6, state.decoder); + } + return ret; + } + function endReadable(stream2) { + var state = stream2._readableState; + debug("endReadable", state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process2.nextTick(endReadableNT, state, stream2); + } + } + function endReadableNT(state, stream2) { + debug("endReadableNT", state.endEmitted, state.length); + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream2.readable = false; + stream2.emit("end"); + if (state.autoDestroy) { + var wState = stream2._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream2.destroy(); + } + } + } + } + if (typeof Symbol === "function") { + Readable.from = function(iterable, opts) { + if (from === void 0) { + from = dew$4$2(); + } + return from(Readable, iterable, opts); + }; + } + function indexOf2(xs, x4) { + for (var i6 = 0, l6 = xs.length; i6 < l6; i6++) { + if (xs[i6] === x4) + return i6; + } + return -1; + } + return exports$3$2; +} +var exports$2$2 = {}; +var _dewExec$2$2 = false; +function dew$2$2() { + if (_dewExec$2$2) + return exports$2$2; + _dewExec$2$2 = true; + exports$2$2 = Transform; + var _require$codes = dew$b$2().codes, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; + var Duplex = dew$7$2(); + dew$f$2()(Transform, Duplex); + function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit("error", new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } + } + function Transform(options) { + if (!(this instanceof Transform)) + return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + this._readableState.needReadable = true; + this._readableState.sync = false; + if (options) { + if (typeof options.transform === "function") + this._transform = options.transform; + if (typeof options.flush === "function") + this._flush = options.flush; + } + this.on("prefinish", prefinish); + } + function prefinish() { + var _this = this; + if (typeof this._flush === "function" && !this._readableState.destroyed) { + this._flush(function(er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } + } + Transform.prototype.push = function(chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); + }; + Transform.prototype._transform = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()")); + }; + Transform.prototype._write = function(chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) + this._read(rs.highWaterMark); + } + }; + Transform.prototype._read = function(n6) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + ts.needTransform = true; + } + }; + Transform.prototype._destroy = function(err, cb) { + Duplex.prototype._destroy.call(this, err, function(err2) { + cb(err2); + }); + }; + function done(stream2, er, data) { + if (er) + return stream2.emit("error", er); + if (data != null) + stream2.push(data); + if (stream2._writableState.length) + throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream2._transformState.transforming) + throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream2.push(null); + } + return exports$2$2; +} +var exports$1$2 = {}; +var _dewExec$1$2 = false; +function dew$1$2() { + if (_dewExec$1$2) + return exports$1$2; + _dewExec$1$2 = true; + exports$1$2 = PassThrough; + var Transform = dew$2$2(); + dew$f$2()(PassThrough, Transform); + function PassThrough(options) { + if (!(this instanceof PassThrough)) + return new PassThrough(options); + Transform.call(this, options); + } + PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); + }; + return exports$1$2; +} +var exports$2C = {}; +var _dewExec$2B = false; +function dew$2B() { + if (_dewExec$2B) + return exports$2C; + _dewExec$2B = true; + var eos; + function once(callback) { + var called = false; + return function() { + if (called) + return; + called = true; + callback.apply(void 0, arguments); + }; + } + var _require$codes = dew$b$2().codes, ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + function noop(err) { + if (err) + throw err; + } + function isRequest(stream2) { + return stream2.setHeader && typeof stream2.abort === "function"; + } + function destroyer(stream2, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream2.on("close", function() { + closed = true; + }); + if (eos === void 0) + eos = dew$6$2(); + eos(stream2, { + readable: reading, + writable: writing + }, function(err) { + if (err) + return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function(err) { + if (closed) + return; + if (destroyed) + return; + destroyed = true; + if (isRequest(stream2)) + return stream2.abort(); + if (typeof stream2.destroy === "function") + return stream2.destroy(); + callback(err || new ERR_STREAM_DESTROYED("pipe")); + }; + } + function call(fn) { + fn(); + } + function pipe(from, to) { + return from.pipe(to); + } + function popCallback(streams) { + if (!streams.length) + return noop; + if (typeof streams[streams.length - 1] !== "function") + return noop; + return streams.pop(); + } + function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) + streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS("streams"); + } + var error; + var destroys = streams.map(function(stream2, i6) { + var reading = i6 < streams.length - 1; + var writing = i6 > 0; + return destroyer(stream2, reading, writing, function(err) { + if (!error) + error = err; + if (err) + destroys.forEach(call); + if (reading) + return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); + } + exports$2C = pipeline; + return exports$2C; +} +var exports$2B = {}; +var _dewExec$2A = false; +var _global$L = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2A() { + if (_dewExec$2A) + return exports$2B; + _dewExec$2A = true; + exports$2B = Stream; + var EE = y.EventEmitter; + var inherits2 = dew$f$2(); + inherits2(Stream, EE); + Stream.Readable = dew$3$2(); + Stream.Writable = dew$8$2(); + Stream.Duplex = dew$7$2(); + Stream.Transform = dew$2$2(); + Stream.PassThrough = dew$1$2(); + Stream.finished = dew$6$2(); + Stream.pipeline = dew$2B(); + Stream.Stream = Stream; + function Stream() { + EE.call(this || _global$L); + } + Stream.prototype.pipe = function(dest, options) { + var source = this || _global$L; + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } + } + source.on("data", ondata); + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + dest.on("drain", ondrain); + if (!dest._isStdio && (!options || options.end !== false)) { + source.on("end", onend); + source.on("close", onclose); + } + var didOnEnd = false; + function onend() { + if (didOnEnd) + return; + didOnEnd = true; + dest.end(); + } + function onclose() { + if (didOnEnd) + return; + didOnEnd = true; + if (typeof dest.destroy === "function") + dest.destroy(); + } + function onerror(er) { + cleanup(); + if (EE.listenerCount(this || _global$L, "error") === 0) { + throw er; + } + } + source.on("error", onerror); + dest.on("error", onerror); + function cleanup() { + source.removeListener("data", ondata); + dest.removeListener("drain", ondrain); + source.removeListener("end", onend); + source.removeListener("close", onclose); + source.removeListener("error", onerror); + dest.removeListener("error", onerror); + source.removeListener("end", cleanup); + source.removeListener("close", cleanup); + dest.removeListener("close", cleanup); + } + source.on("end", cleanup); + source.on("close", cleanup); + dest.on("close", cleanup); + dest.emit("pipe", source); + return dest; + }; + return exports$2B; +} +var stream = dew$2A(); +stream.Readable; +stream.Writable; +stream.Duplex; +stream.Transform; +stream.PassThrough; +stream.finished; +stream.pipeline; +stream.Stream; +({ + finished: promisify(stream.finished), + pipeline: promisify(stream.pipeline) +}); +var exports$2A = {}; +var _dewExec$2z = false; +var _global$K = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2z() { + if (_dewExec$2z) + return exports$2A; + _dewExec$2z = true; + var Buffer2 = dew$2P().Buffer; + var Transform = stream.Transform; + var StringDecoder = e$12.StringDecoder; + var inherits2 = dew$f(); + function CipherBase(hashMode) { + Transform.call(this || _global$K); + (this || _global$K).hashMode = typeof hashMode === "string"; + if ((this || _global$K).hashMode) { + (this || _global$K)[hashMode] = (this || _global$K)._finalOrDigest; + } else { + (this || _global$K).final = (this || _global$K)._finalOrDigest; + } + if ((this || _global$K)._final) { + (this || _global$K).__final = (this || _global$K)._final; + (this || _global$K)._final = null; + } + (this || _global$K)._decoder = null; + (this || _global$K)._encoding = null; + } + inherits2(CipherBase, Transform); + CipherBase.prototype.update = function(data, inputEnc, outputEnc) { + if (typeof data === "string") { + data = Buffer2.from(data, inputEnc); + } + var outData = this._update(data); + if ((this || _global$K).hashMode) + return this || _global$K; + if (outputEnc) { + outData = this._toString(outData, outputEnc); + } + return outData; + }; + CipherBase.prototype.setAutoPadding = function() { + }; + CipherBase.prototype.getAuthTag = function() { + throw new Error("trying to get auth tag in unsupported state"); + }; + CipherBase.prototype.setAuthTag = function() { + throw new Error("trying to set auth tag in unsupported state"); + }; + CipherBase.prototype.setAAD = function() { + throw new Error("trying to set aad in unsupported state"); + }; + CipherBase.prototype._transform = function(data, _4, next) { + var err; + try { + if ((this || _global$K).hashMode) { + this._update(data); + } else { + this.push(this._update(data)); + } + } catch (e8) { + err = e8; + } finally { + next(err); + } + }; + CipherBase.prototype._flush = function(done) { + var err; + try { + this.push(this.__final()); + } catch (e8) { + err = e8; + } + done(err); + }; + CipherBase.prototype._finalOrDigest = function(outputEnc) { + var outData = this.__final() || Buffer2.alloc(0); + if (outputEnc) { + outData = this._toString(outData, outputEnc, true); + } + return outData; + }; + CipherBase.prototype._toString = function(value, enc, fin) { + if (!(this || _global$K)._decoder) { + (this || _global$K)._decoder = new StringDecoder(enc); + (this || _global$K)._encoding = enc; + } + if ((this || _global$K)._encoding !== enc) + throw new Error("can't switch encodings"); + var out = (this || _global$K)._decoder.write(value); + if (fin) { + out += (this || _global$K)._decoder.end(); + } + return out; + }; + exports$2A = CipherBase; + return exports$2A; +} +var exports$2z = {}; +var _dewExec$2y = false; +function dew$2y() { + if (_dewExec$2y) + return exports$2z; + _dewExec$2y = true; + var inherits2 = dew$f(); + var MD5 = dew$2L(); + var RIPEMD160 = dew$2K(); + var sha = dew$2C(); + var Base = dew$2z(); + function Hash2(hash) { + Base.call(this, "digest"); + this._hash = hash; + } + inherits2(Hash2, Base); + Hash2.prototype._update = function(data) { + this._hash.update(data); + }; + Hash2.prototype._final = function() { + return this._hash.digest(); + }; + exports$2z = function createHash2(alg) { + alg = alg.toLowerCase(); + if (alg === "md5") + return new MD5(); + if (alg === "rmd160" || alg === "ripemd160") + return new RIPEMD160(); + return new Hash2(sha(alg)); + }; + return exports$2z; +} +var exports$2y = {}; +var _dewExec$2x = false; +function dew$2x() { + if (_dewExec$2x) + return exports$2y; + _dewExec$2x = true; + var inherits2 = dew$f(); + var Buffer2 = dew$2P().Buffer; + var Base = dew$2z(); + var ZEROS = Buffer2.alloc(128); + var blocksize = 64; + function Hmac2(alg, key) { + Base.call(this, "digest"); + if (typeof key === "string") { + key = Buffer2.from(key); + } + this._alg = alg; + this._key = key; + if (key.length > blocksize) { + key = alg(key); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = this._ipad = Buffer2.allocUnsafe(blocksize); + var opad = this._opad = Buffer2.allocUnsafe(blocksize); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + this._hash = [ipad]; + } + inherits2(Hmac2, Base); + Hmac2.prototype._update = function(data) { + this._hash.push(data); + }; + Hmac2.prototype._final = function() { + var h6 = this._alg(Buffer2.concat(this._hash)); + return this._alg(Buffer2.concat([this._opad, h6])); + }; + exports$2y = Hmac2; + return exports$2y; +} +var exports$2x = {}; +var _dewExec$2w = false; +function dew$2w() { + if (_dewExec$2w) + return exports$2x; + _dewExec$2w = true; + var MD5 = dew$2L(); + exports$2x = function(buffer2) { + return new MD5().update(buffer2).digest(); + }; + return exports$2x; +} +var exports$2w = {}; +var _dewExec$2v = false; +function dew$2v() { + if (_dewExec$2v) + return exports$2w; + _dewExec$2v = true; + var inherits2 = dew$f(); + var Legacy = dew$2x(); + var Base = dew$2z(); + var Buffer2 = dew$2P().Buffer; + var md5 = dew$2w(); + var RIPEMD160 = dew$2K(); + var sha = dew$2C(); + var ZEROS = Buffer2.alloc(128); + function Hmac2(alg, key) { + Base.call(this, "digest"); + if (typeof key === "string") { + key = Buffer2.from(key); + } + var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; + this._alg = alg; + this._key = key; + if (key.length > blocksize) { + var hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); + key = hash.update(key).digest(); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = this._ipad = Buffer2.allocUnsafe(blocksize); + var opad = this._opad = Buffer2.allocUnsafe(blocksize); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + this._hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); + this._hash.update(ipad); + } + inherits2(Hmac2, Base); + Hmac2.prototype._update = function(data) { + this._hash.update(data); + }; + Hmac2.prototype._final = function() { + var h6 = this._hash.digest(); + var hash = this._alg === "rmd160" ? new RIPEMD160() : sha(this._alg); + return hash.update(this._opad).update(h6).digest(); + }; + exports$2w = function createHmac2(alg, key) { + alg = alg.toLowerCase(); + if (alg === "rmd160" || alg === "ripemd160") { + return new Hmac2("rmd160", key); + } + if (alg === "md5") { + return new Legacy(md5, key); + } + return new Hmac2(alg, key); + }; + return exports$2w; +} +var _algorithms$1 = { + "sha224WithRSAEncryption": { + "sign": "rsa", + "hash": "sha224", + "id": "302d300d06096086480165030402040500041c" + }, + "RSA-SHA224": { + "sign": "ecdsa/rsa", + "hash": "sha224", + "id": "302d300d06096086480165030402040500041c" + }, + "sha256WithRSAEncryption": { + "sign": "rsa", + "hash": "sha256", + "id": "3031300d060960864801650304020105000420" + }, + "RSA-SHA256": { + "sign": "ecdsa/rsa", + "hash": "sha256", + "id": "3031300d060960864801650304020105000420" + }, + "sha384WithRSAEncryption": { + "sign": "rsa", + "hash": "sha384", + "id": "3041300d060960864801650304020205000430" + }, + "RSA-SHA384": { + "sign": "ecdsa/rsa", + "hash": "sha384", + "id": "3041300d060960864801650304020205000430" + }, + "sha512WithRSAEncryption": { + "sign": "rsa", + "hash": "sha512", + "id": "3051300d060960864801650304020305000440" + }, + "RSA-SHA512": { + "sign": "ecdsa/rsa", + "hash": "sha512", + "id": "3051300d060960864801650304020305000440" + }, + "RSA-SHA1": { + "sign": "rsa", + "hash": "sha1", + "id": "3021300906052b0e03021a05000414" + }, + "ecdsa-with-SHA1": { + "sign": "ecdsa", + "hash": "sha1", + "id": "" + }, + "sha256": { + "sign": "ecdsa", + "hash": "sha256", + "id": "" + }, + "sha224": { + "sign": "ecdsa", + "hash": "sha224", + "id": "" + }, + "sha384": { + "sign": "ecdsa", + "hash": "sha384", + "id": "" + }, + "sha512": { + "sign": "ecdsa", + "hash": "sha512", + "id": "" + }, + "DSA-SHA": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA-SHA1": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA-WITH-SHA224": { + "sign": "dsa", + "hash": "sha224", + "id": "" + }, + "DSA-SHA224": { + "sign": "dsa", + "hash": "sha224", + "id": "" + }, + "DSA-WITH-SHA256": { + "sign": "dsa", + "hash": "sha256", + "id": "" + }, + "DSA-SHA256": { + "sign": "dsa", + "hash": "sha256", + "id": "" + }, + "DSA-WITH-SHA384": { + "sign": "dsa", + "hash": "sha384", + "id": "" + }, + "DSA-SHA384": { + "sign": "dsa", + "hash": "sha384", + "id": "" + }, + "DSA-WITH-SHA512": { + "sign": "dsa", + "hash": "sha512", + "id": "" + }, + "DSA-SHA512": { + "sign": "dsa", + "hash": "sha512", + "id": "" + }, + "DSA-RIPEMD160": { + "sign": "dsa", + "hash": "rmd160", + "id": "" + }, + "ripemd160WithRSA": { + "sign": "rsa", + "hash": "rmd160", + "id": "3021300906052b2403020105000414" + }, + "RSA-RIPEMD160": { + "sign": "rsa", + "hash": "rmd160", + "id": "3021300906052b2403020105000414" + }, + "md5WithRSAEncryption": { + "sign": "rsa", + "hash": "md5", + "id": "3020300c06082a864886f70d020505000410" + }, + "RSA-MD5": { + "sign": "rsa", + "hash": "md5", + "id": "3020300c06082a864886f70d020505000410" + } +}; +var exports$2v = {}; +var _dewExec$2u = false; +function dew$2u() { + if (_dewExec$2u) + return exports$2v; + _dewExec$2u = true; + exports$2v = _algorithms$1; + return exports$2v; +} +var exports$2u = {}; +var _dewExec$2t = false; +function dew$2t() { + if (_dewExec$2t) + return exports$2u; + _dewExec$2t = true; + var MAX_ALLOC = Math.pow(2, 30) - 1; + exports$2u = function(iterations, keylen) { + if (typeof iterations !== "number") { + throw new TypeError("Iterations not a number"); + } + if (iterations < 0) { + throw new TypeError("Bad iterations"); + } + if (typeof keylen !== "number") { + throw new TypeError("Key length not a number"); + } + if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { + throw new TypeError("Bad key length"); + } + }; + return exports$2u; +} +var exports$2t = {}; +var _dewExec$2s = false; +var _global$J = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2s() { + if (_dewExec$2s) + return exports$2t; + _dewExec$2s = true; + var process$1 = process; + var defaultEncoding; + if (_global$J.process && _global$J.process.browser) { + defaultEncoding = "utf-8"; + } else if (_global$J.process && _global$J.process.version) { + var pVersionMajor = parseInt(process$1.version.split(".")[0].slice(1), 10); + defaultEncoding = pVersionMajor >= 6 ? "utf-8" : "binary"; + } else { + defaultEncoding = "utf-8"; + } + exports$2t = defaultEncoding; + return exports$2t; +} +var exports$2s = {}; +var _dewExec$2r = false; +function dew$2r() { + if (_dewExec$2r) + return exports$2s; + _dewExec$2r = true; + var Buffer2 = dew$2P().Buffer; + exports$2s = function(thing, encoding, name) { + if (Buffer2.isBuffer(thing)) { + return thing; + } else if (typeof thing === "string") { + return Buffer2.from(thing, encoding); + } else if (ArrayBuffer.isView(thing)) { + return Buffer2.from(thing.buffer); + } else { + throw new TypeError(name + " must be a string, a Buffer, a typed array or a DataView"); + } + }; + return exports$2s; +} +var exports$2r = {}; +var _dewExec$2q = false; +var _global$I = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2q() { + if (_dewExec$2q) + return exports$2r; + _dewExec$2q = true; + var md5 = dew$2w(); + var RIPEMD160 = dew$2K(); + var sha = dew$2C(); + var Buffer2 = dew$2P().Buffer; + var checkParameters = dew$2t(); + var defaultEncoding = dew$2s(); + var toBuffer = dew$2r(); + var ZEROS = Buffer2.alloc(128); + var sizes = { + md5: 16, + sha1: 20, + sha224: 28, + sha256: 32, + sha384: 48, + sha512: 64, + rmd160: 20, + ripemd160: 20 + }; + function Hmac2(alg, key, saltLen) { + var hash = getDigest(alg); + var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; + if (key.length > blocksize) { + key = hash(key); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = Buffer2.allocUnsafe(blocksize + sizes[alg]); + var opad = Buffer2.allocUnsafe(blocksize + sizes[alg]); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + var ipad1 = Buffer2.allocUnsafe(blocksize + saltLen + 4); + ipad.copy(ipad1, 0, 0, blocksize); + (this || _global$I).ipad1 = ipad1; + (this || _global$I).ipad2 = ipad; + (this || _global$I).opad = opad; + (this || _global$I).alg = alg; + (this || _global$I).blocksize = blocksize; + (this || _global$I).hash = hash; + (this || _global$I).size = sizes[alg]; + } + Hmac2.prototype.run = function(data, ipad) { + data.copy(ipad, (this || _global$I).blocksize); + var h6 = this.hash(ipad); + h6.copy((this || _global$I).opad, (this || _global$I).blocksize); + return this.hash((this || _global$I).opad); + }; + function getDigest(alg) { + function shaFunc(data) { + return sha(alg).update(data).digest(); + } + function rmd160Func(data) { + return new RIPEMD160().update(data).digest(); + } + if (alg === "rmd160" || alg === "ripemd160") + return rmd160Func; + if (alg === "md5") + return md5; + return shaFunc; + } + function pbkdf22(password, salt, iterations, keylen, digest) { + checkParameters(iterations, keylen); + password = toBuffer(password, defaultEncoding, "Password"); + salt = toBuffer(salt, defaultEncoding, "Salt"); + digest = digest || "sha1"; + var hmac = new Hmac2(digest, password, salt.length); + var DK = Buffer2.allocUnsafe(keylen); + var block1 = Buffer2.allocUnsafe(salt.length + 4); + salt.copy(block1, 0, 0, salt.length); + var destPos = 0; + var hLen = sizes[digest]; + var l6 = Math.ceil(keylen / hLen); + for (var i6 = 1; i6 <= l6; i6++) { + block1.writeUInt32BE(i6, salt.length); + var T5 = hmac.run(block1, hmac.ipad1); + var U4 = T5; + for (var j4 = 1; j4 < iterations; j4++) { + U4 = hmac.run(U4, hmac.ipad2); + for (var k4 = 0; k4 < hLen; k4++) + T5[k4] ^= U4[k4]; + } + T5.copy(DK, destPos); + destPos += hLen; + } + return DK; + } + exports$2r = pbkdf22; + return exports$2r; +} +var exports$2q = {}; +var _dewExec$2p = false; +var _global$H = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2p() { + if (_dewExec$2p) + return exports$2q; + _dewExec$2p = true; + var Buffer2 = dew$2P().Buffer; + var checkParameters = dew$2t(); + var defaultEncoding = dew$2s(); + var sync = dew$2q(); + var toBuffer = dew$2r(); + var ZERO_BUF; + var subtle = _global$H.crypto && _global$H.crypto.subtle; + var toBrowser = { + sha: "SHA-1", + "sha-1": "SHA-1", + sha1: "SHA-1", + sha256: "SHA-256", + "sha-256": "SHA-256", + sha384: "SHA-384", + "sha-384": "SHA-384", + "sha-512": "SHA-512", + sha512: "SHA-512" + }; + var checks = []; + function checkNative(algo) { + if (_global$H.process && !_global$H.process.browser) { + return Promise.resolve(false); + } + if (!subtle || !subtle.importKey || !subtle.deriveBits) { + return Promise.resolve(false); + } + if (checks[algo] !== void 0) { + return checks[algo]; + } + ZERO_BUF = ZERO_BUF || Buffer2.alloc(8); + var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function() { + return true; + }).catch(function() { + return false; + }); + checks[algo] = prom; + return prom; + } + var nextTick; + function getNextTick() { + if (nextTick) { + return nextTick; + } + if (_global$H.process && _global$H.process.nextTick) { + nextTick = _global$H.process.nextTick; + } else if (_global$H.queueMicrotask) { + nextTick = _global$H.queueMicrotask; + } else if (_global$H.setImmediate) { + nextTick = _global$H.setImmediate; + } else { + nextTick = _global$H.setTimeout; + } + return nextTick; + } + function browserPbkdf2(password, salt, iterations, length, algo) { + return subtle.importKey("raw", password, { + name: "PBKDF2" + }, false, ["deriveBits"]).then(function(key) { + return subtle.deriveBits({ + name: "PBKDF2", + salt, + iterations, + hash: { + name: algo + } + }, key, length << 3); + }).then(function(res) { + return Buffer2.from(res); + }); + } + function resolvePromise(promise, callback) { + promise.then(function(out) { + getNextTick()(function() { + callback(null, out); + }); + }, function(e8) { + getNextTick()(function() { + callback(e8); + }); + }); + } + exports$2q = function(password, salt, iterations, keylen, digest, callback) { + if (typeof digest === "function") { + callback = digest; + digest = void 0; + } + digest = digest || "sha1"; + var algo = toBrowser[digest.toLowerCase()]; + if (!algo || typeof _global$H.Promise !== "function") { + getNextTick()(function() { + var out; + try { + out = sync(password, salt, iterations, keylen, digest); + } catch (e8) { + return callback(e8); + } + callback(null, out); + }); + return; + } + checkParameters(iterations, keylen); + password = toBuffer(password, defaultEncoding, "Password"); + salt = toBuffer(salt, defaultEncoding, "Salt"); + if (typeof callback !== "function") + throw new Error("No callback provided to pbkdf2"); + resolvePromise(checkNative(algo).then(function(resp) { + if (resp) + return browserPbkdf2(password, salt, iterations, keylen, algo); + return sync(password, salt, iterations, keylen, digest); + }), callback); + }; + return exports$2q; +} +var exports$2p = {}; +var _dewExec$2o = false; +function dew$2o() { + if (_dewExec$2o) + return exports$2p; + _dewExec$2o = true; + exports$2p.pbkdf2 = dew$2p(); + exports$2p.pbkdf2Sync = dew$2q(); + return exports$2p; +} +var exports$2o = {}; +var _dewExec$2n = false; +function dew$2n() { + if (_dewExec$2n) + return exports$2o; + _dewExec$2n = true; + exports$2o.readUInt32BE = function readUInt32BE(bytes, off) { + var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off]; + return res >>> 0; + }; + exports$2o.writeUInt32BE = function writeUInt32BE(bytes, value, off) { + bytes[0 + off] = value >>> 24; + bytes[1 + off] = value >>> 16 & 255; + bytes[2 + off] = value >>> 8 & 255; + bytes[3 + off] = value & 255; + }; + exports$2o.ip = function ip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 6; i6 >= 0; i6 -= 2) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >>> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inL >>> j4 + i6 & 1; + } + } + for (var i6 = 6; i6 >= 0; i6 -= 2) { + for (var j4 = 1; j4 <= 25; j4 += 8) { + outR <<= 1; + outR |= inR >>> j4 + i6 & 1; + } + for (var j4 = 1; j4 <= 25; j4 += 8) { + outR <<= 1; + outR |= inL >>> j4 + i6 & 1; + } + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$2o.rip = function rip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 0; i6 < 4; i6++) { + for (var j4 = 24; j4 >= 0; j4 -= 8) { + outL <<= 1; + outL |= inR >>> j4 + i6 & 1; + outL <<= 1; + outL |= inL >>> j4 + i6 & 1; + } + } + for (var i6 = 4; i6 < 8; i6++) { + for (var j4 = 24; j4 >= 0; j4 -= 8) { + outR <<= 1; + outR |= inR >>> j4 + i6 & 1; + outR <<= 1; + outR |= inL >>> j4 + i6 & 1; + } + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$2o.pc1 = function pc1(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 7; i6 >= 5; i6--) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inL >> j4 + i6 & 1; + } + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >> j4 + i6 & 1; + } + for (var i6 = 1; i6 <= 3; i6++) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inR >> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inL >> j4 + i6 & 1; + } + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inL >> j4 + i6 & 1; + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$2o.r28shl = function r28shl(num, shift) { + return num << shift & 268435455 | num >>> 28 - shift; + }; + var pc2table = [ + // inL => outL + 14, + 11, + 17, + 4, + 27, + 23, + 25, + 0, + 13, + 22, + 7, + 18, + 5, + 9, + 16, + 24, + 2, + 20, + 12, + 21, + 1, + 8, + 15, + 26, + // inR => outR + 15, + 4, + 25, + 19, + 9, + 1, + 26, + 16, + 5, + 11, + 23, + 8, + 12, + 7, + 17, + 0, + 22, + 3, + 10, + 14, + 6, + 20, + 27, + 24 + ]; + exports$2o.pc2 = function pc2(inL, inR, out, off) { + var outL = 0; + var outR = 0; + var len = pc2table.length >>> 1; + for (var i6 = 0; i6 < len; i6++) { + outL <<= 1; + outL |= inL >>> pc2table[i6] & 1; + } + for (var i6 = len; i6 < pc2table.length; i6++) { + outR <<= 1; + outR |= inR >>> pc2table[i6] & 1; + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$2o.expand = function expand(r6, out, off) { + var outL = 0; + var outR = 0; + outL = (r6 & 1) << 5 | r6 >>> 27; + for (var i6 = 23; i6 >= 15; i6 -= 4) { + outL <<= 6; + outL |= r6 >>> i6 & 63; + } + for (var i6 = 11; i6 >= 3; i6 -= 4) { + outR |= r6 >>> i6 & 63; + outR <<= 6; + } + outR |= (r6 & 31) << 1 | r6 >>> 31; + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + var sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11]; + exports$2o.substitute = function substitute(inL, inR) { + var out = 0; + for (var i6 = 0; i6 < 4; i6++) { + var b4 = inL >>> 18 - i6 * 6 & 63; + var sb = sTable[i6 * 64 + b4]; + out <<= 4; + out |= sb; + } + for (var i6 = 0; i6 < 4; i6++) { + var b4 = inR >>> 18 - i6 * 6 & 63; + var sb = sTable[4 * 64 + i6 * 64 + b4]; + out <<= 4; + out |= sb; + } + return out >>> 0; + }; + var permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7]; + exports$2o.permute = function permute(num) { + var out = 0; + for (var i6 = 0; i6 < permuteTable.length; i6++) { + out <<= 1; + out |= num >>> permuteTable[i6] & 1; + } + return out >>> 0; + }; + exports$2o.padSplit = function padSplit(num, size, group) { + var str = num.toString(2); + while (str.length < size) + str = "0" + str; + var out = []; + for (var i6 = 0; i6 < size; i6 += group) + out.push(str.slice(i6, i6 + group)); + return out.join(" "); + }; + return exports$2o; +} +var exports$2n = {}; +var _dewExec$2m = false; +function dew$2m() { + if (_dewExec$2m) + return exports$2n; + _dewExec$2m = true; + exports$2n = assert; + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + assert.equal = function assertEqual(l6, r6, msg) { + if (l6 != r6) + throw new Error(msg || "Assertion failed: " + l6 + " != " + r6); + }; + return exports$2n; +} +var exports$2m = {}; +var _dewExec$2l = false; +function dew$2l() { + if (_dewExec$2l) + return exports$2m; + _dewExec$2l = true; + var assert = dew$2m(); + function Cipher2(options) { + this.options = options; + this.type = this.options.type; + this.blockSize = 8; + this._init(); + this.buffer = new Array(this.blockSize); + this.bufferOff = 0; + } + exports$2m = Cipher2; + Cipher2.prototype._init = function _init() { + }; + Cipher2.prototype.update = function update(data) { + if (data.length === 0) + return []; + if (this.type === "decrypt") + return this._updateDecrypt(data); + else + return this._updateEncrypt(data); + }; + Cipher2.prototype._buffer = function _buffer(data, off) { + var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); + for (var i6 = 0; i6 < min; i6++) + this.buffer[this.bufferOff + i6] = data[off + i6]; + this.bufferOff += min; + return min; + }; + Cipher2.prototype._flushBuffer = function _flushBuffer(out, off) { + this._update(this.buffer, 0, out, off); + this.bufferOff = 0; + return this.blockSize; + }; + Cipher2.prototype._updateEncrypt = function _updateEncrypt(data) { + var inputOff = 0; + var outputOff = 0; + var count = (this.bufferOff + data.length) / this.blockSize | 0; + var out = new Array(count * this.blockSize); + if (this.bufferOff !== 0) { + inputOff += this._buffer(data, inputOff); + if (this.bufferOff === this.buffer.length) + outputOff += this._flushBuffer(out, outputOff); + } + var max = data.length - (data.length - inputOff) % this.blockSize; + for (; inputOff < max; inputOff += this.blockSize) { + this._update(data, inputOff, out, outputOff); + outputOff += this.blockSize; + } + for (; inputOff < data.length; inputOff++, this.bufferOff++) + this.buffer[this.bufferOff] = data[inputOff]; + return out; + }; + Cipher2.prototype._updateDecrypt = function _updateDecrypt(data) { + var inputOff = 0; + var outputOff = 0; + var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; + var out = new Array(count * this.blockSize); + for (; count > 0; count--) { + inputOff += this._buffer(data, inputOff); + outputOff += this._flushBuffer(out, outputOff); + } + inputOff += this._buffer(data, inputOff); + return out; + }; + Cipher2.prototype.final = function final(buffer2) { + var first; + if (buffer2) + first = this.update(buffer2); + var last; + if (this.type === "encrypt") + last = this._finalEncrypt(); + else + last = this._finalDecrypt(); + if (first) + return first.concat(last); + else + return last; + }; + Cipher2.prototype._pad = function _pad(buffer2, off) { + if (off === 0) + return false; + while (off < buffer2.length) + buffer2[off++] = 0; + return true; + }; + Cipher2.prototype._finalEncrypt = function _finalEncrypt() { + if (!this._pad(this.buffer, this.bufferOff)) + return []; + var out = new Array(this.blockSize); + this._update(this.buffer, 0, out, 0); + return out; + }; + Cipher2.prototype._unpad = function _unpad(buffer2) { + return buffer2; + }; + Cipher2.prototype._finalDecrypt = function _finalDecrypt() { + assert.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt"); + var out = new Array(this.blockSize); + this._flushBuffer(out, 0); + return this._unpad(out); + }; + return exports$2m; +} +var exports$2l = {}; +var _dewExec$2k = false; +function dew$2k() { + if (_dewExec$2k) + return exports$2l; + _dewExec$2k = true; + var assert = dew$2m(); + var inherits2 = dew$f(); + var utils = dew$2n(); + var Cipher2 = dew$2l(); + function DESState() { + this.tmp = new Array(2); + this.keys = null; + } + function DES(options) { + Cipher2.call(this, options); + var state = new DESState(); + this._desState = state; + this.deriveKeys(state, options.key); + } + inherits2(DES, Cipher2); + exports$2l = DES; + DES.create = function create(options) { + return new DES(options); + }; + var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]; + DES.prototype.deriveKeys = function deriveKeys(state, key) { + state.keys = new Array(16 * 2); + assert.equal(key.length, this.blockSize, "Invalid key length"); + var kL = utils.readUInt32BE(key, 0); + var kR = utils.readUInt32BE(key, 4); + utils.pc1(kL, kR, state.tmp, 0); + kL = state.tmp[0]; + kR = state.tmp[1]; + for (var i6 = 0; i6 < state.keys.length; i6 += 2) { + var shift = shiftTable[i6 >>> 1]; + kL = utils.r28shl(kL, shift); + kR = utils.r28shl(kR, shift); + utils.pc2(kL, kR, state.keys, i6); + } + }; + DES.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._desState; + var l6 = utils.readUInt32BE(inp, inOff); + var r6 = utils.readUInt32BE(inp, inOff + 4); + utils.ip(l6, r6, state.tmp, 0); + l6 = state.tmp[0]; + r6 = state.tmp[1]; + if (this.type === "encrypt") + this._encrypt(state, l6, r6, state.tmp, 0); + else + this._decrypt(state, l6, r6, state.tmp, 0); + l6 = state.tmp[0]; + r6 = state.tmp[1]; + utils.writeUInt32BE(out, l6, outOff); + utils.writeUInt32BE(out, r6, outOff + 4); + }; + DES.prototype._pad = function _pad(buffer2, off) { + var value = buffer2.length - off; + for (var i6 = off; i6 < buffer2.length; i6++) + buffer2[i6] = value; + return true; + }; + DES.prototype._unpad = function _unpad(buffer2) { + var pad = buffer2[buffer2.length - 1]; + for (var i6 = buffer2.length - pad; i6 < buffer2.length; i6++) + assert.equal(buffer2[i6], pad); + return buffer2.slice(0, buffer2.length - pad); + }; + DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { + var l6 = lStart; + var r6 = rStart; + for (var i6 = 0; i6 < state.keys.length; i6 += 2) { + var keyL = state.keys[i6]; + var keyR = state.keys[i6 + 1]; + utils.expand(r6, state.tmp, 0); + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s6 = utils.substitute(keyL, keyR); + var f7 = utils.permute(s6); + var t6 = r6; + r6 = (l6 ^ f7) >>> 0; + l6 = t6; + } + utils.rip(r6, l6, out, off); + }; + DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { + var l6 = rStart; + var r6 = lStart; + for (var i6 = state.keys.length - 2; i6 >= 0; i6 -= 2) { + var keyL = state.keys[i6]; + var keyR = state.keys[i6 + 1]; + utils.expand(l6, state.tmp, 0); + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s6 = utils.substitute(keyL, keyR); + var f7 = utils.permute(s6); + var t6 = l6; + l6 = (r6 ^ f7) >>> 0; + r6 = t6; + } + utils.rip(l6, r6, out, off); + }; + return exports$2l; +} +var exports$2k = {}; +var _dewExec$2j = false; +function dew$2j() { + if (_dewExec$2j) + return exports$2k; + _dewExec$2j = true; + var assert = dew$2m(); + var inherits2 = dew$f(); + var proto = {}; + function CBCState(iv) { + assert.equal(iv.length, 8, "Invalid IV length"); + this.iv = new Array(8); + for (var i6 = 0; i6 < this.iv.length; i6++) + this.iv[i6] = iv[i6]; + } + function instantiate(Base) { + function CBC(options) { + Base.call(this, options); + this._cbcInit(); + } + inherits2(CBC, Base); + var keys = Object.keys(proto); + for (var i6 = 0; i6 < keys.length; i6++) { + var key = keys[i6]; + CBC.prototype[key] = proto[key]; + } + CBC.create = function create(options) { + return new CBC(options); + }; + return CBC; + } + exports$2k.instantiate = instantiate; + proto._cbcInit = function _cbcInit() { + var state = new CBCState(this.options.iv); + this._cbcState = state; + }; + proto._update = function _update(inp, inOff, out, outOff) { + var state = this._cbcState; + var superProto = this.constructor.super_.prototype; + var iv = state.iv; + if (this.type === "encrypt") { + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] ^= inp[inOff + i6]; + superProto._update.call(this, iv, 0, out, outOff); + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] = out[outOff + i6]; + } else { + superProto._update.call(this, inp, inOff, out, outOff); + for (var i6 = 0; i6 < this.blockSize; i6++) + out[outOff + i6] ^= iv[i6]; + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] = inp[inOff + i6]; + } + }; + return exports$2k; +} +var exports$2j = {}; +var _dewExec$2i = false; +function dew$2i() { + if (_dewExec$2i) + return exports$2j; + _dewExec$2i = true; + var assert = dew$2m(); + var inherits2 = dew$f(); + var Cipher2 = dew$2l(); + var DES = dew$2k(); + function EDEState(type, key) { + assert.equal(key.length, 24, "Invalid key length"); + var k1 = key.slice(0, 8); + var k22 = key.slice(8, 16); + var k32 = key.slice(16, 24); + if (type === "encrypt") { + this.ciphers = [DES.create({ + type: "encrypt", + key: k1 + }), DES.create({ + type: "decrypt", + key: k22 + }), DES.create({ + type: "encrypt", + key: k32 + })]; + } else { + this.ciphers = [DES.create({ + type: "decrypt", + key: k32 + }), DES.create({ + type: "encrypt", + key: k22 + }), DES.create({ + type: "decrypt", + key: k1 + })]; + } + } + function EDE(options) { + Cipher2.call(this, options); + var state = new EDEState(this.type, this.options.key); + this._edeState = state; + } + inherits2(EDE, Cipher2); + exports$2j = EDE; + EDE.create = function create(options) { + return new EDE(options); + }; + EDE.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._edeState; + state.ciphers[0]._update(inp, inOff, out, outOff); + state.ciphers[1]._update(out, outOff, out, outOff); + state.ciphers[2]._update(out, outOff, out, outOff); + }; + EDE.prototype._pad = DES.prototype._pad; + EDE.prototype._unpad = DES.prototype._unpad; + return exports$2j; +} +var exports$2i = {}; +var _dewExec$2h = false; +function dew$2h() { + if (_dewExec$2h) + return exports$2i; + _dewExec$2h = true; + exports$2i.utils = dew$2n(); + exports$2i.Cipher = dew$2l(); + exports$2i.DES = dew$2k(); + exports$2i.CBC = dew$2j(); + exports$2i.EDE = dew$2i(); + return exports$2i; +} +var exports$2h = {}; +var _dewExec$2g = false; +var _global$G = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$2g() { + if (_dewExec$2g) + return exports$2h; + _dewExec$2g = true; + var CipherBase = dew$2z(); + var des = dew$2h(); + var inherits2 = dew$f(); + var Buffer2 = dew$2P().Buffer; + var modes = { + "des-ede3-cbc": des.CBC.instantiate(des.EDE), + "des-ede3": des.EDE, + "des-ede-cbc": des.CBC.instantiate(des.EDE), + "des-ede": des.EDE, + "des-cbc": des.CBC.instantiate(des.DES), + "des-ecb": des.DES + }; + modes.des = modes["des-cbc"]; + modes.des3 = modes["des-ede3-cbc"]; + exports$2h = DES; + inherits2(DES, CipherBase); + function DES(opts) { + CipherBase.call(this || _global$G); + var modeName = opts.mode.toLowerCase(); + var mode = modes[modeName]; + var type; + if (opts.decrypt) { + type = "decrypt"; + } else { + type = "encrypt"; + } + var key = opts.key; + if (!Buffer2.isBuffer(key)) { + key = Buffer2.from(key); + } + if (modeName === "des-ede" || modeName === "des-ede-cbc") { + key = Buffer2.concat([key, key.slice(0, 8)]); + } + var iv = opts.iv; + if (!Buffer2.isBuffer(iv)) { + iv = Buffer2.from(iv); + } + (this || _global$G)._des = mode.create({ + key, + iv, + type + }); + } + DES.prototype._update = function(data) { + return Buffer2.from((this || _global$G)._des.update(data)); + }; + DES.prototype._final = function() { + return Buffer2.from((this || _global$G)._des.final()); + }; + return exports$2h; +} +var exports$2g = {}; +var _dewExec$2f = false; +function dew$2f() { + if (_dewExec$2f) + return exports$2g; + _dewExec$2f = true; + exports$2g.encrypt = function(self2, block) { + return self2._cipher.encryptBlock(block); + }; + exports$2g.decrypt = function(self2, block) { + return self2._cipher.decryptBlock(block); + }; + return exports$2g; +} +var exports$2f = {}; +var _dewExec$2e = false; +function dew$2e() { + if (_dewExec$2e) + return exports$2f; + _dewExec$2e = true; + var Buffer2 = buffer.Buffer; + exports$2f = function xor(a6, b4) { + var length = Math.min(a6.length, b4.length); + var buffer2 = new Buffer2(length); + for (var i6 = 0; i6 < length; ++i6) { + buffer2[i6] = a6[i6] ^ b4[i6]; + } + return buffer2; + }; + return exports$2f; +} +var exports$2e = {}; +var _dewExec$2d = false; +function dew$2d() { + if (_dewExec$2d) + return exports$2e; + _dewExec$2d = true; + var xor = dew$2e(); + exports$2e.encrypt = function(self2, block) { + var data = xor(block, self2._prev); + self2._prev = self2._cipher.encryptBlock(data); + return self2._prev; + }; + exports$2e.decrypt = function(self2, block) { + var pad = self2._prev; + self2._prev = block; + var out = self2._cipher.decryptBlock(block); + return xor(out, pad); + }; + return exports$2e; +} +var exports$2d = {}; +var _dewExec$2c = false; +function dew$2c() { + if (_dewExec$2c) + return exports$2d; + _dewExec$2c = true; + var Buffer2 = dew$2P().Buffer; + var xor = dew$2e(); + function encryptStart(self2, data, decrypt) { + var len = data.length; + var out = xor(data, self2._cache); + self2._cache = self2._cache.slice(len); + self2._prev = Buffer2.concat([self2._prev, decrypt ? data : out]); + return out; + } + exports$2d.encrypt = function(self2, data, decrypt) { + var out = Buffer2.allocUnsafe(0); + var len; + while (data.length) { + if (self2._cache.length === 0) { + self2._cache = self2._cipher.encryptBlock(self2._prev); + self2._prev = Buffer2.allocUnsafe(0); + } + if (self2._cache.length <= data.length) { + len = self2._cache.length; + out = Buffer2.concat([out, encryptStart(self2, data.slice(0, len), decrypt)]); + data = data.slice(len); + } else { + out = Buffer2.concat([out, encryptStart(self2, data, decrypt)]); + break; + } + } + return out; + }; + return exports$2d; +} +var exports$2c = {}; +var _dewExec$2b = false; +function dew$2b() { + if (_dewExec$2b) + return exports$2c; + _dewExec$2b = true; + var Buffer2 = dew$2P().Buffer; + function encryptByte(self2, byteParam, decrypt) { + var pad = self2._cipher.encryptBlock(self2._prev); + var out = pad[0] ^ byteParam; + self2._prev = Buffer2.concat([self2._prev.slice(1), Buffer2.from([decrypt ? byteParam : out])]); + return out; + } + exports$2c.encrypt = function(self2, chunk, decrypt) { + var len = chunk.length; + var out = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + out[i6] = encryptByte(self2, chunk[i6], decrypt); + } + return out; + }; + return exports$2c; +} +var exports$2b = {}; +var _dewExec$2a = false; +function dew$2a() { + if (_dewExec$2a) + return exports$2b; + _dewExec$2a = true; + var Buffer2 = dew$2P().Buffer; + function encryptByte(self2, byteParam, decrypt) { + var pad; + var i6 = -1; + var len = 8; + var out = 0; + var bit, value; + while (++i6 < len) { + pad = self2._cipher.encryptBlock(self2._prev); + bit = byteParam & 1 << 7 - i6 ? 128 : 0; + value = pad[0] ^ bit; + out += (value & 128) >> i6 % 8; + self2._prev = shiftIn(self2._prev, decrypt ? bit : value); + } + return out; + } + function shiftIn(buffer2, value) { + var len = buffer2.length; + var i6 = -1; + var out = Buffer2.allocUnsafe(buffer2.length); + buffer2 = Buffer2.concat([buffer2, Buffer2.from([value])]); + while (++i6 < len) { + out[i6] = buffer2[i6] << 1 | buffer2[i6 + 1] >> 7; + } + return out; + } + exports$2b.encrypt = function(self2, chunk, decrypt) { + var len = chunk.length; + var out = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + out[i6] = encryptByte(self2, chunk[i6], decrypt); + } + return out; + }; + return exports$2b; +} +var exports$2a = {}; +var _dewExec$29 = false; +function dew$29() { + if (_dewExec$29) + return exports$2a; + _dewExec$29 = true; + var Buffer2 = buffer.Buffer; + var xor = dew$2e(); + function getBlock(self2) { + self2._prev = self2._cipher.encryptBlock(self2._prev); + return self2._prev; + } + exports$2a.encrypt = function(self2, chunk) { + while (self2._cache.length < chunk.length) { + self2._cache = Buffer2.concat([self2._cache, getBlock(self2)]); + } + var pad = self2._cache.slice(0, chunk.length); + self2._cache = self2._cache.slice(chunk.length); + return xor(chunk, pad); + }; + return exports$2a; +} +var exports$29 = {}; +var _dewExec$28 = false; +function dew$28() { + if (_dewExec$28) + return exports$29; + _dewExec$28 = true; + function incr32(iv) { + var len = iv.length; + var item; + while (len--) { + item = iv.readUInt8(len); + if (item === 255) { + iv.writeUInt8(0, len); + } else { + item++; + iv.writeUInt8(item, len); + break; + } + } + } + exports$29 = incr32; + return exports$29; +} +var exports$28 = {}; +var _dewExec$27 = false; +function dew$27() { + if (_dewExec$27) + return exports$28; + _dewExec$27 = true; + var xor = dew$2e(); + var Buffer2 = dew$2P().Buffer; + var incr32 = dew$28(); + function getBlock(self2) { + var out = self2._cipher.encryptBlockRaw(self2._prev); + incr32(self2._prev); + return out; + } + var blockSize = 16; + exports$28.encrypt = function(self2, chunk) { + var chunkNum = Math.ceil(chunk.length / blockSize); + var start = self2._cache.length; + self2._cache = Buffer2.concat([self2._cache, Buffer2.allocUnsafe(chunkNum * blockSize)]); + for (var i6 = 0; i6 < chunkNum; i6++) { + var out = getBlock(self2); + var offset = start + i6 * blockSize; + self2._cache.writeUInt32BE(out[0], offset + 0); + self2._cache.writeUInt32BE(out[1], offset + 4); + self2._cache.writeUInt32BE(out[2], offset + 8); + self2._cache.writeUInt32BE(out[3], offset + 12); + } + var pad = self2._cache.slice(0, chunk.length); + self2._cache = self2._cache.slice(chunk.length); + return xor(chunk, pad); + }; + return exports$28; +} +var _list$1 = { + "aes-128-ecb": { + "cipher": "AES", + "key": 128, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-192-ecb": { + "cipher": "AES", + "key": 192, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-256-ecb": { + "cipher": "AES", + "key": 256, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-128-cbc": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-192-cbc": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-256-cbc": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes128": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes192": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes256": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-128-cfb": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-192-cfb": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-256-cfb": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-128-cfb8": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-192-cfb8": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-256-cfb8": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-128-cfb1": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-192-cfb1": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-256-cfb1": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-128-ofb": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-192-ofb": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-256-ofb": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-128-ctr": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-192-ctr": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-256-ctr": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-128-gcm": { + "cipher": "AES", + "key": 128, + "iv": 12, + "mode": "GCM", + "type": "auth" + }, + "aes-192-gcm": { + "cipher": "AES", + "key": 192, + "iv": 12, + "mode": "GCM", + "type": "auth" + }, + "aes-256-gcm": { + "cipher": "AES", + "key": 256, + "iv": 12, + "mode": "GCM", + "type": "auth" + } +}; +var exports$27 = {}; +var _dewExec$26 = false; +function dew$26() { + if (_dewExec$26) + return exports$27; + _dewExec$26 = true; + var modeModules = { + ECB: dew$2f(), + CBC: dew$2d(), + CFB: dew$2c(), + CFB8: dew$2b(), + CFB1: dew$2a(), + OFB: dew$29(), + CTR: dew$27(), + GCM: dew$27() + }; + var modes = _list$1; + for (var key in modes) { + modes[key].module = modeModules[modes[key].mode]; + } + exports$27 = modes; + return exports$27; +} +var exports$26 = {}; +var _dewExec$25 = false; +var _global$F = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$25() { + if (_dewExec$25) + return exports$26; + _dewExec$25 = true; + var Buffer2 = dew$2P().Buffer; + function asUInt32Array(buf) { + if (!Buffer2.isBuffer(buf)) + buf = Buffer2.from(buf); + var len = buf.length / 4 | 0; + var out = new Array(len); + for (var i6 = 0; i6 < len; i6++) { + out[i6] = buf.readUInt32BE(i6 * 4); + } + return out; + } + function scrubVec(v5) { + for (var i6 = 0; i6 < v5.length; v5++) { + v5[i6] = 0; + } + } + function cryptBlock(M4, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0]; + var SUB_MIX1 = SUB_MIX[1]; + var SUB_MIX2 = SUB_MIX[2]; + var SUB_MIX3 = SUB_MIX[3]; + var s0 = M4[0] ^ keySchedule[0]; + var s1 = M4[1] ^ keySchedule[1]; + var s22 = M4[2] ^ keySchedule[2]; + var s32 = M4[3] ^ keySchedule[3]; + var t0, t1, t22, t32; + var ksRow = 4; + for (var round = 1; round < nRounds; round++) { + t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 255] ^ SUB_MIX2[s22 >>> 8 & 255] ^ SUB_MIX3[s32 & 255] ^ keySchedule[ksRow++]; + t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s22 >>> 16 & 255] ^ SUB_MIX2[s32 >>> 8 & 255] ^ SUB_MIX3[s0 & 255] ^ keySchedule[ksRow++]; + t22 = SUB_MIX0[s22 >>> 24] ^ SUB_MIX1[s32 >>> 16 & 255] ^ SUB_MIX2[s0 >>> 8 & 255] ^ SUB_MIX3[s1 & 255] ^ keySchedule[ksRow++]; + t32 = SUB_MIX0[s32 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 255] ^ SUB_MIX2[s1 >>> 8 & 255] ^ SUB_MIX3[s22 & 255] ^ keySchedule[ksRow++]; + s0 = t0; + s1 = t1; + s22 = t22; + s32 = t32; + } + t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 255] << 16 | SBOX[s22 >>> 8 & 255] << 8 | SBOX[s32 & 255]) ^ keySchedule[ksRow++]; + t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s22 >>> 16 & 255] << 16 | SBOX[s32 >>> 8 & 255] << 8 | SBOX[s0 & 255]) ^ keySchedule[ksRow++]; + t22 = (SBOX[s22 >>> 24] << 24 | SBOX[s32 >>> 16 & 255] << 16 | SBOX[s0 >>> 8 & 255] << 8 | SBOX[s1 & 255]) ^ keySchedule[ksRow++]; + t32 = (SBOX[s32 >>> 24] << 24 | SBOX[s0 >>> 16 & 255] << 16 | SBOX[s1 >>> 8 & 255] << 8 | SBOX[s22 & 255]) ^ keySchedule[ksRow++]; + t0 = t0 >>> 0; + t1 = t1 >>> 0; + t22 = t22 >>> 0; + t32 = t32 >>> 0; + return [t0, t1, t22, t32]; + } + var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; + var G3 = function() { + var d5 = new Array(256); + for (var j4 = 0; j4 < 256; j4++) { + if (j4 < 128) { + d5[j4] = j4 << 1; + } else { + d5[j4] = j4 << 1 ^ 283; + } + } + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX = [[], [], [], []]; + var INV_SUB_MIX = [[], [], [], []]; + var x4 = 0; + var xi = 0; + for (var i6 = 0; i6 < 256; ++i6) { + var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4; + sx = sx >>> 8 ^ sx & 255 ^ 99; + SBOX[x4] = sx; + INV_SBOX[sx] = x4; + var x22 = d5[x4]; + var x42 = d5[x22]; + var x8 = d5[x42]; + var t6 = d5[sx] * 257 ^ sx * 16843008; + SUB_MIX[0][x4] = t6 << 24 | t6 >>> 8; + SUB_MIX[1][x4] = t6 << 16 | t6 >>> 16; + SUB_MIX[2][x4] = t6 << 8 | t6 >>> 24; + SUB_MIX[3][x4] = t6; + t6 = x8 * 16843009 ^ x42 * 65537 ^ x22 * 257 ^ x4 * 16843008; + INV_SUB_MIX[0][sx] = t6 << 24 | t6 >>> 8; + INV_SUB_MIX[1][sx] = t6 << 16 | t6 >>> 16; + INV_SUB_MIX[2][sx] = t6 << 8 | t6 >>> 24; + INV_SUB_MIX[3][sx] = t6; + if (x4 === 0) { + x4 = xi = 1; + } else { + x4 = x22 ^ d5[d5[d5[x8 ^ x22]]]; + xi ^= d5[d5[xi]]; + } + } + return { + SBOX, + INV_SBOX, + SUB_MIX, + INV_SUB_MIX + }; + }(); + function AES(key) { + (this || _global$F)._key = asUInt32Array(key); + this._reset(); + } + AES.blockSize = 4 * 4; + AES.keySize = 256 / 8; + AES.prototype.blockSize = AES.blockSize; + AES.prototype.keySize = AES.keySize; + AES.prototype._reset = function() { + var keyWords = (this || _global$F)._key; + var keySize = keyWords.length; + var nRounds = keySize + 6; + var ksRows = (nRounds + 1) * 4; + var keySchedule = []; + for (var k4 = 0; k4 < keySize; k4++) { + keySchedule[k4] = keyWords[k4]; + } + for (k4 = keySize; k4 < ksRows; k4++) { + var t6 = keySchedule[k4 - 1]; + if (k4 % keySize === 0) { + t6 = t6 << 8 | t6 >>> 24; + t6 = G3.SBOX[t6 >>> 24] << 24 | G3.SBOX[t6 >>> 16 & 255] << 16 | G3.SBOX[t6 >>> 8 & 255] << 8 | G3.SBOX[t6 & 255]; + t6 ^= RCON[k4 / keySize | 0] << 24; + } else if (keySize > 6 && k4 % keySize === 4) { + t6 = G3.SBOX[t6 >>> 24] << 24 | G3.SBOX[t6 >>> 16 & 255] << 16 | G3.SBOX[t6 >>> 8 & 255] << 8 | G3.SBOX[t6 & 255]; + } + keySchedule[k4] = keySchedule[k4 - keySize] ^ t6; + } + var invKeySchedule = []; + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik; + var tt2 = keySchedule[ksR - (ik % 4 ? 0 : 4)]; + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt2; + } else { + invKeySchedule[ik] = G3.INV_SUB_MIX[0][G3.SBOX[tt2 >>> 24]] ^ G3.INV_SUB_MIX[1][G3.SBOX[tt2 >>> 16 & 255]] ^ G3.INV_SUB_MIX[2][G3.SBOX[tt2 >>> 8 & 255]] ^ G3.INV_SUB_MIX[3][G3.SBOX[tt2 & 255]]; + } + } + (this || _global$F)._nRounds = nRounds; + (this || _global$F)._keySchedule = keySchedule; + (this || _global$F)._invKeySchedule = invKeySchedule; + }; + AES.prototype.encryptBlockRaw = function(M4) { + M4 = asUInt32Array(M4); + return cryptBlock(M4, (this || _global$F)._keySchedule, G3.SUB_MIX, G3.SBOX, (this || _global$F)._nRounds); + }; + AES.prototype.encryptBlock = function(M4) { + var out = this.encryptBlockRaw(M4); + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0], 0); + buf.writeUInt32BE(out[1], 4); + buf.writeUInt32BE(out[2], 8); + buf.writeUInt32BE(out[3], 12); + return buf; + }; + AES.prototype.decryptBlock = function(M4) { + M4 = asUInt32Array(M4); + var m1 = M4[1]; + M4[1] = M4[3]; + M4[3] = m1; + var out = cryptBlock(M4, (this || _global$F)._invKeySchedule, G3.INV_SUB_MIX, G3.INV_SBOX, (this || _global$F)._nRounds); + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0], 0); + buf.writeUInt32BE(out[3], 4); + buf.writeUInt32BE(out[2], 8); + buf.writeUInt32BE(out[1], 12); + return buf; + }; + AES.prototype.scrub = function() { + scrubVec((this || _global$F)._keySchedule); + scrubVec((this || _global$F)._invKeySchedule); + scrubVec((this || _global$F)._key); + }; + exports$26.AES = AES; + return exports$26; +} +var exports$25 = {}; +var _dewExec$24 = false; +var _global$E = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$24() { + if (_dewExec$24) + return exports$25; + _dewExec$24 = true; + var Buffer2 = dew$2P().Buffer; + var ZEROES = Buffer2.alloc(16, 0); + function toArray(buf) { + return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)]; + } + function fromArray(out) { + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0] >>> 0, 0); + buf.writeUInt32BE(out[1] >>> 0, 4); + buf.writeUInt32BE(out[2] >>> 0, 8); + buf.writeUInt32BE(out[3] >>> 0, 12); + return buf; + } + function GHASH(key) { + (this || _global$E).h = key; + (this || _global$E).state = Buffer2.alloc(16, 0); + (this || _global$E).cache = Buffer2.allocUnsafe(0); + } + GHASH.prototype.ghash = function(block) { + var i6 = -1; + while (++i6 < block.length) { + (this || _global$E).state[i6] ^= block[i6]; + } + this._multiply(); + }; + GHASH.prototype._multiply = function() { + var Vi = toArray((this || _global$E).h); + var Zi = [0, 0, 0, 0]; + var j4, xi, lsbVi; + var i6 = -1; + while (++i6 < 128) { + xi = ((this || _global$E).state[~~(i6 / 8)] & 1 << 7 - i6 % 8) !== 0; + if (xi) { + Zi[0] ^= Vi[0]; + Zi[1] ^= Vi[1]; + Zi[2] ^= Vi[2]; + Zi[3] ^= Vi[3]; + } + lsbVi = (Vi[3] & 1) !== 0; + for (j4 = 3; j4 > 0; j4--) { + Vi[j4] = Vi[j4] >>> 1 | (Vi[j4 - 1] & 1) << 31; + } + Vi[0] = Vi[0] >>> 1; + if (lsbVi) { + Vi[0] = Vi[0] ^ 225 << 24; + } + } + (this || _global$E).state = fromArray(Zi); + }; + GHASH.prototype.update = function(buf) { + (this || _global$E).cache = Buffer2.concat([(this || _global$E).cache, buf]); + var chunk; + while ((this || _global$E).cache.length >= 16) { + chunk = (this || _global$E).cache.slice(0, 16); + (this || _global$E).cache = (this || _global$E).cache.slice(16); + this.ghash(chunk); + } + }; + GHASH.prototype.final = function(abl, bl) { + if ((this || _global$E).cache.length) { + this.ghash(Buffer2.concat([(this || _global$E).cache, ZEROES], 16)); + } + this.ghash(fromArray([0, abl, 0, bl])); + return (this || _global$E).state; + }; + exports$25 = GHASH; + return exports$25; +} +var exports$24 = {}; +var _dewExec$23 = false; +var _global$D = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$23() { + if (_dewExec$23) + return exports$24; + _dewExec$23 = true; + var aes = dew$25(); + var Buffer2 = dew$2P().Buffer; + var Transform = dew$2z(); + var inherits2 = dew$f(); + var GHASH = dew$24(); + var xor = dew$2e(); + var incr32 = dew$28(); + function xorTest(a6, b4) { + var out = 0; + if (a6.length !== b4.length) + out++; + var len = Math.min(a6.length, b4.length); + for (var i6 = 0; i6 < len; ++i6) { + out += a6[i6] ^ b4[i6]; + } + return out; + } + function calcIv(self2, iv, ck) { + if (iv.length === 12) { + self2._finID = Buffer2.concat([iv, Buffer2.from([0, 0, 0, 1])]); + return Buffer2.concat([iv, Buffer2.from([0, 0, 0, 2])]); + } + var ghash = new GHASH(ck); + var len = iv.length; + var toPad = len % 16; + ghash.update(iv); + if (toPad) { + toPad = 16 - toPad; + ghash.update(Buffer2.alloc(toPad, 0)); + } + ghash.update(Buffer2.alloc(8, 0)); + var ivBits = len * 8; + var tail = Buffer2.alloc(8); + tail.writeUIntBE(ivBits, 0, 8); + ghash.update(tail); + self2._finID = ghash.state; + var out = Buffer2.from(self2._finID); + incr32(out); + return out; + } + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this || _global$D); + var h6 = Buffer2.alloc(4, 0); + (this || _global$D)._cipher = new aes.AES(key); + var ck = (this || _global$D)._cipher.encryptBlock(h6); + (this || _global$D)._ghash = new GHASH(ck); + iv = calcIv(this || _global$D, iv, ck); + (this || _global$D)._prev = Buffer2.from(iv); + (this || _global$D)._cache = Buffer2.allocUnsafe(0); + (this || _global$D)._secCache = Buffer2.allocUnsafe(0); + (this || _global$D)._decrypt = decrypt; + (this || _global$D)._alen = 0; + (this || _global$D)._len = 0; + (this || _global$D)._mode = mode; + (this || _global$D)._authTag = null; + (this || _global$D)._called = false; + } + inherits2(StreamCipher, Transform); + StreamCipher.prototype._update = function(chunk) { + if (!(this || _global$D)._called && (this || _global$D)._alen) { + var rump = 16 - (this || _global$D)._alen % 16; + if (rump < 16) { + rump = Buffer2.alloc(rump, 0); + (this || _global$D)._ghash.update(rump); + } + } + (this || _global$D)._called = true; + var out = (this || _global$D)._mode.encrypt(this || _global$D, chunk); + if ((this || _global$D)._decrypt) { + (this || _global$D)._ghash.update(chunk); + } else { + (this || _global$D)._ghash.update(out); + } + (this || _global$D)._len += chunk.length; + return out; + }; + StreamCipher.prototype._final = function() { + if ((this || _global$D)._decrypt && !(this || _global$D)._authTag) + throw new Error("Unsupported state or unable to authenticate data"); + var tag = xor((this || _global$D)._ghash.final((this || _global$D)._alen * 8, (this || _global$D)._len * 8), (this || _global$D)._cipher.encryptBlock((this || _global$D)._finID)); + if ((this || _global$D)._decrypt && xorTest(tag, (this || _global$D)._authTag)) + throw new Error("Unsupported state or unable to authenticate data"); + (this || _global$D)._authTag = tag; + (this || _global$D)._cipher.scrub(); + }; + StreamCipher.prototype.getAuthTag = function getAuthTag() { + if ((this || _global$D)._decrypt || !Buffer2.isBuffer((this || _global$D)._authTag)) + throw new Error("Attempting to get auth tag in unsupported state"); + return (this || _global$D)._authTag; + }; + StreamCipher.prototype.setAuthTag = function setAuthTag(tag) { + if (!(this || _global$D)._decrypt) + throw new Error("Attempting to set auth tag in unsupported state"); + (this || _global$D)._authTag = tag; + }; + StreamCipher.prototype.setAAD = function setAAD(buf) { + if ((this || _global$D)._called) + throw new Error("Attempting to set AAD in unsupported state"); + (this || _global$D)._ghash.update(buf); + (this || _global$D)._alen += buf.length; + }; + exports$24 = StreamCipher; + return exports$24; +} +var exports$23 = {}; +var _dewExec$22 = false; +var _global$C = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$22() { + if (_dewExec$22) + return exports$23; + _dewExec$22 = true; + var aes = dew$25(); + var Buffer2 = dew$2P().Buffer; + var Transform = dew$2z(); + var inherits2 = dew$f(); + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this || _global$C); + (this || _global$C)._cipher = new aes.AES(key); + (this || _global$C)._prev = Buffer2.from(iv); + (this || _global$C)._cache = Buffer2.allocUnsafe(0); + (this || _global$C)._secCache = Buffer2.allocUnsafe(0); + (this || _global$C)._decrypt = decrypt; + (this || _global$C)._mode = mode; + } + inherits2(StreamCipher, Transform); + StreamCipher.prototype._update = function(chunk) { + return (this || _global$C)._mode.encrypt(this || _global$C, chunk, (this || _global$C)._decrypt); + }; + StreamCipher.prototype._final = function() { + (this || _global$C)._cipher.scrub(); + }; + exports$23 = StreamCipher; + return exports$23; +} +var exports$22 = {}; +var _dewExec$21 = false; +function dew$21() { + if (_dewExec$21) + return exports$22; + _dewExec$21 = true; + var Buffer2 = dew$2P().Buffer; + var MD5 = dew$2L(); + function EVP_BytesToKey(password, salt, keyBits, ivLen) { + if (!Buffer2.isBuffer(password)) + password = Buffer2.from(password, "binary"); + if (salt) { + if (!Buffer2.isBuffer(salt)) + salt = Buffer2.from(salt, "binary"); + if (salt.length !== 8) + throw new RangeError("salt should be Buffer with 8 byte length"); + } + var keyLen = keyBits / 8; + var key = Buffer2.alloc(keyLen); + var iv = Buffer2.alloc(ivLen || 0); + var tmp = Buffer2.alloc(0); + while (keyLen > 0 || ivLen > 0) { + var hash = new MD5(); + hash.update(tmp); + hash.update(password); + if (salt) + hash.update(salt); + tmp = hash.digest(); + var used = 0; + if (keyLen > 0) { + var keyStart = key.length - keyLen; + used = Math.min(keyLen, tmp.length); + tmp.copy(key, keyStart, 0, used); + keyLen -= used; + } + if (used < tmp.length && ivLen > 0) { + var ivStart = iv.length - ivLen; + var length = Math.min(ivLen, tmp.length - used); + tmp.copy(iv, ivStart, used, used + length); + ivLen -= length; + } + } + tmp.fill(0); + return { + key, + iv + }; + } + exports$22 = EVP_BytesToKey; + return exports$22; +} +var exports$21 = {}; +var _dewExec$20 = false; +var _global$B = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$20() { + if (_dewExec$20) + return exports$21; + _dewExec$20 = true; + var MODES = dew$26(); + var AuthCipher = dew$23(); + var Buffer2 = dew$2P().Buffer; + var StreamCipher = dew$22(); + var Transform = dew$2z(); + var aes = dew$25(); + var ebtk = dew$21(); + var inherits2 = dew$f(); + function Cipher2(mode, key, iv) { + Transform.call(this || _global$B); + (this || _global$B)._cache = new Splitter(); + (this || _global$B)._cipher = new aes.AES(key); + (this || _global$B)._prev = Buffer2.from(iv); + (this || _global$B)._mode = mode; + (this || _global$B)._autopadding = true; + } + inherits2(Cipher2, Transform); + Cipher2.prototype._update = function(data) { + (this || _global$B)._cache.add(data); + var chunk; + var thing; + var out = []; + while (chunk = (this || _global$B)._cache.get()) { + thing = (this || _global$B)._mode.encrypt(this || _global$B, chunk); + out.push(thing); + } + return Buffer2.concat(out); + }; + var PADDING = Buffer2.alloc(16, 16); + Cipher2.prototype._final = function() { + var chunk = (this || _global$B)._cache.flush(); + if ((this || _global$B)._autopadding) { + chunk = (this || _global$B)._mode.encrypt(this || _global$B, chunk); + (this || _global$B)._cipher.scrub(); + return chunk; + } + if (!chunk.equals(PADDING)) { + (this || _global$B)._cipher.scrub(); + throw new Error("data not multiple of block length"); + } + }; + Cipher2.prototype.setAutoPadding = function(setTo) { + (this || _global$B)._autopadding = !!setTo; + return this || _global$B; + }; + function Splitter() { + (this || _global$B).cache = Buffer2.allocUnsafe(0); + } + Splitter.prototype.add = function(data) { + (this || _global$B).cache = Buffer2.concat([(this || _global$B).cache, data]); + }; + Splitter.prototype.get = function() { + if ((this || _global$B).cache.length > 15) { + var out = (this || _global$B).cache.slice(0, 16); + (this || _global$B).cache = (this || _global$B).cache.slice(16); + return out; + } + return null; + }; + Splitter.prototype.flush = function() { + var len = 16 - (this || _global$B).cache.length; + var padBuff = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + padBuff.writeUInt8(len, i6); + } + return Buffer2.concat([(this || _global$B).cache, padBuff]); + }; + function createCipheriv2(suite, password, iv) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + if (typeof password === "string") + password = Buffer2.from(password); + if (password.length !== config.key / 8) + throw new TypeError("invalid key length " + password.length); + if (typeof iv === "string") + iv = Buffer2.from(iv); + if (config.mode !== "GCM" && iv.length !== config.iv) + throw new TypeError("invalid iv length " + iv.length); + if (config.type === "stream") { + return new StreamCipher(config.module, password, iv); + } else if (config.type === "auth") { + return new AuthCipher(config.module, password, iv); + } + return new Cipher2(config.module, password, iv); + } + function createCipher2(suite, password) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + var keys = ebtk(password, false, config.key, config.iv); + return createCipheriv2(suite, keys.key, keys.iv); + } + exports$21.createCipheriv = createCipheriv2; + exports$21.createCipher = createCipher2; + return exports$21; +} +var exports$20 = {}; +var _dewExec$1$ = false; +var _global$A = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1$() { + if (_dewExec$1$) + return exports$20; + _dewExec$1$ = true; + var AuthCipher = dew$23(); + var Buffer2 = dew$2P().Buffer; + var MODES = dew$26(); + var StreamCipher = dew$22(); + var Transform = dew$2z(); + var aes = dew$25(); + var ebtk = dew$21(); + var inherits2 = dew$f(); + function Decipher2(mode, key, iv) { + Transform.call(this || _global$A); + (this || _global$A)._cache = new Splitter(); + (this || _global$A)._last = void 0; + (this || _global$A)._cipher = new aes.AES(key); + (this || _global$A)._prev = Buffer2.from(iv); + (this || _global$A)._mode = mode; + (this || _global$A)._autopadding = true; + } + inherits2(Decipher2, Transform); + Decipher2.prototype._update = function(data) { + (this || _global$A)._cache.add(data); + var chunk; + var thing; + var out = []; + while (chunk = (this || _global$A)._cache.get((this || _global$A)._autopadding)) { + thing = (this || _global$A)._mode.decrypt(this || _global$A, chunk); + out.push(thing); + } + return Buffer2.concat(out); + }; + Decipher2.prototype._final = function() { + var chunk = (this || _global$A)._cache.flush(); + if ((this || _global$A)._autopadding) { + return unpad((this || _global$A)._mode.decrypt(this || _global$A, chunk)); + } else if (chunk) { + throw new Error("data not multiple of block length"); + } + }; + Decipher2.prototype.setAutoPadding = function(setTo) { + (this || _global$A)._autopadding = !!setTo; + return this || _global$A; + }; + function Splitter() { + (this || _global$A).cache = Buffer2.allocUnsafe(0); + } + Splitter.prototype.add = function(data) { + (this || _global$A).cache = Buffer2.concat([(this || _global$A).cache, data]); + }; + Splitter.prototype.get = function(autoPadding) { + var out; + if (autoPadding) { + if ((this || _global$A).cache.length > 16) { + out = (this || _global$A).cache.slice(0, 16); + (this || _global$A).cache = (this || _global$A).cache.slice(16); + return out; + } + } else { + if ((this || _global$A).cache.length >= 16) { + out = (this || _global$A).cache.slice(0, 16); + (this || _global$A).cache = (this || _global$A).cache.slice(16); + return out; + } + } + return null; + }; + Splitter.prototype.flush = function() { + if ((this || _global$A).cache.length) + return (this || _global$A).cache; + }; + function unpad(last) { + var padded = last[15]; + if (padded < 1 || padded > 16) { + throw new Error("unable to decrypt data"); + } + var i6 = -1; + while (++i6 < padded) { + if (last[i6 + (16 - padded)] !== padded) { + throw new Error("unable to decrypt data"); + } + } + if (padded === 16) + return; + return last.slice(0, 16 - padded); + } + function createDecipheriv2(suite, password, iv) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + if (typeof iv === "string") + iv = Buffer2.from(iv); + if (config.mode !== "GCM" && iv.length !== config.iv) + throw new TypeError("invalid iv length " + iv.length); + if (typeof password === "string") + password = Buffer2.from(password); + if (password.length !== config.key / 8) + throw new TypeError("invalid key length " + password.length); + if (config.type === "stream") { + return new StreamCipher(config.module, password, iv, true); + } else if (config.type === "auth") { + return new AuthCipher(config.module, password, iv, true); + } + return new Decipher2(config.module, password, iv); + } + function createDecipher2(suite, password) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + var keys = ebtk(password, false, config.key, config.iv); + return createDecipheriv2(suite, keys.key, keys.iv); + } + exports$20.createDecipher = createDecipher2; + exports$20.createDecipheriv = createDecipheriv2; + return exports$20; +} +var exports$1$ = {}; +var _dewExec$1_ = false; +function dew$1_() { + if (_dewExec$1_) + return exports$1$; + _dewExec$1_ = true; + var ciphers = dew$20(); + var deciphers = dew$1$(); + var modes = _list$1; + function getCiphers2() { + return Object.keys(modes); + } + exports$1$.createCipher = exports$1$.Cipher = ciphers.createCipher; + exports$1$.createCipheriv = exports$1$.Cipheriv = ciphers.createCipheriv; + exports$1$.createDecipher = exports$1$.Decipher = deciphers.createDecipher; + exports$1$.createDecipheriv = exports$1$.Decipheriv = deciphers.createDecipheriv; + exports$1$.listCiphers = exports$1$.getCiphers = getCiphers2; + return exports$1$; +} +var exports$1_ = {}; +var _dewExec$1Z = false; +function dew$1Z() { + if (_dewExec$1Z) + return exports$1_; + _dewExec$1Z = true; + exports$1_["des-ecb"] = { + key: 8, + iv: 0 + }; + exports$1_["des-cbc"] = exports$1_.des = { + key: 8, + iv: 8 + }; + exports$1_["des-ede3-cbc"] = exports$1_.des3 = { + key: 24, + iv: 8 + }; + exports$1_["des-ede3"] = { + key: 24, + iv: 0 + }; + exports$1_["des-ede-cbc"] = { + key: 16, + iv: 8 + }; + exports$1_["des-ede"] = { + key: 16, + iv: 0 + }; + return exports$1_; +} +var exports$1Z = {}; +var _dewExec$1Y = false; +function dew$1Y() { + if (_dewExec$1Y) + return exports$1Z; + _dewExec$1Y = true; + var DES = dew$2g(); + var aes = dew$1_(); + var aesModes = dew$26(); + var desModes = dew$1Z(); + var ebtk = dew$21(); + function createCipher2(suite, password) { + suite = suite.toLowerCase(); + var keyLen, ivLen; + if (aesModes[suite]) { + keyLen = aesModes[suite].key; + ivLen = aesModes[suite].iv; + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8; + ivLen = desModes[suite].iv; + } else { + throw new TypeError("invalid suite type"); + } + var keys = ebtk(password, false, keyLen, ivLen); + return createCipheriv2(suite, keys.key, keys.iv); + } + function createDecipher2(suite, password) { + suite = suite.toLowerCase(); + var keyLen, ivLen; + if (aesModes[suite]) { + keyLen = aesModes[suite].key; + ivLen = aesModes[suite].iv; + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8; + ivLen = desModes[suite].iv; + } else { + throw new TypeError("invalid suite type"); + } + var keys = ebtk(password, false, keyLen, ivLen); + return createDecipheriv2(suite, keys.key, keys.iv); + } + function createCipheriv2(suite, key, iv) { + suite = suite.toLowerCase(); + if (aesModes[suite]) + return aes.createCipheriv(suite, key, iv); + if (desModes[suite]) + return new DES({ + key, + iv, + mode: suite + }); + throw new TypeError("invalid suite type"); + } + function createDecipheriv2(suite, key, iv) { + suite = suite.toLowerCase(); + if (aesModes[suite]) + return aes.createDecipheriv(suite, key, iv); + if (desModes[suite]) + return new DES({ + key, + iv, + mode: suite, + decrypt: true + }); + throw new TypeError("invalid suite type"); + } + function getCiphers2() { + return Object.keys(desModes).concat(aes.getCiphers()); + } + exports$1Z.createCipher = exports$1Z.Cipher = createCipher2; + exports$1Z.createCipheriv = exports$1Z.Cipheriv = createCipheriv2; + exports$1Z.createDecipher = exports$1Z.Decipher = createDecipher2; + exports$1Z.createDecipheriv = exports$1Z.Decipheriv = createDecipheriv2; + exports$1Z.listCiphers = exports$1Z.getCiphers = getCiphers2; + return exports$1Z; +} +var exports$1Y = {}; +var _dewExec$1X = false; +var module$a = { + exports: exports$1Y +}; +var _global$z = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1X() { + if (_dewExec$1X) + return module$a.exports; + _dewExec$1X = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$z).negative = 0; + (this || _global$z).words = null; + (this || _global$z).length = 0; + (this || _global$z).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$z).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$z).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$z).words = [number & 67108863]; + (this || _global$z).length = 1; + } else if (number < 4503599627370496) { + (this || _global$z).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$z).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$z).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$z).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$z).words = [0]; + (this || _global$z).length = 1; + return this || _global$z; + } + (this || _global$z).length = Math.ceil(number.length / 3); + (this || _global$z).words = new Array((this || _global$z).length); + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + (this || _global$z).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$z).words[j4] |= w4 << off & 67108863; + (this || _global$z).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$z).words[j4] |= w4 << off & 67108863; + (this || _global$z).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$z).length = Math.ceil((number.length - start) / 6); + (this || _global$z).words = new Array((this || _global$z).length); + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + (this || _global$z).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$z).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$z).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$z).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$z).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$z).words = [0]; + (this || _global$z).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$z).words[0] + word < 67108864) { + (this || _global$z).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$z).words[0] + word < 67108864) { + (this || _global$z).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$z).length); + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + dest.words[i6] = (this || _global$z).words[i6]; + } + dest.length = (this || _global$z).length; + dest.negative = (this || _global$z).negative; + dest.red = (this || _global$z).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$z).length < size) { + (this || _global$z).words[(this || _global$z).length++] = 0; + } + return this || _global$z; + }; + BN.prototype.strip = function strip() { + while ((this || _global$z).length > 1 && (this || _global$z).words[(this || _global$z).length - 1] === 0) { + (this || _global$z).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$z).length === 1 && (this || _global$z).words[0] === 0) { + (this || _global$z).negative = 0; + } + return this || _global$z; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$z).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + var w4 = (this || _global$z).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$z).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$z).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$z).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$z).words[0]; + if ((this || _global$z).length === 2) { + ret += (this || _global$z).words[1] * 67108864; + } else if ((this || _global$z).length === 3 && (this || _global$z).words[2] === 1) { + ret += 4503599627370496 + (this || _global$z).words[1] * 67108864; + } else if ((this || _global$z).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$z).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$z).words[(this || _global$z).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$z).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + var b4 = this._zeroBits((this || _global$z).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$z).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$z).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$z).negative ^= 1; + } + return this || _global$z; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$z).length < num.length) { + (this || _global$z).words[(this || _global$z).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$z).words[i6] = (this || _global$z).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$z).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$z).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$z); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$z).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$z); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$z).length > num.length) { + b4 = num; + } else { + b4 = this || _global$z; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$z).words[i6] = (this || _global$z).words[i6] & num.words[i6]; + } + (this || _global$z).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$z).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$z).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$z); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$z).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$z); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$z).length > num.length) { + a6 = this || _global$z; + b4 = num; + } else { + a6 = num; + b4 = this || _global$z; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$z).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$z) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$z).words[i6] = a6.words[i6]; + } + } + (this || _global$z).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$z).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$z).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$z); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$z).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$z); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$z).words[i6] = ~(this || _global$z).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$z).words[i6] = ~(this || _global$z).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$z).words[off] = (this || _global$z).words[off] | 1 << wbit; + } else { + (this || _global$z).words[off] = (this || _global$z).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$z).negative !== 0 && num.negative === 0) { + (this || _global$z).negative = 0; + r6 = this.isub(num); + (this || _global$z).negative ^= 1; + return this._normSign(); + } else if ((this || _global$z).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$z).length > num.length) { + a6 = this || _global$z; + b4 = num; + } else { + a6 = num; + b4 = this || _global$z; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$z).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$z).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$z).length = a6.length; + if (carry !== 0) { + (this || _global$z).words[(this || _global$z).length] = carry; + (this || _global$z).length++; + } else if (a6 !== (this || _global$z)) { + for (; i6 < a6.length; i6++) { + (this || _global$z).words[i6] = a6.words[i6]; + } + } + return this || _global$z; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$z).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$z).negative !== 0) { + (this || _global$z).negative = 0; + res = num.sub(this || _global$z); + (this || _global$z).negative = 1; + return res; + } + if ((this || _global$z).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$z); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$z).negative !== 0) { + (this || _global$z).negative = 0; + this.iadd(num); + (this || _global$z).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$z).negative = 0; + (this || _global$z).length = 1; + (this || _global$z).words[0] = 0; + return this || _global$z; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$z; + b4 = num; + } else { + a6 = num; + b4 = this || _global$z; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$z).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$z).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$z)) { + for (; i6 < a6.length; i6++) { + (this || _global$z).words[i6] = a6.words[i6]; + } + } + (this || _global$z).length = Math.max((this || _global$z).length, i6); + if (a6 !== (this || _global$z)) { + (this || _global$z).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$z).length + num.length; + if ((this || _global$z).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$z, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$z, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$z, num, out); + } else { + res = jumboMulTo(this || _global$z, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$z).x = x4; + (this || _global$z).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$z).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$z).length + num.length); + return jumboMulTo(this || _global$z, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$z); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$z).length; i6++) { + var w4 = ((this || _global$z).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$z).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$z).words[i6] = carry; + (this || _global$z).length++; + } + return this || _global$z; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$z); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$z; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$z).length; i6++) { + var newCarry = (this || _global$z).words[i6] & carryMask; + var c6 = ((this || _global$z).words[i6] | 0) - newCarry << r6; + (this || _global$z).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$z).words[i6] = carry; + (this || _global$z).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$z).length - 1; i6 >= 0; i6--) { + (this || _global$z).words[i6 + s6] = (this || _global$z).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$z).words[i6] = 0; + } + (this || _global$z).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$z).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$z).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$z).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$z).length > s6) { + (this || _global$z).length -= s6; + for (i6 = 0; i6 < (this || _global$z).length; i6++) { + (this || _global$z).words[i6] = (this || _global$z).words[i6 + s6]; + } + } else { + (this || _global$z).words[0] = 0; + (this || _global$z).length = 1; + } + var carry = 0; + for (i6 = (this || _global$z).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$z).words[i6] | 0; + (this || _global$z).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$z).length === 0) { + (this || _global$z).words[0] = 0; + (this || _global$z).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$z).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$z).length <= s6) + return false; + var w4 = (this || _global$z).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$z).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$z).length <= s6) { + return this || _global$z; + } + if (r6 !== 0) { + s6++; + } + (this || _global$z).length = Math.min(s6, (this || _global$z).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$z).words[(this || _global$z).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$z).negative !== 0) { + if ((this || _global$z).length === 1 && ((this || _global$z).words[0] | 0) < num) { + (this || _global$z).words[0] = num - ((this || _global$z).words[0] | 0); + (this || _global$z).negative = 0; + return this || _global$z; + } + (this || _global$z).negative = 0; + this.isubn(num); + (this || _global$z).negative = 1; + return this || _global$z; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$z).words[0] += num; + for (var i6 = 0; i6 < (this || _global$z).length && (this || _global$z).words[i6] >= 67108864; i6++) { + (this || _global$z).words[i6] -= 67108864; + if (i6 === (this || _global$z).length - 1) { + (this || _global$z).words[i6 + 1] = 1; + } else { + (this || _global$z).words[i6 + 1]++; + } + } + (this || _global$z).length = Math.max((this || _global$z).length, i6 + 1); + return this || _global$z; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$z).negative !== 0) { + (this || _global$z).negative = 0; + this.iaddn(num); + (this || _global$z).negative = 1; + return this || _global$z; + } + (this || _global$z).words[0] -= num; + if ((this || _global$z).length === 1 && (this || _global$z).words[0] < 0) { + (this || _global$z).words[0] = -(this || _global$z).words[0]; + (this || _global$z).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$z).length && (this || _global$z).words[i6] < 0; i6++) { + (this || _global$z).words[i6] += 67108864; + (this || _global$z).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$z).negative = 0; + return this || _global$z; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$z).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$z).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$z).length - shift; i6++) { + w4 = ((this || _global$z).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$z).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$z).length; i6++) { + w4 = -((this || _global$z).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$z).words[i6] = w4 & 67108863; + } + (this || _global$z).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$z).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$z).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$z).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$z).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$z).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$z + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$z).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$z).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$z).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$z).words[i6] | 0) + carry * 67108864; + (this || _global$z).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$z; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$z; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$z).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$z).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$z).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$z).length <= s6) { + this._expand(s6 + 1); + (this || _global$z).words[s6] |= q3; + return this || _global$z; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$z).length; i6++) { + var w4 = (this || _global$z).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$z).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$z).words[i6] = carry; + (this || _global$z).length++; + } + return this || _global$z; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$z).length === 1 && (this || _global$z).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$z).negative !== 0 && !negative) + return -1; + if ((this || _global$z).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$z).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$z).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$z).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$z).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$z).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$z).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$z).length > num.length) + return 1; + if ((this || _global$z).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$z).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$z).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$z).red, "Already a number in reduction context"); + assert((this || _global$z).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$z)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$z).red, "fromRed works only with numbers in reduction context"); + return (this || _global$z).red.convertFrom(this || _global$z); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$z).red = ctx; + return this || _global$z; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$z).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$z).red, "redAdd works only with red numbers"); + return (this || _global$z).red.add(this || _global$z, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$z).red, "redIAdd works only with red numbers"); + return (this || _global$z).red.iadd(this || _global$z, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$z).red, "redSub works only with red numbers"); + return (this || _global$z).red.sub(this || _global$z, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$z).red, "redISub works only with red numbers"); + return (this || _global$z).red.isub(this || _global$z, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$z).red, "redShl works only with red numbers"); + return (this || _global$z).red.shl(this || _global$z, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$z).red, "redMul works only with red numbers"); + (this || _global$z).red._verify2(this || _global$z, num); + return (this || _global$z).red.mul(this || _global$z, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$z).red, "redMul works only with red numbers"); + (this || _global$z).red._verify2(this || _global$z, num); + return (this || _global$z).red.imul(this || _global$z, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$z).red, "redSqr works only with red numbers"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.sqr(this || _global$z); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$z).red, "redISqr works only with red numbers"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.isqr(this || _global$z); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$z).red, "redSqrt works only with red numbers"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.sqrt(this || _global$z); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$z).red, "redInvm works only with red numbers"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.invm(this || _global$z); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$z).red, "redNeg works only with red numbers"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.neg(this || _global$z); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$z).red && !num.red, "redPow(normalNum)"); + (this || _global$z).red._verify1(this || _global$z); + return (this || _global$z).red.pow(this || _global$z, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$z).name = name; + (this || _global$z).p = new BN(p6, 16); + (this || _global$z).n = (this || _global$z).p.bitLength(); + (this || _global$z).k = new BN(1).iushln((this || _global$z).n).isub((this || _global$z).p); + (this || _global$z).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$z).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$z).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$z).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$z).n); + var cmp = rlen < (this || _global$z).n ? -1 : r6.ucmp((this || _global$z).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$z).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$z).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$z).k); + }; + function K256() { + MPrime.call(this || _global$z, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$z, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$z, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$z, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$z).m = prime.p; + (this || _global$z).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$z).m = m5; + (this || _global$z).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$z).prime) + return (this || _global$z).prime.ireduce(a6)._forceRed(this || _global$z); + return a6.umod((this || _global$z).m)._forceRed(this || _global$z); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$z).m.sub(a6)._forceRed(this || _global$z); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$z).m) >= 0) { + res.isub((this || _global$z).m); + } + return res._forceRed(this || _global$z); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$z).m) >= 0) { + res.isub((this || _global$z).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$z).m); + } + return res._forceRed(this || _global$z); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$z).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$z).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$z).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$z).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$z); + var nOne = one.redNeg(); + var lpow = (this || _global$z).m.subn(1).iushrn(1); + var z4 = (this || _global$z).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$z); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$z).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$z); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$z); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$z).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$z, m5); + (this || _global$z).shift = (this || _global$z).m.bitLength(); + if ((this || _global$z).shift % 26 !== 0) { + (this || _global$z).shift += 26 - (this || _global$z).shift % 26; + } + (this || _global$z).r = new BN(1).iushln((this || _global$z).shift); + (this || _global$z).r2 = this.imod((this || _global$z).r.sqr()); + (this || _global$z).rinv = (this || _global$z).r._invmp((this || _global$z).m); + (this || _global$z).minv = (this || _global$z).rinv.mul((this || _global$z).r).isubn(1).div((this || _global$z).m); + (this || _global$z).minv = (this || _global$z).minv.umod((this || _global$z).r); + (this || _global$z).minv = (this || _global$z).r.sub((this || _global$z).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$z).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$z).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$z).shift).mul((this || _global$z).minv).imaskn((this || _global$z).shift).mul((this || _global$z).m); + var u6 = t6.isub(c6).iushrn((this || _global$z).shift); + var res = u6; + if (u6.cmp((this || _global$z).m) >= 0) { + res = u6.isub((this || _global$z).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$z).m); + } + return res._forceRed(this || _global$z); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$z); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$z).shift).mul((this || _global$z).minv).imaskn((this || _global$z).shift).mul((this || _global$z).m); + var u6 = t6.isub(c6).iushrn((this || _global$z).shift); + var res = u6; + if (u6.cmp((this || _global$z).m) >= 0) { + res = u6.isub((this || _global$z).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$z).m); + } + return res._forceRed(this || _global$z); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$z).m).mul((this || _global$z).r2)); + return res._forceRed(this || _global$z); + }; + })(module$a, exports$1Y); + return module$a.exports; +} +var exports$1X = {}; +var _dewExec$1W = false; +var module$9 = { + exports: exports$1X +}; +var _global$y = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1W() { + if (_dewExec$1W) + return module$9.exports; + _dewExec$1W = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$y).negative = 0; + (this || _global$y).words = null; + (this || _global$y).length = 0; + (this || _global$y).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$y).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$y).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$y).words = [number & 67108863]; + (this || _global$y).length = 1; + } else if (number < 4503599627370496) { + (this || _global$y).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$y).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$y).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$y).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$y).words = [0]; + (this || _global$y).length = 1; + return this || _global$y; + } + (this || _global$y).length = Math.ceil(number.length / 3); + (this || _global$y).words = new Array((this || _global$y).length); + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + (this || _global$y).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$y).words[j4] |= w4 << off & 67108863; + (this || _global$y).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$y).words[j4] |= w4 << off & 67108863; + (this || _global$y).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$y).length = Math.ceil((number.length - start) / 6); + (this || _global$y).words = new Array((this || _global$y).length); + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + (this || _global$y).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$y).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$y).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$y).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$y).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$y).words = [0]; + (this || _global$y).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$y).words[0] + word < 67108864) { + (this || _global$y).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$y).words[0] + word < 67108864) { + (this || _global$y).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$y).length); + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + dest.words[i6] = (this || _global$y).words[i6]; + } + dest.length = (this || _global$y).length; + dest.negative = (this || _global$y).negative; + dest.red = (this || _global$y).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$y).length < size) { + (this || _global$y).words[(this || _global$y).length++] = 0; + } + return this || _global$y; + }; + BN.prototype.strip = function strip() { + while ((this || _global$y).length > 1 && (this || _global$y).words[(this || _global$y).length - 1] === 0) { + (this || _global$y).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$y).length === 1 && (this || _global$y).words[0] === 0) { + (this || _global$y).negative = 0; + } + return this || _global$y; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$y).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + var w4 = (this || _global$y).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$y).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$y).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$y).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$y).words[0]; + if ((this || _global$y).length === 2) { + ret += (this || _global$y).words[1] * 67108864; + } else if ((this || _global$y).length === 3 && (this || _global$y).words[2] === 1) { + ret += 4503599627370496 + (this || _global$y).words[1] * 67108864; + } else if ((this || _global$y).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$y).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$y).words[(this || _global$y).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$y).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + var b4 = this._zeroBits((this || _global$y).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$y).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$y).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$y).negative ^= 1; + } + return this || _global$y; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$y).length < num.length) { + (this || _global$y).words[(this || _global$y).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$y).words[i6] = (this || _global$y).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$y).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$y).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$y); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$y).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$y); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$y).length > num.length) { + b4 = num; + } else { + b4 = this || _global$y; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$y).words[i6] = (this || _global$y).words[i6] & num.words[i6]; + } + (this || _global$y).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$y).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$y).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$y); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$y).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$y); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$y).length > num.length) { + a6 = this || _global$y; + b4 = num; + } else { + a6 = num; + b4 = this || _global$y; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$y).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$y) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$y).words[i6] = a6.words[i6]; + } + } + (this || _global$y).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$y).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$y).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$y); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$y).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$y); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$y).words[i6] = ~(this || _global$y).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$y).words[i6] = ~(this || _global$y).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$y).words[off] = (this || _global$y).words[off] | 1 << wbit; + } else { + (this || _global$y).words[off] = (this || _global$y).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$y).negative !== 0 && num.negative === 0) { + (this || _global$y).negative = 0; + r6 = this.isub(num); + (this || _global$y).negative ^= 1; + return this._normSign(); + } else if ((this || _global$y).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$y).length > num.length) { + a6 = this || _global$y; + b4 = num; + } else { + a6 = num; + b4 = this || _global$y; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$y).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$y).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$y).length = a6.length; + if (carry !== 0) { + (this || _global$y).words[(this || _global$y).length] = carry; + (this || _global$y).length++; + } else if (a6 !== (this || _global$y)) { + for (; i6 < a6.length; i6++) { + (this || _global$y).words[i6] = a6.words[i6]; + } + } + return this || _global$y; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$y).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$y).negative !== 0) { + (this || _global$y).negative = 0; + res = num.sub(this || _global$y); + (this || _global$y).negative = 1; + return res; + } + if ((this || _global$y).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$y); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$y).negative !== 0) { + (this || _global$y).negative = 0; + this.iadd(num); + (this || _global$y).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$y).negative = 0; + (this || _global$y).length = 1; + (this || _global$y).words[0] = 0; + return this || _global$y; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$y; + b4 = num; + } else { + a6 = num; + b4 = this || _global$y; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$y).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$y).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$y)) { + for (; i6 < a6.length; i6++) { + (this || _global$y).words[i6] = a6.words[i6]; + } + } + (this || _global$y).length = Math.max((this || _global$y).length, i6); + if (a6 !== (this || _global$y)) { + (this || _global$y).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$y).length + num.length; + if ((this || _global$y).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$y, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$y, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$y, num, out); + } else { + res = jumboMulTo(this || _global$y, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$y).x = x4; + (this || _global$y).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$y).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$y).length + num.length); + return jumboMulTo(this || _global$y, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$y); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$y).length; i6++) { + var w4 = ((this || _global$y).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$y).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$y).words[i6] = carry; + (this || _global$y).length++; + } + return this || _global$y; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$y); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$y; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$y).length; i6++) { + var newCarry = (this || _global$y).words[i6] & carryMask; + var c6 = ((this || _global$y).words[i6] | 0) - newCarry << r6; + (this || _global$y).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$y).words[i6] = carry; + (this || _global$y).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$y).length - 1; i6 >= 0; i6--) { + (this || _global$y).words[i6 + s6] = (this || _global$y).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$y).words[i6] = 0; + } + (this || _global$y).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$y).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$y).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$y).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$y).length > s6) { + (this || _global$y).length -= s6; + for (i6 = 0; i6 < (this || _global$y).length; i6++) { + (this || _global$y).words[i6] = (this || _global$y).words[i6 + s6]; + } + } else { + (this || _global$y).words[0] = 0; + (this || _global$y).length = 1; + } + var carry = 0; + for (i6 = (this || _global$y).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$y).words[i6] | 0; + (this || _global$y).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$y).length === 0) { + (this || _global$y).words[0] = 0; + (this || _global$y).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$y).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$y).length <= s6) + return false; + var w4 = (this || _global$y).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$y).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$y).length <= s6) { + return this || _global$y; + } + if (r6 !== 0) { + s6++; + } + (this || _global$y).length = Math.min(s6, (this || _global$y).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$y).words[(this || _global$y).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$y).negative !== 0) { + if ((this || _global$y).length === 1 && ((this || _global$y).words[0] | 0) < num) { + (this || _global$y).words[0] = num - ((this || _global$y).words[0] | 0); + (this || _global$y).negative = 0; + return this || _global$y; + } + (this || _global$y).negative = 0; + this.isubn(num); + (this || _global$y).negative = 1; + return this || _global$y; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$y).words[0] += num; + for (var i6 = 0; i6 < (this || _global$y).length && (this || _global$y).words[i6] >= 67108864; i6++) { + (this || _global$y).words[i6] -= 67108864; + if (i6 === (this || _global$y).length - 1) { + (this || _global$y).words[i6 + 1] = 1; + } else { + (this || _global$y).words[i6 + 1]++; + } + } + (this || _global$y).length = Math.max((this || _global$y).length, i6 + 1); + return this || _global$y; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$y).negative !== 0) { + (this || _global$y).negative = 0; + this.iaddn(num); + (this || _global$y).negative = 1; + return this || _global$y; + } + (this || _global$y).words[0] -= num; + if ((this || _global$y).length === 1 && (this || _global$y).words[0] < 0) { + (this || _global$y).words[0] = -(this || _global$y).words[0]; + (this || _global$y).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$y).length && (this || _global$y).words[i6] < 0; i6++) { + (this || _global$y).words[i6] += 67108864; + (this || _global$y).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$y).negative = 0; + return this || _global$y; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$y).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$y).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$y).length - shift; i6++) { + w4 = ((this || _global$y).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$y).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$y).length; i6++) { + w4 = -((this || _global$y).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$y).words[i6] = w4 & 67108863; + } + (this || _global$y).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$y).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$y).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$y).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$y).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$y).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$y + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$y).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$y).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$y).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$y).words[i6] | 0) + carry * 67108864; + (this || _global$y).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$y; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$y; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$y).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$y).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$y).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$y).length <= s6) { + this._expand(s6 + 1); + (this || _global$y).words[s6] |= q3; + return this || _global$y; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$y).length; i6++) { + var w4 = (this || _global$y).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$y).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$y).words[i6] = carry; + (this || _global$y).length++; + } + return this || _global$y; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$y).length === 1 && (this || _global$y).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$y).negative !== 0 && !negative) + return -1; + if ((this || _global$y).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$y).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$y).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$y).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$y).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$y).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$y).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$y).length > num.length) + return 1; + if ((this || _global$y).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$y).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$y).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$y).red, "Already a number in reduction context"); + assert((this || _global$y).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$y)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$y).red, "fromRed works only with numbers in reduction context"); + return (this || _global$y).red.convertFrom(this || _global$y); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$y).red = ctx; + return this || _global$y; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$y).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$y).red, "redAdd works only with red numbers"); + return (this || _global$y).red.add(this || _global$y, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$y).red, "redIAdd works only with red numbers"); + return (this || _global$y).red.iadd(this || _global$y, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$y).red, "redSub works only with red numbers"); + return (this || _global$y).red.sub(this || _global$y, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$y).red, "redISub works only with red numbers"); + return (this || _global$y).red.isub(this || _global$y, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$y).red, "redShl works only with red numbers"); + return (this || _global$y).red.shl(this || _global$y, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$y).red, "redMul works only with red numbers"); + (this || _global$y).red._verify2(this || _global$y, num); + return (this || _global$y).red.mul(this || _global$y, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$y).red, "redMul works only with red numbers"); + (this || _global$y).red._verify2(this || _global$y, num); + return (this || _global$y).red.imul(this || _global$y, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$y).red, "redSqr works only with red numbers"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.sqr(this || _global$y); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$y).red, "redISqr works only with red numbers"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.isqr(this || _global$y); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$y).red, "redSqrt works only with red numbers"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.sqrt(this || _global$y); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$y).red, "redInvm works only with red numbers"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.invm(this || _global$y); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$y).red, "redNeg works only with red numbers"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.neg(this || _global$y); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$y).red && !num.red, "redPow(normalNum)"); + (this || _global$y).red._verify1(this || _global$y); + return (this || _global$y).red.pow(this || _global$y, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$y).name = name; + (this || _global$y).p = new BN(p6, 16); + (this || _global$y).n = (this || _global$y).p.bitLength(); + (this || _global$y).k = new BN(1).iushln((this || _global$y).n).isub((this || _global$y).p); + (this || _global$y).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$y).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$y).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$y).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$y).n); + var cmp = rlen < (this || _global$y).n ? -1 : r6.ucmp((this || _global$y).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$y).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$y).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$y).k); + }; + function K256() { + MPrime.call(this || _global$y, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$y, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$y, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$y, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$y).m = prime.p; + (this || _global$y).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$y).m = m5; + (this || _global$y).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$y).prime) + return (this || _global$y).prime.ireduce(a6)._forceRed(this || _global$y); + return a6.umod((this || _global$y).m)._forceRed(this || _global$y); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$y).m.sub(a6)._forceRed(this || _global$y); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$y).m) >= 0) { + res.isub((this || _global$y).m); + } + return res._forceRed(this || _global$y); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$y).m) >= 0) { + res.isub((this || _global$y).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$y).m); + } + return res._forceRed(this || _global$y); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$y).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$y).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$y).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$y).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$y); + var nOne = one.redNeg(); + var lpow = (this || _global$y).m.subn(1).iushrn(1); + var z4 = (this || _global$y).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$y); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$y).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$y); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$y); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$y).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$y, m5); + (this || _global$y).shift = (this || _global$y).m.bitLength(); + if ((this || _global$y).shift % 26 !== 0) { + (this || _global$y).shift += 26 - (this || _global$y).shift % 26; + } + (this || _global$y).r = new BN(1).iushln((this || _global$y).shift); + (this || _global$y).r2 = this.imod((this || _global$y).r.sqr()); + (this || _global$y).rinv = (this || _global$y).r._invmp((this || _global$y).m); + (this || _global$y).minv = (this || _global$y).rinv.mul((this || _global$y).r).isubn(1).div((this || _global$y).m); + (this || _global$y).minv = (this || _global$y).minv.umod((this || _global$y).r); + (this || _global$y).minv = (this || _global$y).r.sub((this || _global$y).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$y).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$y).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$y).shift).mul((this || _global$y).minv).imaskn((this || _global$y).shift).mul((this || _global$y).m); + var u6 = t6.isub(c6).iushrn((this || _global$y).shift); + var res = u6; + if (u6.cmp((this || _global$y).m) >= 0) { + res = u6.isub((this || _global$y).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$y).m); + } + return res._forceRed(this || _global$y); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$y); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$y).shift).mul((this || _global$y).minv).imaskn((this || _global$y).shift).mul((this || _global$y).m); + var u6 = t6.isub(c6).iushrn((this || _global$y).shift); + var res = u6; + if (u6.cmp((this || _global$y).m) >= 0) { + res = u6.isub((this || _global$y).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$y).m); + } + return res._forceRed(this || _global$y); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$y).m).mul((this || _global$y).r2)); + return res._forceRed(this || _global$y); + }; + })(module$9, exports$1X); + return module$9.exports; +} +var exports$1W = {}; +var _dewExec$1V = false; +function dew$1V() { + if (_dewExec$1V) + return exports$1W; + _dewExec$1V = true; + exports$1W = exports$1W = dew$3$2(); + exports$1W.Stream = exports$1W; + exports$1W.Readable = exports$1W; + exports$1W.Writable = dew$8$2(); + exports$1W.Duplex = dew$7$2(); + exports$1W.Transform = dew$2$2(); + exports$1W.PassThrough = dew$1$2(); + exports$1W.finished = dew$6$2(); + exports$1W.pipeline = dew$2B(); + return exports$1W; +} +var exports$1U = {}; +var _dewExec$1T = false; +function dew$1T() { + if (_dewExec$1T) + return exports$1U; + _dewExec$1T = true; + var buffer2 = e$1$1; + var Buffer2 = buffer2.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + exports$1U = buffer2; + } else { + copyProps(buffer2, exports$1U); + exports$1U.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer2.SlowBuffer(size); + }; + return exports$1U; +} +var exports$1T = {}; +var _dewExec$1S = false; +var _global$w = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1S() { + if (_dewExec$1S) + return exports$1T; + _dewExec$1S = true; + var process2 = T; + var MAX_BYTES = 65536; + var MAX_UINT32 = 4294967295; + function oldBrowser() { + throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11"); + } + var Buffer2 = dew$1T().Buffer; + var crypto2 = _global$w.crypto || _global$w.msCrypto; + if (crypto2 && crypto2.getRandomValues) { + exports$1T = randomBytes2; + } else { + exports$1T = oldBrowser; + } + function randomBytes2(size, cb) { + if (size > MAX_UINT32) + throw new RangeError("requested too many random bytes"); + var bytes = Buffer2.allocUnsafe(size); + if (size > 0) { + if (size > MAX_BYTES) { + for (var generated = 0; generated < size; generated += MAX_BYTES) { + crypto2.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)); + } + } else { + crypto2.getRandomValues(bytes); + } + } + if (typeof cb === "function") { + return process2.nextTick(function() { + cb(null, bytes); + }); + } + return bytes; + } + return exports$1T; +} +var exports$1S = {}; +var _dewExec$1R = false; +function dew$1R() { + if (_dewExec$1R) + return exports$1S; + _dewExec$1R = true; + var Buffer2 = dew$1T().Buffer; + var Transform = dew$1V().Transform; + var inherits2 = dew$f$2(); + function throwIfNotStringOrBuffer(val, prefix) { + if (!Buffer2.isBuffer(val) && typeof val !== "string") { + throw new TypeError(prefix + " must be a string or a buffer"); + } + } + function HashBase(blockSize) { + Transform.call(this); + this._block = Buffer2.allocUnsafe(blockSize); + this._blockSize = blockSize; + this._blockOffset = 0; + this._length = [0, 0, 0, 0]; + this._finalized = false; + } + inherits2(HashBase, Transform); + HashBase.prototype._transform = function(chunk, encoding, callback) { + var error = null; + try { + this.update(chunk, encoding); + } catch (err) { + error = err; + } + callback(error); + }; + HashBase.prototype._flush = function(callback) { + var error = null; + try { + this.push(this.digest()); + } catch (err) { + error = err; + } + callback(error); + }; + HashBase.prototype.update = function(data, encoding) { + throwIfNotStringOrBuffer(data, "Data"); + if (this._finalized) + throw new Error("Digest already called"); + if (!Buffer2.isBuffer(data)) + data = Buffer2.from(data, encoding); + var block = this._block; + var offset = 0; + while (this._blockOffset + data.length - offset >= this._blockSize) { + for (var i6 = this._blockOffset; i6 < this._blockSize; ) + block[i6++] = data[offset++]; + this._update(); + this._blockOffset = 0; + } + while (offset < data.length) + block[this._blockOffset++] = data[offset++]; + for (var j4 = 0, carry = data.length * 8; carry > 0; ++j4) { + this._length[j4] += carry; + carry = this._length[j4] / 4294967296 | 0; + if (carry > 0) + this._length[j4] -= 4294967296 * carry; + } + return this; + }; + HashBase.prototype._update = function() { + throw new Error("_update is not implemented"); + }; + HashBase.prototype.digest = function(encoding) { + if (this._finalized) + throw new Error("Digest already called"); + this._finalized = true; + var digest = this._digest(); + if (encoding !== void 0) + digest = digest.toString(encoding); + this._block.fill(0); + this._blockOffset = 0; + for (var i6 = 0; i6 < 4; ++i6) + this._length[i6] = 0; + return digest; + }; + HashBase.prototype._digest = function() { + throw new Error("_digest is not implemented"); + }; + exports$1S = HashBase; + return exports$1S; +} +var exports$1R = {}; +var _dewExec$1Q = false; +function dew$1Q() { + if (_dewExec$1Q) + return exports$1R; + _dewExec$1Q = true; + var inherits2 = dew$f$2(); + var HashBase = dew$1R(); + var Buffer2 = dew$1T().Buffer; + var ARRAY16 = new Array(16); + function MD5() { + HashBase.call(this, 64); + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + } + inherits2(MD5, HashBase); + MD5.prototype._update = function() { + var M4 = ARRAY16; + for (var i6 = 0; i6 < 16; ++i6) + M4[i6] = this._block.readInt32LE(i6 * 4); + var a6 = this._a; + var b4 = this._b; + var c6 = this._c; + var d5 = this._d; + a6 = fnF(a6, b4, c6, d5, M4[0], 3614090360, 7); + d5 = fnF(d5, a6, b4, c6, M4[1], 3905402710, 12); + c6 = fnF(c6, d5, a6, b4, M4[2], 606105819, 17); + b4 = fnF(b4, c6, d5, a6, M4[3], 3250441966, 22); + a6 = fnF(a6, b4, c6, d5, M4[4], 4118548399, 7); + d5 = fnF(d5, a6, b4, c6, M4[5], 1200080426, 12); + c6 = fnF(c6, d5, a6, b4, M4[6], 2821735955, 17); + b4 = fnF(b4, c6, d5, a6, M4[7], 4249261313, 22); + a6 = fnF(a6, b4, c6, d5, M4[8], 1770035416, 7); + d5 = fnF(d5, a6, b4, c6, M4[9], 2336552879, 12); + c6 = fnF(c6, d5, a6, b4, M4[10], 4294925233, 17); + b4 = fnF(b4, c6, d5, a6, M4[11], 2304563134, 22); + a6 = fnF(a6, b4, c6, d5, M4[12], 1804603682, 7); + d5 = fnF(d5, a6, b4, c6, M4[13], 4254626195, 12); + c6 = fnF(c6, d5, a6, b4, M4[14], 2792965006, 17); + b4 = fnF(b4, c6, d5, a6, M4[15], 1236535329, 22); + a6 = fnG(a6, b4, c6, d5, M4[1], 4129170786, 5); + d5 = fnG(d5, a6, b4, c6, M4[6], 3225465664, 9); + c6 = fnG(c6, d5, a6, b4, M4[11], 643717713, 14); + b4 = fnG(b4, c6, d5, a6, M4[0], 3921069994, 20); + a6 = fnG(a6, b4, c6, d5, M4[5], 3593408605, 5); + d5 = fnG(d5, a6, b4, c6, M4[10], 38016083, 9); + c6 = fnG(c6, d5, a6, b4, M4[15], 3634488961, 14); + b4 = fnG(b4, c6, d5, a6, M4[4], 3889429448, 20); + a6 = fnG(a6, b4, c6, d5, M4[9], 568446438, 5); + d5 = fnG(d5, a6, b4, c6, M4[14], 3275163606, 9); + c6 = fnG(c6, d5, a6, b4, M4[3], 4107603335, 14); + b4 = fnG(b4, c6, d5, a6, M4[8], 1163531501, 20); + a6 = fnG(a6, b4, c6, d5, M4[13], 2850285829, 5); + d5 = fnG(d5, a6, b4, c6, M4[2], 4243563512, 9); + c6 = fnG(c6, d5, a6, b4, M4[7], 1735328473, 14); + b4 = fnG(b4, c6, d5, a6, M4[12], 2368359562, 20); + a6 = fnH(a6, b4, c6, d5, M4[5], 4294588738, 4); + d5 = fnH(d5, a6, b4, c6, M4[8], 2272392833, 11); + c6 = fnH(c6, d5, a6, b4, M4[11], 1839030562, 16); + b4 = fnH(b4, c6, d5, a6, M4[14], 4259657740, 23); + a6 = fnH(a6, b4, c6, d5, M4[1], 2763975236, 4); + d5 = fnH(d5, a6, b4, c6, M4[4], 1272893353, 11); + c6 = fnH(c6, d5, a6, b4, M4[7], 4139469664, 16); + b4 = fnH(b4, c6, d5, a6, M4[10], 3200236656, 23); + a6 = fnH(a6, b4, c6, d5, M4[13], 681279174, 4); + d5 = fnH(d5, a6, b4, c6, M4[0], 3936430074, 11); + c6 = fnH(c6, d5, a6, b4, M4[3], 3572445317, 16); + b4 = fnH(b4, c6, d5, a6, M4[6], 76029189, 23); + a6 = fnH(a6, b4, c6, d5, M4[9], 3654602809, 4); + d5 = fnH(d5, a6, b4, c6, M4[12], 3873151461, 11); + c6 = fnH(c6, d5, a6, b4, M4[15], 530742520, 16); + b4 = fnH(b4, c6, d5, a6, M4[2], 3299628645, 23); + a6 = fnI(a6, b4, c6, d5, M4[0], 4096336452, 6); + d5 = fnI(d5, a6, b4, c6, M4[7], 1126891415, 10); + c6 = fnI(c6, d5, a6, b4, M4[14], 2878612391, 15); + b4 = fnI(b4, c6, d5, a6, M4[5], 4237533241, 21); + a6 = fnI(a6, b4, c6, d5, M4[12], 1700485571, 6); + d5 = fnI(d5, a6, b4, c6, M4[3], 2399980690, 10); + c6 = fnI(c6, d5, a6, b4, M4[10], 4293915773, 15); + b4 = fnI(b4, c6, d5, a6, M4[1], 2240044497, 21); + a6 = fnI(a6, b4, c6, d5, M4[8], 1873313359, 6); + d5 = fnI(d5, a6, b4, c6, M4[15], 4264355552, 10); + c6 = fnI(c6, d5, a6, b4, M4[6], 2734768916, 15); + b4 = fnI(b4, c6, d5, a6, M4[13], 1309151649, 21); + a6 = fnI(a6, b4, c6, d5, M4[4], 4149444226, 6); + d5 = fnI(d5, a6, b4, c6, M4[11], 3174756917, 10); + c6 = fnI(c6, d5, a6, b4, M4[2], 718787259, 15); + b4 = fnI(b4, c6, d5, a6, M4[9], 3951481745, 21); + this._a = this._a + a6 | 0; + this._b = this._b + b4 | 0; + this._c = this._c + c6 | 0; + this._d = this._d + d5 | 0; + }; + MD5.prototype._digest = function() { + this._block[this._blockOffset++] = 128; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; + } + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); + var buffer2 = Buffer2.allocUnsafe(16); + buffer2.writeInt32LE(this._a, 0); + buffer2.writeInt32LE(this._b, 4); + buffer2.writeInt32LE(this._c, 8); + buffer2.writeInt32LE(this._d, 12); + return buffer2; + }; + function rotl(x4, n6) { + return x4 << n6 | x4 >>> 32 - n6; + } + function fnF(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 & c6 | ~b4 & d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnG(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 & d5 | c6 & ~d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnH(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (b4 ^ c6 ^ d5) + m5 + k4 | 0, s6) + b4 | 0; + } + function fnI(a6, b4, c6, d5, m5, k4, s6) { + return rotl(a6 + (c6 ^ (b4 | ~d5)) + m5 + k4 | 0, s6) + b4 | 0; + } + exports$1R = MD5; + return exports$1R; +} +var exports$1Q = {}; +var _dewExec$1P = false; +function dew$1P() { + if (_dewExec$1P) + return exports$1Q; + _dewExec$1P = true; + var Buffer2 = e$1$1.Buffer; + var inherits2 = dew$f$2(); + var HashBase = dew$1R(); + var ARRAY16 = new Array(16); + var zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; + var zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; + var sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; + var sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; + var hl = [0, 1518500249, 1859775393, 2400959708, 2840853838]; + var hr = [1352829926, 1548603684, 1836072691, 2053994217, 0]; + function RIPEMD160() { + HashBase.call(this, 64); + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + } + inherits2(RIPEMD160, HashBase); + RIPEMD160.prototype._update = function() { + var words = ARRAY16; + for (var j4 = 0; j4 < 16; ++j4) + words[j4] = this._block.readInt32LE(j4 * 4); + var al = this._a | 0; + var bl = this._b | 0; + var cl = this._c | 0; + var dl = this._d | 0; + var el = this._e | 0; + var ar = this._a | 0; + var br = this._b | 0; + var cr = this._c | 0; + var dr = this._d | 0; + var er = this._e | 0; + for (var i6 = 0; i6 < 80; i6 += 1) { + var tl; + var tr; + if (i6 < 16) { + tl = fn1(al, bl, cl, dl, el, words[zl[i6]], hl[0], sl[i6]); + tr = fn5(ar, br, cr, dr, er, words[zr[i6]], hr[0], sr[i6]); + } else if (i6 < 32) { + tl = fn2(al, bl, cl, dl, el, words[zl[i6]], hl[1], sl[i6]); + tr = fn4(ar, br, cr, dr, er, words[zr[i6]], hr[1], sr[i6]); + } else if (i6 < 48) { + tl = fn3(al, bl, cl, dl, el, words[zl[i6]], hl[2], sl[i6]); + tr = fn3(ar, br, cr, dr, er, words[zr[i6]], hr[2], sr[i6]); + } else if (i6 < 64) { + tl = fn4(al, bl, cl, dl, el, words[zl[i6]], hl[3], sl[i6]); + tr = fn2(ar, br, cr, dr, er, words[zr[i6]], hr[3], sr[i6]); + } else { + tl = fn5(al, bl, cl, dl, el, words[zl[i6]], hl[4], sl[i6]); + tr = fn1(ar, br, cr, dr, er, words[zr[i6]], hr[4], sr[i6]); + } + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = tl; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = tr; + } + var t6 = this._b + cl + dr | 0; + this._b = this._c + dl + er | 0; + this._c = this._d + el + ar | 0; + this._d = this._e + al + br | 0; + this._e = this._a + bl + cr | 0; + this._a = t6; + }; + RIPEMD160.prototype._digest = function() { + this._block[this._blockOffset++] = 128; + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64); + this._update(); + this._blockOffset = 0; + } + this._block.fill(0, this._blockOffset, 56); + this._block.writeUInt32LE(this._length[0], 56); + this._block.writeUInt32LE(this._length[1], 60); + this._update(); + var buffer2 = Buffer2.alloc ? Buffer2.alloc(20) : new Buffer2(20); + buffer2.writeInt32LE(this._a, 0); + buffer2.writeInt32LE(this._b, 4); + buffer2.writeInt32LE(this._c, 8); + buffer2.writeInt32LE(this._d, 12); + buffer2.writeInt32LE(this._e, 16); + return buffer2; + }; + function rotl(x4, n6) { + return x4 << n6 | x4 >>> 32 - n6; + } + function fn1(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 ^ c6 ^ d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn2(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 & c6 | ~b4 & d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn3(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + ((b4 | ~c6) ^ d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn4(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 & d5 | c6 & ~d5) + m5 + k4 | 0, s6) + e8 | 0; + } + function fn5(a6, b4, c6, d5, e8, m5, k4, s6) { + return rotl(a6 + (b4 ^ (c6 | ~d5)) + m5 + k4 | 0, s6) + e8 | 0; + } + exports$1Q = RIPEMD160; + return exports$1Q; +} +var exports$1P = {}; +var _dewExec$1O = false; +var _global$v = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1O() { + if (_dewExec$1O) + return exports$1P; + _dewExec$1O = true; + var Buffer2 = dew$1T().Buffer; + function Hash2(blockSize, finalSize) { + (this || _global$v)._block = Buffer2.alloc(blockSize); + (this || _global$v)._finalSize = finalSize; + (this || _global$v)._blockSize = blockSize; + (this || _global$v)._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer2.from(data, enc); + } + var block = (this || _global$v)._block; + var blockSize = (this || _global$v)._blockSize; + var length = data.length; + var accum = (this || _global$v)._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i6 = 0; i6 < remainder; i6++) { + block[assigned + i6] = data[offset + i6]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + (this || _global$v)._len += length; + return this || _global$v; + }; + Hash2.prototype.digest = function(enc) { + var rem = (this || _global$v)._len % (this || _global$v)._blockSize; + (this || _global$v)._block[rem] = 128; + (this || _global$v)._block.fill(0, rem + 1); + if (rem >= (this || _global$v)._finalSize) { + this._update((this || _global$v)._block); + (this || _global$v)._block.fill(0); + } + var bits = (this || _global$v)._len * 8; + if (bits <= 4294967295) { + (this || _global$v)._block.writeUInt32BE(bits, (this || _global$v)._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + (this || _global$v)._block.writeUInt32BE(highBits, (this || _global$v)._blockSize - 8); + (this || _global$v)._block.writeUInt32BE(lowBits, (this || _global$v)._blockSize - 4); + } + this._update((this || _global$v)._block); + var hash = this._hash(); + return enc ? hash.toString(enc) : hash; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + exports$1P = Hash2; + return exports$1P; +} +var exports$1O = {}; +var _dewExec$1N = false; +var _global$u = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1N() { + if (_dewExec$1N) + return exports$1O; + _dewExec$1N = true; + var inherits2 = dew$f$2(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var K3 = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0]; + var W3 = new Array(80); + function Sha() { + this.init(); + (this || _global$u)._w = W3; + Hash2.call(this || _global$u, 64, 56); + } + inherits2(Sha, Hash2); + Sha.prototype.init = function() { + (this || _global$u)._a = 1732584193; + (this || _global$u)._b = 4023233417; + (this || _global$u)._c = 2562383102; + (this || _global$u)._d = 271733878; + (this || _global$u)._e = 3285377520; + return this || _global$u; + }; + function rotl5(num) { + return num << 5 | num >>> 27; + } + function rotl30(num) { + return num << 30 | num >>> 2; + } + function ft(s6, b4, c6, d5) { + if (s6 === 0) + return b4 & c6 | ~b4 & d5; + if (s6 === 2) + return b4 & c6 | b4 & d5 | c6 & d5; + return b4 ^ c6 ^ d5; + } + Sha.prototype._update = function(M4) { + var W4 = (this || _global$u)._w; + var a6 = (this || _global$u)._a | 0; + var b4 = (this || _global$u)._b | 0; + var c6 = (this || _global$u)._c | 0; + var d5 = (this || _global$u)._d | 0; + var e8 = (this || _global$u)._e | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 80; ++i6) + W4[i6] = W4[i6 - 3] ^ W4[i6 - 8] ^ W4[i6 - 14] ^ W4[i6 - 16]; + for (var j4 = 0; j4 < 80; ++j4) { + var s6 = ~~(j4 / 20); + var t6 = rotl5(a6) + ft(s6, b4, c6, d5) + e8 + W4[j4] + K3[s6] | 0; + e8 = d5; + d5 = c6; + c6 = rotl30(b4); + b4 = a6; + a6 = t6; + } + (this || _global$u)._a = a6 + (this || _global$u)._a | 0; + (this || _global$u)._b = b4 + (this || _global$u)._b | 0; + (this || _global$u)._c = c6 + (this || _global$u)._c | 0; + (this || _global$u)._d = d5 + (this || _global$u)._d | 0; + (this || _global$u)._e = e8 + (this || _global$u)._e | 0; + }; + Sha.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(20); + H3.writeInt32BE((this || _global$u)._a | 0, 0); + H3.writeInt32BE((this || _global$u)._b | 0, 4); + H3.writeInt32BE((this || _global$u)._c | 0, 8); + H3.writeInt32BE((this || _global$u)._d | 0, 12); + H3.writeInt32BE((this || _global$u)._e | 0, 16); + return H3; + }; + exports$1O = Sha; + return exports$1O; +} +var exports$1N = {}; +var _dewExec$1M = false; +var _global$t = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1M() { + if (_dewExec$1M) + return exports$1N; + _dewExec$1M = true; + var inherits2 = dew$f$2(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var K3 = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0]; + var W3 = new Array(80); + function Sha1() { + this.init(); + (this || _global$t)._w = W3; + Hash2.call(this || _global$t, 64, 56); + } + inherits2(Sha1, Hash2); + Sha1.prototype.init = function() { + (this || _global$t)._a = 1732584193; + (this || _global$t)._b = 4023233417; + (this || _global$t)._c = 2562383102; + (this || _global$t)._d = 271733878; + (this || _global$t)._e = 3285377520; + return this || _global$t; + }; + function rotl1(num) { + return num << 1 | num >>> 31; + } + function rotl5(num) { + return num << 5 | num >>> 27; + } + function rotl30(num) { + return num << 30 | num >>> 2; + } + function ft(s6, b4, c6, d5) { + if (s6 === 0) + return b4 & c6 | ~b4 & d5; + if (s6 === 2) + return b4 & c6 | b4 & d5 | c6 & d5; + return b4 ^ c6 ^ d5; + } + Sha1.prototype._update = function(M4) { + var W4 = (this || _global$t)._w; + var a6 = (this || _global$t)._a | 0; + var b4 = (this || _global$t)._b | 0; + var c6 = (this || _global$t)._c | 0; + var d5 = (this || _global$t)._d | 0; + var e8 = (this || _global$t)._e | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 80; ++i6) + W4[i6] = rotl1(W4[i6 - 3] ^ W4[i6 - 8] ^ W4[i6 - 14] ^ W4[i6 - 16]); + for (var j4 = 0; j4 < 80; ++j4) { + var s6 = ~~(j4 / 20); + var t6 = rotl5(a6) + ft(s6, b4, c6, d5) + e8 + W4[j4] + K3[s6] | 0; + e8 = d5; + d5 = c6; + c6 = rotl30(b4); + b4 = a6; + a6 = t6; + } + (this || _global$t)._a = a6 + (this || _global$t)._a | 0; + (this || _global$t)._b = b4 + (this || _global$t)._b | 0; + (this || _global$t)._c = c6 + (this || _global$t)._c | 0; + (this || _global$t)._d = d5 + (this || _global$t)._d | 0; + (this || _global$t)._e = e8 + (this || _global$t)._e | 0; + }; + Sha1.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(20); + H3.writeInt32BE((this || _global$t)._a | 0, 0); + H3.writeInt32BE((this || _global$t)._b | 0, 4); + H3.writeInt32BE((this || _global$t)._c | 0, 8); + H3.writeInt32BE((this || _global$t)._d | 0, 12); + H3.writeInt32BE((this || _global$t)._e | 0, 16); + return H3; + }; + exports$1N = Sha1; + return exports$1N; +} +var exports$1M = {}; +var _dewExec$1L = false; +var _global$s = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1L() { + if (_dewExec$1L) + return exports$1M; + _dewExec$1L = true; + var inherits2 = dew$f$2(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var K3 = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; + var W3 = new Array(64); + function Sha256() { + this.init(); + (this || _global$s)._w = W3; + Hash2.call(this || _global$s, 64, 56); + } + inherits2(Sha256, Hash2); + Sha256.prototype.init = function() { + (this || _global$s)._a = 1779033703; + (this || _global$s)._b = 3144134277; + (this || _global$s)._c = 1013904242; + (this || _global$s)._d = 2773480762; + (this || _global$s)._e = 1359893119; + (this || _global$s)._f = 2600822924; + (this || _global$s)._g = 528734635; + (this || _global$s)._h = 1541459225; + return this || _global$s; + }; + function ch(x4, y5, z4) { + return z4 ^ x4 & (y5 ^ z4); + } + function maj(x4, y5, z4) { + return x4 & y5 | z4 & (x4 | y5); + } + function sigma0(x4) { + return (x4 >>> 2 | x4 << 30) ^ (x4 >>> 13 | x4 << 19) ^ (x4 >>> 22 | x4 << 10); + } + function sigma1(x4) { + return (x4 >>> 6 | x4 << 26) ^ (x4 >>> 11 | x4 << 21) ^ (x4 >>> 25 | x4 << 7); + } + function gamma0(x4) { + return (x4 >>> 7 | x4 << 25) ^ (x4 >>> 18 | x4 << 14) ^ x4 >>> 3; + } + function gamma1(x4) { + return (x4 >>> 17 | x4 << 15) ^ (x4 >>> 19 | x4 << 13) ^ x4 >>> 10; + } + Sha256.prototype._update = function(M4) { + var W4 = (this || _global$s)._w; + var a6 = (this || _global$s)._a | 0; + var b4 = (this || _global$s)._b | 0; + var c6 = (this || _global$s)._c | 0; + var d5 = (this || _global$s)._d | 0; + var e8 = (this || _global$s)._e | 0; + var f7 = (this || _global$s)._f | 0; + var g4 = (this || _global$s)._g | 0; + var h6 = (this || _global$s)._h | 0; + for (var i6 = 0; i6 < 16; ++i6) + W4[i6] = M4.readInt32BE(i6 * 4); + for (; i6 < 64; ++i6) + W4[i6] = gamma1(W4[i6 - 2]) + W4[i6 - 7] + gamma0(W4[i6 - 15]) + W4[i6 - 16] | 0; + for (var j4 = 0; j4 < 64; ++j4) { + var T1 = h6 + sigma1(e8) + ch(e8, f7, g4) + K3[j4] + W4[j4] | 0; + var T22 = sigma0(a6) + maj(a6, b4, c6) | 0; + h6 = g4; + g4 = f7; + f7 = e8; + e8 = d5 + T1 | 0; + d5 = c6; + c6 = b4; + b4 = a6; + a6 = T1 + T22 | 0; + } + (this || _global$s)._a = a6 + (this || _global$s)._a | 0; + (this || _global$s)._b = b4 + (this || _global$s)._b | 0; + (this || _global$s)._c = c6 + (this || _global$s)._c | 0; + (this || _global$s)._d = d5 + (this || _global$s)._d | 0; + (this || _global$s)._e = e8 + (this || _global$s)._e | 0; + (this || _global$s)._f = f7 + (this || _global$s)._f | 0; + (this || _global$s)._g = g4 + (this || _global$s)._g | 0; + (this || _global$s)._h = h6 + (this || _global$s)._h | 0; + }; + Sha256.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(32); + H3.writeInt32BE((this || _global$s)._a, 0); + H3.writeInt32BE((this || _global$s)._b, 4); + H3.writeInt32BE((this || _global$s)._c, 8); + H3.writeInt32BE((this || _global$s)._d, 12); + H3.writeInt32BE((this || _global$s)._e, 16); + H3.writeInt32BE((this || _global$s)._f, 20); + H3.writeInt32BE((this || _global$s)._g, 24); + H3.writeInt32BE((this || _global$s)._h, 28); + return H3; + }; + exports$1M = Sha256; + return exports$1M; +} +var exports$1L = {}; +var _dewExec$1K = false; +var _global$r = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1K() { + if (_dewExec$1K) + return exports$1L; + _dewExec$1K = true; + var inherits2 = dew$f$2(); + var Sha256 = dew$1L(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var W3 = new Array(64); + function Sha224() { + this.init(); + (this || _global$r)._w = W3; + Hash2.call(this || _global$r, 64, 56); + } + inherits2(Sha224, Sha256); + Sha224.prototype.init = function() { + (this || _global$r)._a = 3238371032; + (this || _global$r)._b = 914150663; + (this || _global$r)._c = 812702999; + (this || _global$r)._d = 4144912697; + (this || _global$r)._e = 4290775857; + (this || _global$r)._f = 1750603025; + (this || _global$r)._g = 1694076839; + (this || _global$r)._h = 3204075428; + return this || _global$r; + }; + Sha224.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(28); + H3.writeInt32BE((this || _global$r)._a, 0); + H3.writeInt32BE((this || _global$r)._b, 4); + H3.writeInt32BE((this || _global$r)._c, 8); + H3.writeInt32BE((this || _global$r)._d, 12); + H3.writeInt32BE((this || _global$r)._e, 16); + H3.writeInt32BE((this || _global$r)._f, 20); + H3.writeInt32BE((this || _global$r)._g, 24); + return H3; + }; + exports$1L = Sha224; + return exports$1L; +} +var exports$1K = {}; +var _dewExec$1J = false; +var _global$q = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1J() { + if (_dewExec$1J) + return exports$1K; + _dewExec$1J = true; + var inherits2 = dew$f$2(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var K3 = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591]; + var W3 = new Array(160); + function Sha512() { + this.init(); + (this || _global$q)._w = W3; + Hash2.call(this || _global$q, 128, 112); + } + inherits2(Sha512, Hash2); + Sha512.prototype.init = function() { + (this || _global$q)._ah = 1779033703; + (this || _global$q)._bh = 3144134277; + (this || _global$q)._ch = 1013904242; + (this || _global$q)._dh = 2773480762; + (this || _global$q)._eh = 1359893119; + (this || _global$q)._fh = 2600822924; + (this || _global$q)._gh = 528734635; + (this || _global$q)._hh = 1541459225; + (this || _global$q)._al = 4089235720; + (this || _global$q)._bl = 2227873595; + (this || _global$q)._cl = 4271175723; + (this || _global$q)._dl = 1595750129; + (this || _global$q)._el = 2917565137; + (this || _global$q)._fl = 725511199; + (this || _global$q)._gl = 4215389547; + (this || _global$q)._hl = 327033209; + return this || _global$q; + }; + function Ch(x4, y5, z4) { + return z4 ^ x4 & (y5 ^ z4); + } + function maj(x4, y5, z4) { + return x4 & y5 | z4 & (x4 | y5); + } + function sigma0(x4, xl) { + return (x4 >>> 28 | xl << 4) ^ (xl >>> 2 | x4 << 30) ^ (xl >>> 7 | x4 << 25); + } + function sigma1(x4, xl) { + return (x4 >>> 14 | xl << 18) ^ (x4 >>> 18 | xl << 14) ^ (xl >>> 9 | x4 << 23); + } + function Gamma0(x4, xl) { + return (x4 >>> 1 | xl << 31) ^ (x4 >>> 8 | xl << 24) ^ x4 >>> 7; + } + function Gamma0l(x4, xl) { + return (x4 >>> 1 | xl << 31) ^ (x4 >>> 8 | xl << 24) ^ (x4 >>> 7 | xl << 25); + } + function Gamma1(x4, xl) { + return (x4 >>> 19 | xl << 13) ^ (xl >>> 29 | x4 << 3) ^ x4 >>> 6; + } + function Gamma1l(x4, xl) { + return (x4 >>> 19 | xl << 13) ^ (xl >>> 29 | x4 << 3) ^ (x4 >>> 6 | xl << 26); + } + function getCarry(a6, b4) { + return a6 >>> 0 < b4 >>> 0 ? 1 : 0; + } + Sha512.prototype._update = function(M4) { + var W4 = (this || _global$q)._w; + var ah = (this || _global$q)._ah | 0; + var bh = (this || _global$q)._bh | 0; + var ch = (this || _global$q)._ch | 0; + var dh = (this || _global$q)._dh | 0; + var eh = (this || _global$q)._eh | 0; + var fh = (this || _global$q)._fh | 0; + var gh = (this || _global$q)._gh | 0; + var hh = (this || _global$q)._hh | 0; + var al = (this || _global$q)._al | 0; + var bl = (this || _global$q)._bl | 0; + var cl = (this || _global$q)._cl | 0; + var dl = (this || _global$q)._dl | 0; + var el = (this || _global$q)._el | 0; + var fl = (this || _global$q)._fl | 0; + var gl = (this || _global$q)._gl | 0; + var hl = (this || _global$q)._hl | 0; + for (var i6 = 0; i6 < 32; i6 += 2) { + W4[i6] = M4.readInt32BE(i6 * 4); + W4[i6 + 1] = M4.readInt32BE(i6 * 4 + 4); + } + for (; i6 < 160; i6 += 2) { + var xh = W4[i6 - 15 * 2]; + var xl = W4[i6 - 15 * 2 + 1]; + var gamma0 = Gamma0(xh, xl); + var gamma0l = Gamma0l(xl, xh); + xh = W4[i6 - 2 * 2]; + xl = W4[i6 - 2 * 2 + 1]; + var gamma1 = Gamma1(xh, xl); + var gamma1l = Gamma1l(xl, xh); + var Wi7h = W4[i6 - 7 * 2]; + var Wi7l = W4[i6 - 7 * 2 + 1]; + var Wi16h = W4[i6 - 16 * 2]; + var Wi16l = W4[i6 - 16 * 2 + 1]; + var Wil = gamma0l + Wi7l | 0; + var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0; + Wil = Wil + gamma1l | 0; + Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0; + Wil = Wil + Wi16l | 0; + Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0; + W4[i6] = Wih; + W4[i6 + 1] = Wil; + } + for (var j4 = 0; j4 < 160; j4 += 2) { + Wih = W4[j4]; + Wil = W4[j4 + 1]; + var majh = maj(ah, bh, ch); + var majl = maj(al, bl, cl); + var sigma0h = sigma0(ah, al); + var sigma0l = sigma0(al, ah); + var sigma1h = sigma1(eh, el); + var sigma1l = sigma1(el, eh); + var Kih = K3[j4]; + var Kil = K3[j4 + 1]; + var chh = Ch(eh, fh, gh); + var chl = Ch(el, fl, gl); + var t1l = hl + sigma1l | 0; + var t1h = hh + sigma1h + getCarry(t1l, hl) | 0; + t1l = t1l + chl | 0; + t1h = t1h + chh + getCarry(t1l, chl) | 0; + t1l = t1l + Kil | 0; + t1h = t1h + Kih + getCarry(t1l, Kil) | 0; + t1l = t1l + Wil | 0; + t1h = t1h + Wih + getCarry(t1l, Wil) | 0; + var t2l = sigma0l + majl | 0; + var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0; + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = dl + t1l | 0; + eh = dh + t1h + getCarry(el, dl) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = t1l + t2l | 0; + ah = t1h + t2h + getCarry(al, t1l) | 0; + } + (this || _global$q)._al = (this || _global$q)._al + al | 0; + (this || _global$q)._bl = (this || _global$q)._bl + bl | 0; + (this || _global$q)._cl = (this || _global$q)._cl + cl | 0; + (this || _global$q)._dl = (this || _global$q)._dl + dl | 0; + (this || _global$q)._el = (this || _global$q)._el + el | 0; + (this || _global$q)._fl = (this || _global$q)._fl + fl | 0; + (this || _global$q)._gl = (this || _global$q)._gl + gl | 0; + (this || _global$q)._hl = (this || _global$q)._hl + hl | 0; + (this || _global$q)._ah = (this || _global$q)._ah + ah + getCarry((this || _global$q)._al, al) | 0; + (this || _global$q)._bh = (this || _global$q)._bh + bh + getCarry((this || _global$q)._bl, bl) | 0; + (this || _global$q)._ch = (this || _global$q)._ch + ch + getCarry((this || _global$q)._cl, cl) | 0; + (this || _global$q)._dh = (this || _global$q)._dh + dh + getCarry((this || _global$q)._dl, dl) | 0; + (this || _global$q)._eh = (this || _global$q)._eh + eh + getCarry((this || _global$q)._el, el) | 0; + (this || _global$q)._fh = (this || _global$q)._fh + fh + getCarry((this || _global$q)._fl, fl) | 0; + (this || _global$q)._gh = (this || _global$q)._gh + gh + getCarry((this || _global$q)._gl, gl) | 0; + (this || _global$q)._hh = (this || _global$q)._hh + hh + getCarry((this || _global$q)._hl, hl) | 0; + }; + Sha512.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(64); + function writeInt64BE(h6, l6, offset) { + H3.writeInt32BE(h6, offset); + H3.writeInt32BE(l6, offset + 4); + } + writeInt64BE((this || _global$q)._ah, (this || _global$q)._al, 0); + writeInt64BE((this || _global$q)._bh, (this || _global$q)._bl, 8); + writeInt64BE((this || _global$q)._ch, (this || _global$q)._cl, 16); + writeInt64BE((this || _global$q)._dh, (this || _global$q)._dl, 24); + writeInt64BE((this || _global$q)._eh, (this || _global$q)._el, 32); + writeInt64BE((this || _global$q)._fh, (this || _global$q)._fl, 40); + writeInt64BE((this || _global$q)._gh, (this || _global$q)._gl, 48); + writeInt64BE((this || _global$q)._hh, (this || _global$q)._hl, 56); + return H3; + }; + exports$1K = Sha512; + return exports$1K; +} +var exports$1J = {}; +var _dewExec$1I = false; +var _global$p = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1I() { + if (_dewExec$1I) + return exports$1J; + _dewExec$1I = true; + var inherits2 = dew$f$2(); + var SHA512 = dew$1J(); + var Hash2 = dew$1O(); + var Buffer2 = dew$1T().Buffer; + var W3 = new Array(160); + function Sha384() { + this.init(); + (this || _global$p)._w = W3; + Hash2.call(this || _global$p, 128, 112); + } + inherits2(Sha384, SHA512); + Sha384.prototype.init = function() { + (this || _global$p)._ah = 3418070365; + (this || _global$p)._bh = 1654270250; + (this || _global$p)._ch = 2438529370; + (this || _global$p)._dh = 355462360; + (this || _global$p)._eh = 1731405415; + (this || _global$p)._fh = 2394180231; + (this || _global$p)._gh = 3675008525; + (this || _global$p)._hh = 1203062813; + (this || _global$p)._al = 3238371032; + (this || _global$p)._bl = 914150663; + (this || _global$p)._cl = 812702999; + (this || _global$p)._dl = 4144912697; + (this || _global$p)._el = 4290775857; + (this || _global$p)._fl = 1750603025; + (this || _global$p)._gl = 1694076839; + (this || _global$p)._hl = 3204075428; + return this || _global$p; + }; + Sha384.prototype._hash = function() { + var H3 = Buffer2.allocUnsafe(48); + function writeInt64BE(h6, l6, offset) { + H3.writeInt32BE(h6, offset); + H3.writeInt32BE(l6, offset + 4); + } + writeInt64BE((this || _global$p)._ah, (this || _global$p)._al, 0); + writeInt64BE((this || _global$p)._bh, (this || _global$p)._bl, 8); + writeInt64BE((this || _global$p)._ch, (this || _global$p)._cl, 16); + writeInt64BE((this || _global$p)._dh, (this || _global$p)._dl, 24); + writeInt64BE((this || _global$p)._eh, (this || _global$p)._el, 32); + writeInt64BE((this || _global$p)._fh, (this || _global$p)._fl, 40); + return H3; + }; + exports$1J = Sha384; + return exports$1J; +} +var exports$1I = {}; +var _dewExec$1H = false; +var module$7 = { + exports: exports$1I +}; +function dew$1H() { + if (_dewExec$1H) + return module$7.exports; + _dewExec$1H = true; + var exports5 = module$7.exports = function SHA(algorithm) { + algorithm = algorithm.toLowerCase(); + var Algorithm = exports5[algorithm]; + if (!Algorithm) + throw new Error(algorithm + " is not supported (we accept pull requests)"); + return new Algorithm(); + }; + exports5.sha = dew$1N(); + exports5.sha1 = dew$1M(); + exports5.sha224 = dew$1K(); + exports5.sha256 = dew$1L(); + exports5.sha384 = dew$1I(); + exports5.sha512 = dew$1J(); + return module$7.exports; +} +var e$g = y.EventEmitter; +var e$1$12 = {}; +var t$c = {}; +function n$q(e8, n6, r6) { + r6 || (r6 = Error); + class o6 extends r6 { + constructor(e9, t6, r7) { + super(function(e10, t7, r8) { + return "string" == typeof n6 ? n6 : n6(e10, t7, r8); + }(e9, t6, r7)); + } + } + o6.prototype.name = r6.name, o6.prototype.code = e8, t$c[e8] = o6; +} +function r$h(e8, t6) { + if (Array.isArray(e8)) { + const n6 = e8.length; + return e8 = e8.map((e9) => String(e9)), n6 > 2 ? `one of ${t6} ${e8.slice(0, n6 - 1).join(", ")}, or ` + e8[n6 - 1] : 2 === n6 ? `one of ${t6} ${e8[0]} or ${e8[1]}` : `of ${t6} ${e8[0]}`; + } + return `of ${t6} ${String(e8)}`; +} +n$q("ERR_INVALID_OPT_VALUE", function(e8, t6) { + return 'The value "' + t6 + '" is invalid for option "' + e8 + '"'; +}, TypeError), n$q("ERR_INVALID_ARG_TYPE", function(e8, t6, n6) { + let o6; + var E4; + let u6; + if ("string" == typeof t6 && (E4 = "not ", t6.substr(0, E4.length) === E4) ? (o6 = "must not be", t6 = t6.replace(/^not /, "")) : o6 = "must be", function(e9, t7, n7) { + return (void 0 === n7 || n7 > e9.length) && (n7 = e9.length), e9.substring(n7 - t7.length, n7) === t7; + }(e8, " argument")) + u6 = `The ${e8} ${o6} ${r$h(t6, "type")}`; + else { + u6 = `The "${e8}" ${function(e9, t7, n7) { + return "number" != typeof n7 && (n7 = 0), !(n7 + t7.length > e9.length) && -1 !== e9.indexOf(t7, n7); + }(e8, ".") ? "property" : "argument"} ${o6} ${r$h(t6, "type")}`; + } + return u6 += `. Received type ${typeof n6}`, u6; +}, TypeError), n$q("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"), n$q("ERR_METHOD_NOT_IMPLEMENTED", function(e8) { + return "The " + e8 + " method is not implemented"; +}), n$q("ERR_STREAM_PREMATURE_CLOSE", "Premature close"), n$q("ERR_STREAM_DESTROYED", function(e8) { + return "Cannot call " + e8 + " after a stream was destroyed"; +}), n$q("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"), n$q("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"), n$q("ERR_STREAM_WRITE_AFTER_END", "write after end"), n$q("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError), n$q("ERR_UNKNOWN_ENCODING", function(e8) { + return "Unknown encoding: " + e8; +}, TypeError), n$q("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"), e$1$12.codes = t$c; +var r$1$1 = function() { + throw new Error("Readable.from is not available in the browser"); +}; +var r$2$1 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function e$2$1(e8) { + try { + if (!r$2$1.localStorage) + return false; + } catch (r6) { + return false; + } + var t6 = r$2$1.localStorage[e8]; + return null != t6 && "true" === String(t6).toLowerCase(); +} +var t$1$1 = function(t6, n6) { + if (e$2$1("noDeprecation")) + return t6; + var o6 = false; + return function() { + if (!o6) { + if (e$2$1("throwDeprecation")) + throw new Error(n6); + e$2$1("traceDeprecation") ? console.trace(n6) : console.warn(n6), o6 = true; + } + return t6.apply(this || r$2$1, arguments); + }; +}; +function u$p(e8, t6) { + var n6 = Object.keys(e8); + if (Object.getOwnPropertySymbols) { + var r6 = Object.getOwnPropertySymbols(e8); + t6 && (r6 = r6.filter(function(t7) { + return Object.getOwnPropertyDescriptor(e8, t7).enumerable; + })), n6.push.apply(n6, r6); + } + return n6; +} +function f$v(e8, t6, n6) { + return t6 in e8 ? Object.defineProperty(e8, t6, { value: n6, enumerable: true, configurable: true, writable: true }) : e8[t6] = n6, e8; +} +function h$l(e8, t6) { + for (var n6 = 0; n6 < t6.length; n6++) { + var r6 = t6[n6]; + r6.enumerable = r6.enumerable || false, r6.configurable = true, "value" in r6 && (r6.writable = true), Object.defineProperty(e8, r6.key, r6); + } +} +var c$n = e$1$1.Buffer; +var b$j = X.inspect; +var p$s = b$j && b$j.custom || "inspect"; +var g$h = function() { + function e8() { + !function(e9, t7) { + if (!(e9 instanceof t7)) + throw new TypeError("Cannot call a class as a function"); + }(this, e8), this.head = null, this.tail = null, this.length = 0; + } + var t6, n6; + return t6 = e8, (n6 = [{ key: "push", value: function(e9) { + var t7 = { data: e9, next: null }; + this.length > 0 ? this.tail.next = t7 : this.head = t7, this.tail = t7, ++this.length; + } }, { key: "unshift", value: function(e9) { + var t7 = { data: e9, next: this.head }; + 0 === this.length && (this.tail = t7), this.head = t7, ++this.length; + } }, { key: "shift", value: function() { + if (0 !== this.length) { + var e9 = this.head.data; + return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, e9; + } + } }, { key: "clear", value: function() { + this.head = this.tail = null, this.length = 0; + } }, { key: "join", value: function(e9) { + if (0 === this.length) + return ""; + for (var t7 = this.head, n7 = "" + t7.data; t7 = t7.next; ) + n7 += e9 + t7.data; + return n7; + } }, { key: "concat", value: function(e9) { + if (0 === this.length) + return c$n.alloc(0); + for (var t7, n7, r6, i6 = c$n.allocUnsafe(e9 >>> 0), a6 = this.head, o6 = 0; a6; ) + t7 = a6.data, n7 = i6, r6 = o6, void c$n.prototype.copy.call(t7, n7, r6), o6 += a6.data.length, a6 = a6.next; + return i6; + } }, { key: "consume", value: function(e9, t7) { + var n7; + return e9 < this.head.data.length ? (n7 = this.head.data.slice(0, e9), this.head.data = this.head.data.slice(e9)) : n7 = e9 === this.head.data.length ? this.shift() : t7 ? this._getString(e9) : this._getBuffer(e9), n7; + } }, { key: "first", value: function() { + return this.head.data; + } }, { key: "_getString", value: function(e9) { + var t7 = this.head, n7 = 1, r6 = t7.data; + for (e9 -= r6.length; t7 = t7.next; ) { + var i6 = t7.data, a6 = e9 > i6.length ? i6.length : e9; + if (a6 === i6.length ? r6 += i6 : r6 += i6.slice(0, e9), 0 == (e9 -= a6)) { + a6 === i6.length ? (++n7, t7.next ? this.head = t7.next : this.head = this.tail = null) : (this.head = t7, t7.data = i6.slice(a6)); + break; + } + ++n7; + } + return this.length -= n7, r6; + } }, { key: "_getBuffer", value: function(e9) { + var t7 = c$n.allocUnsafe(e9), n7 = this.head, r6 = 1; + for (n7.data.copy(t7), e9 -= n7.data.length; n7 = n7.next; ) { + var i6 = n7.data, a6 = e9 > i6.length ? i6.length : e9; + if (i6.copy(t7, t7.length - e9, 0, a6), 0 == (e9 -= a6)) { + a6 === i6.length ? (++r6, n7.next ? this.head = n7.next : this.head = this.tail = null) : (this.head = n7, n7.data = i6.slice(a6)); + break; + } + ++r6; + } + return this.length -= r6, t7; + } }, { key: p$s, value: function(e9, t7) { + return b$j(this, function(e10) { + for (var t8 = 1; t8 < arguments.length; t8++) { + var n7 = null != arguments[t8] ? arguments[t8] : {}; + t8 % 2 ? u$p(Object(n7), true).forEach(function(t9) { + f$v(e10, t9, n7[t9]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e10, Object.getOwnPropertyDescriptors(n7)) : u$p(Object(n7)).forEach(function(t9) { + Object.defineProperty(e10, t9, Object.getOwnPropertyDescriptor(n7, t9)); + }); + } + return e10; + }({}, t7, { depth: 0, customInspect: false })); + } }]) && h$l(t6.prototype, n6), e8; +}(); +var y$n = T; +function w$j(e8, t6) { + _$h(e8, t6), v$k(e8); +} +function v$k(e8) { + e8._writableState && !e8._writableState.emitClose || e8._readableState && !e8._readableState.emitClose || e8.emit("close"); +} +function _$h(e8, t6) { + e8.emit("error", t6); +} +var m$m = { destroy: function(e8, t6) { + var n6 = this, r6 = this._readableState && this._readableState.destroyed, i6 = this._writableState && this._writableState.destroyed; + return r6 || i6 ? (t6 ? t6(e8) : e8 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = true, y$n.nextTick(_$h, this, e8)) : y$n.nextTick(_$h, this, e8)), this) : (this._readableState && (this._readableState.destroyed = true), this._writableState && (this._writableState.destroyed = true), this._destroy(e8 || null, function(e9) { + !t6 && e9 ? n6._writableState ? n6._writableState.errorEmitted ? y$n.nextTick(v$k, n6) : (n6._writableState.errorEmitted = true, y$n.nextTick(w$j, n6, e9)) : y$n.nextTick(w$j, n6, e9) : t6 ? (y$n.nextTick(v$k, n6), t6(e9)) : y$n.nextTick(v$k, n6); + }), this); +}, undestroy: function() { + this._readableState && (this._readableState.destroyed = false, this._readableState.reading = false, this._readableState.ended = false, this._readableState.endEmitted = false), this._writableState && (this._writableState.destroyed = false, this._writableState.ended = false, this._writableState.ending = false, this._writableState.finalCalled = false, this._writableState.prefinished = false, this._writableState.finished = false, this._writableState.errorEmitted = false); +}, errorOrDestroy: function(e8, t6) { + var n6 = e8._readableState, r6 = e8._writableState; + n6 && n6.autoDestroy || r6 && r6.autoDestroy ? e8.destroy(t6) : e8.emit("error", t6); +} }; +var S$e = e$1$12.codes.ERR_INVALID_OPT_VALUE; +var R$7 = { getHighWaterMark: function(e8, t6, n6, r6) { + var i6 = function(e9, t7, n7) { + return null != e9.highWaterMark ? e9.highWaterMark : t7 ? e9[n7] : null; + }(t6, r6, n6); + if (null != i6) { + if (!isFinite(i6) || Math.floor(i6) !== i6 || i6 < 0) + throw new S$e(r6 ? n6 : "highWaterMark", i6); + return Math.floor(i6); + } + return e8.objectMode ? 16 : 16384; +} }; +var k$g = e$1$12.codes.ERR_STREAM_PREMATURE_CLOSE; +function E$e() { +} +var M$a; +var j$a = function e5(t6, n6, r6) { + if ("function" == typeof n6) + return e5(t6, null, n6); + n6 || (n6 = {}), r6 = /* @__PURE__ */ function(e8) { + var t7 = false; + return function() { + if (!t7) { + t7 = true; + for (var n7 = arguments.length, r7 = new Array(n7), i7 = 0; i7 < n7; i7++) + r7[i7] = arguments[i7]; + e8.apply(this, r7); + } + }; + }(r6 || E$e); + var i6 = n6.readable || false !== n6.readable && t6.readable, a6 = n6.writable || false !== n6.writable && t6.writable, o6 = function() { + t6.writable || l6(); + }, s6 = t6._writableState && t6._writableState.finished, l6 = function() { + a6 = false, s6 = true, i6 || r6.call(t6); + }, d5 = t6._readableState && t6._readableState.endEmitted, u6 = function() { + i6 = false, d5 = true, a6 || r6.call(t6); + }, f7 = function(e8) { + r6.call(t6, e8); + }, h6 = function() { + var e8; + return i6 && !d5 ? (t6._readableState && t6._readableState.ended || (e8 = new k$g()), r6.call(t6, e8)) : a6 && !s6 ? (t6._writableState && t6._writableState.ended || (e8 = new k$g()), r6.call(t6, e8)) : void 0; + }, c6 = function() { + t6.req.on("finish", l6); + }; + return !function(e8) { + return e8.setHeader && "function" == typeof e8.abort; + }(t6) ? a6 && !t6._writableState && (t6.on("end", o6), t6.on("close", o6)) : (t6.on("complete", l6), t6.on("abort", h6), t6.req ? c6() : t6.on("request", c6)), t6.on("end", u6), t6.on("finish", l6), false !== n6.error && t6.on("error", f7), t6.on("close", h6), function() { + t6.removeListener("complete", l6), t6.removeListener("abort", h6), t6.removeListener("request", c6), t6.req && t6.req.removeListener("finish", l6), t6.removeListener("end", o6), t6.removeListener("close", o6), t6.removeListener("finish", l6), t6.removeListener("end", u6), t6.removeListener("error", f7), t6.removeListener("close", h6); + }; +}; +var O$8 = T; +function T$8(e8, t6, n6) { + return t6 in e8 ? Object.defineProperty(e8, t6, { value: n6, enumerable: true, configurable: true, writable: true }) : e8[t6] = n6, e8; +} +var P$8 = j$a; +var x$a = Symbol("lastResolve"); +var L$8 = Symbol("lastReject"); +var D$9 = Symbol("error"); +var C$9 = Symbol("ended"); +var A$c = Symbol("lastPromise"); +var q$8 = Symbol("handlePromise"); +var W$5 = Symbol("stream"); +function B$c(e8, t6) { + return { value: e8, done: t6 }; +} +function I$b(e8) { + var t6 = e8[x$a]; + if (null !== t6) { + var n6 = e8[W$5].read(); + null !== n6 && (e8[A$c] = null, e8[x$a] = null, e8[L$8] = null, t6(B$c(n6, false))); + } +} +function N$7(e8) { + O$8.nextTick(I$b, e8); +} +var U$a = Object.getPrototypeOf(function() { +}); +var H$7 = Object.setPrototypeOf((T$8(M$a = { get stream() { + return this[W$5]; +}, next: function() { + var e8 = this, t6 = this[D$9]; + if (null !== t6) + return Promise.reject(t6); + if (this[C$9]) + return Promise.resolve(B$c(void 0, true)); + if (this[W$5].destroyed) + return new Promise(function(t7, n7) { + O$8.nextTick(function() { + e8[D$9] ? n7(e8[D$9]) : t7(B$c(void 0, true)); + }); + }); + var n6, r6 = this[A$c]; + if (r6) + n6 = new Promise(/* @__PURE__ */ function(e9, t7) { + return function(n7, r7) { + e9.then(function() { + if (t7[C$9]) + return n7(B$c(void 0, true)), void 0; + t7[q$8](n7, r7); + }, r7); + }; + }(r6, this)); + else { + var i6 = this[W$5].read(); + if (null !== i6) + return Promise.resolve(B$c(i6, false)); + n6 = new Promise(this[q$8]); + } + return this[A$c] = n6, n6; +} }, Symbol.asyncIterator, function() { + return this; +}), T$8(M$a, "return", function() { + var e8 = this; + return new Promise(function(t6, n6) { + e8[W$5].destroy(null, function(e9) { + if (e9) + return n6(e9), void 0; + t6(B$c(void 0, true)); + }); + }); +}), M$a), U$a); +var F$8 = function(e8) { + var t6, n6 = Object.create(H$7, (T$8(t6 = {}, W$5, { value: e8, writable: true }), T$8(t6, x$a, { value: null, writable: true }), T$8(t6, L$8, { value: null, writable: true }), T$8(t6, D$9, { value: null, writable: true }), T$8(t6, C$9, { value: e8._readableState.endEmitted, writable: true }), T$8(t6, q$8, { value: function(e9, t7) { + var r6 = n6[W$5].read(); + r6 ? (n6[A$c] = null, n6[x$a] = null, n6[L$8] = null, e9(B$c(r6, false))) : (n6[x$a] = e9, n6[L$8] = t7); + }, writable: true }), t6)); + return n6[A$c] = null, P$8(e8, function(e9) { + if (e9 && "ERR_STREAM_PREMATURE_CLOSE" !== e9.code) { + var t7 = n6[L$8]; + return null !== t7 && (n6[A$c] = null, n6[x$a] = null, n6[L$8] = null, t7(e9)), n6[D$9] = e9, void 0; + } + var r6 = n6[x$a]; + null !== r6 && (n6[A$c] = null, n6[x$a] = null, n6[L$8] = null, r6(B$c(void 0, true))), n6[C$9] = true; + }), e8.on("readable", N$7.bind(null, n6)), n6; +}; +var V$6 = {}; +var G$5 = false; +var Y$4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function K$8() { + if (G$5) + return V$6; + G$5 = true; + var d5, u6 = T; + V$6 = C4, C4.ReadableState = D4; + y.EventEmitter; + var f7 = function(e8, t6) { + return e8.listeners(t6).length; + }, h6 = e$g, c6 = e$1$1.Buffer, b4 = Y$4.Uint8Array || function() { + }; + var p6, y5 = X; + p6 = y5 && y5.debuglog ? y5.debuglog("stream") : function() { + }; + var w4, v5, _4, S4 = g$h, k4 = m$m, E4 = R$7.getHighWaterMark, M4 = e$1$12.codes, j4 = M4.ERR_INVALID_ARG_TYPE, O4 = M4.ERR_STREAM_PUSH_AFTER_EOF, T5 = M4.ERR_METHOD_NOT_IMPLEMENTED, P4 = M4.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + t$2(C4, h6); + var x4 = k4.errorOrDestroy, L4 = ["error", "close", "destroy", "pause", "resume"]; + function D4(e8, t6, n6) { + d5 = d5 || ee$1(), e8 = e8 || {}, "boolean" != typeof n6 && (n6 = t6 instanceof d5), this.objectMode = !!e8.objectMode, n6 && (this.objectMode = this.objectMode || !!e8.readableObjectMode), this.highWaterMark = E4(this, e8, "readableHighWaterMark", n6), this.buffer = new S4(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = false, this.endEmitted = false, this.reading = false, this.sync = true, this.needReadable = false, this.emittedReadable = false, this.readableListening = false, this.resumeScheduled = false, this.paused = true, this.emitClose = false !== e8.emitClose, this.autoDestroy = !!e8.autoDestroy, this.destroyed = false, this.defaultEncoding = e8.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = false, this.decoder = null, this.encoding = null, e8.encoding && (w4 || (w4 = e$12.StringDecoder), this.decoder = new w4(e8.encoding), this.encoding = e8.encoding); + } + function C4(e8) { + if (d5 = d5 || ee$1(), !(this instanceof C4)) + return new C4(e8); + var t6 = this instanceof d5; + this._readableState = new D4(e8, this, t6), this.readable = true, e8 && ("function" == typeof e8.read && (this._read = e8.read), "function" == typeof e8.destroy && (this._destroy = e8.destroy)), h6.call(this); + } + function A4(e8, t6, n6, r6, i6) { + p6("readableAddChunk", t6); + var a6, o6 = e8._readableState; + if (null === t6) + o6.reading = false, function(e9, t7) { + if (p6("onEofChunk"), t7.ended) + return; + if (t7.decoder) { + var n7 = t7.decoder.end(); + n7 && n7.length && (t7.buffer.push(n7), t7.length += t7.objectMode ? 1 : n7.length); + } + t7.ended = true, t7.sync ? B4(e9) : (t7.needReadable = false, t7.emittedReadable || (t7.emittedReadable = true, I4(e9))); + }(e8, o6); + else if (i6 || (a6 = function(e9, t7) { + var n7; + r7 = t7, c6.isBuffer(r7) || r7 instanceof b4 || "string" == typeof t7 || void 0 === t7 || e9.objectMode || (n7 = new j4("chunk", ["string", "Buffer", "Uint8Array"], t7)); + var r7; + return n7; + }(o6, t6)), a6) + x4(e8, a6); + else if (o6.objectMode || t6 && t6.length > 0) + if ("string" == typeof t6 || o6.objectMode || Object.getPrototypeOf(t6) === c6.prototype || (t6 = function(e9) { + return c6.from(e9); + }(t6)), r6) + o6.endEmitted ? x4(e8, new P4()) : q3(e8, o6, t6, true); + else if (o6.ended) + x4(e8, new O4()); + else { + if (o6.destroyed) + return false; + o6.reading = false, o6.decoder && !n6 ? (t6 = o6.decoder.write(t6), o6.objectMode || 0 !== t6.length ? q3(e8, o6, t6, false) : N4(e8, o6)) : q3(e8, o6, t6, false); + } + else + r6 || (o6.reading = false, N4(e8, o6)); + return !o6.ended && (o6.length < o6.highWaterMark || 0 === o6.length); + } + function q3(e8, t6, n6, r6) { + t6.flowing && 0 === t6.length && !t6.sync ? (t6.awaitDrain = 0, e8.emit("data", n6)) : (t6.length += t6.objectMode ? 1 : n6.length, r6 ? t6.buffer.unshift(n6) : t6.buffer.push(n6), t6.needReadable && B4(e8)), N4(e8, t6); + } + Object.defineProperty(C4.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._readableState && this._readableState.destroyed; + }, set: function(e8) { + this._readableState && (this._readableState.destroyed = e8); + } }), C4.prototype.destroy = k4.destroy, C4.prototype._undestroy = k4.undestroy, C4.prototype._destroy = function(e8, t6) { + t6(e8); + }, C4.prototype.push = function(e8, t6) { + var n6, r6 = this._readableState; + return r6.objectMode ? n6 = true : "string" == typeof e8 && ((t6 = t6 || r6.defaultEncoding) !== r6.encoding && (e8 = c6.from(e8, t6), t6 = ""), n6 = true), A4(this, e8, t6, false, n6); + }, C4.prototype.unshift = function(e8) { + return A4(this, e8, null, true, false); + }, C4.prototype.isPaused = function() { + return false === this._readableState.flowing; + }, C4.prototype.setEncoding = function(e8) { + w4 || (w4 = e$12.StringDecoder); + var t6 = new w4(e8); + this._readableState.decoder = t6, this._readableState.encoding = this._readableState.decoder.encoding; + for (var n6 = this._readableState.buffer.head, r6 = ""; null !== n6; ) + r6 += t6.write(n6.data), n6 = n6.next; + return this._readableState.buffer.clear(), "" !== r6 && this._readableState.buffer.push(r6), this._readableState.length = r6.length, this; + }; + function W3(e8, t6) { + return e8 <= 0 || 0 === t6.length && t6.ended ? 0 : t6.objectMode ? 1 : e8 != e8 ? t6.flowing && t6.length ? t6.buffer.head.data.length : t6.length : (e8 > t6.highWaterMark && (t6.highWaterMark = function(e9) { + return e9 >= 1073741824 ? e9 = 1073741824 : (e9--, e9 |= e9 >>> 1, e9 |= e9 >>> 2, e9 |= e9 >>> 4, e9 |= e9 >>> 8, e9 |= e9 >>> 16, e9++), e9; + }(e8)), e8 <= t6.length ? e8 : t6.ended ? t6.length : (t6.needReadable = true, 0)); + } + function B4(e8) { + var t6 = e8._readableState; + p6("emitReadable", t6.needReadable, t6.emittedReadable), t6.needReadable = false, t6.emittedReadable || (p6("emitReadable", t6.flowing), t6.emittedReadable = true, u6.nextTick(I4, e8)); + } + function I4(e8) { + var t6 = e8._readableState; + p6("emitReadable_", t6.destroyed, t6.length, t6.ended), t6.destroyed || !t6.length && !t6.ended || (e8.emit("readable"), t6.emittedReadable = false), t6.needReadable = !t6.flowing && !t6.ended && t6.length <= t6.highWaterMark, J3(e8); + } + function N4(e8, t6) { + t6.readingMore || (t6.readingMore = true, u6.nextTick(U4, e8, t6)); + } + function U4(e8, t6) { + for (; !t6.reading && !t6.ended && (t6.length < t6.highWaterMark || t6.flowing && 0 === t6.length); ) { + var n6 = t6.length; + if (p6("maybeReadMore read 0"), e8.read(0), n6 === t6.length) + break; + } + t6.readingMore = false; + } + function H3(e8) { + var t6 = e8._readableState; + t6.readableListening = e8.listenerCount("readable") > 0, t6.resumeScheduled && !t6.paused ? t6.flowing = true : e8.listenerCount("data") > 0 && e8.resume(); + } + function K3(e8) { + p6("readable nexttick read 0"), e8.read(0); + } + function z4(e8, t6) { + p6("resume", t6.reading), t6.reading || e8.read(0), t6.resumeScheduled = false, e8.emit("resume"), J3(e8), t6.flowing && !t6.reading && e8.read(0); + } + function J3(e8) { + var t6 = e8._readableState; + for (p6("flow", t6.flowing); t6.flowing && null !== e8.read(); ) + ; + } + function Q3(e8, t6) { + return 0 === t6.length ? null : (t6.objectMode ? n6 = t6.buffer.shift() : !e8 || e8 >= t6.length ? (n6 = t6.decoder ? t6.buffer.join("") : 1 === t6.buffer.length ? t6.buffer.first() : t6.buffer.concat(t6.length), t6.buffer.clear()) : n6 = t6.buffer.consume(e8, t6.decoder), n6); + var n6; + } + function X3(e8) { + var t6 = e8._readableState; + p6("endReadable", t6.endEmitted), t6.endEmitted || (t6.ended = true, u6.nextTick(Z3, t6, e8)); + } + function Z3(e8, t6) { + if (p6("endReadableNT", e8.endEmitted, e8.length), !e8.endEmitted && 0 === e8.length && (e8.endEmitted = true, t6.readable = false, t6.emit("end"), e8.autoDestroy)) { + var n6 = t6._writableState; + (!n6 || n6.autoDestroy && n6.finished) && t6.destroy(); + } + } + function $3(e8, t6) { + for (var n6 = 0, r6 = e8.length; n6 < r6; n6++) + if (e8[n6] === t6) + return n6; + return -1; + } + return C4.prototype.read = function(e8) { + p6("read", e8), e8 = parseInt(e8, 10); + var t6 = this._readableState, n6 = e8; + if (0 !== e8 && (t6.emittedReadable = false), 0 === e8 && t6.needReadable && ((0 !== t6.highWaterMark ? t6.length >= t6.highWaterMark : t6.length > 0) || t6.ended)) + return p6("read: emitReadable", t6.length, t6.ended), 0 === t6.length && t6.ended ? X3(this) : B4(this), null; + if (0 === (e8 = W3(e8, t6)) && t6.ended) + return 0 === t6.length && X3(this), null; + var r6, i6 = t6.needReadable; + return p6("need readable", i6), (0 === t6.length || t6.length - e8 < t6.highWaterMark) && p6("length less than watermark", i6 = true), t6.ended || t6.reading ? p6("reading or ended", i6 = false) : i6 && (p6("do read"), t6.reading = true, t6.sync = true, 0 === t6.length && (t6.needReadable = true), this._read(t6.highWaterMark), t6.sync = false, t6.reading || (e8 = W3(n6, t6))), null === (r6 = e8 > 0 ? Q3(e8, t6) : null) ? (t6.needReadable = t6.length <= t6.highWaterMark, e8 = 0) : (t6.length -= e8, t6.awaitDrain = 0), 0 === t6.length && (t6.ended || (t6.needReadable = true), n6 !== e8 && t6.ended && X3(this)), null !== r6 && this.emit("data", r6), r6; + }, C4.prototype._read = function(e8) { + x4(this, new T5("_read()")); + }, C4.prototype.pipe = function(e8, t6) { + var n6 = this, r6 = this._readableState; + switch (r6.pipesCount) { + case 0: + r6.pipes = e8; + break; + case 1: + r6.pipes = [r6.pipes, e8]; + break; + default: + r6.pipes.push(e8); + } + r6.pipesCount += 1, p6("pipe count=%d opts=%j", r6.pipesCount, t6); + var i6 = (!t6 || false !== t6.end) && e8 !== u6.stdout && e8 !== u6.stderr ? o6 : g4; + function a6(t7, i7) { + p6("onunpipe"), t7 === n6 && i7 && false === i7.hasUnpiped && (i7.hasUnpiped = true, p6("cleanup"), e8.removeListener("close", c7), e8.removeListener("finish", b5), e8.removeListener("drain", s6), e8.removeListener("error", h7), e8.removeListener("unpipe", a6), n6.removeListener("end", o6), n6.removeListener("end", g4), n6.removeListener("data", d6), l6 = true, !r6.awaitDrain || e8._writableState && !e8._writableState.needDrain || s6()); + } + function o6() { + p6("onend"), e8.end(); + } + r6.endEmitted ? u6.nextTick(i6) : n6.once("end", i6), e8.on("unpipe", a6); + var s6 = /* @__PURE__ */ function(e9) { + return function() { + var t7 = e9._readableState; + p6("pipeOnDrain", t7.awaitDrain), t7.awaitDrain && t7.awaitDrain--, 0 === t7.awaitDrain && f7(e9, "data") && (t7.flowing = true, J3(e9)); + }; + }(n6); + e8.on("drain", s6); + var l6 = false; + function d6(t7) { + p6("ondata"); + var i7 = e8.write(t7); + p6("dest.write", i7), false === i7 && ((1 === r6.pipesCount && r6.pipes === e8 || r6.pipesCount > 1 && -1 !== $3(r6.pipes, e8)) && !l6 && (p6("false write response, pause", r6.awaitDrain), r6.awaitDrain++), n6.pause()); + } + function h7(t7) { + p6("onerror", t7), g4(), e8.removeListener("error", h7), 0 === f7(e8, "error") && x4(e8, t7); + } + function c7() { + e8.removeListener("finish", b5), g4(); + } + function b5() { + p6("onfinish"), e8.removeListener("close", c7), g4(); + } + function g4() { + p6("unpipe"), n6.unpipe(e8); + } + return n6.on("data", d6), function(e9, t7, n7) { + if ("function" == typeof e9.prependListener) + return e9.prependListener(t7, n7); + e9._events && e9._events[t7] ? Array.isArray(e9._events[t7]) ? e9._events[t7].unshift(n7) : e9._events[t7] = [n7, e9._events[t7]] : e9.on(t7, n7); + }(e8, "error", h7), e8.once("close", c7), e8.once("finish", b5), e8.emit("pipe", n6), r6.flowing || (p6("pipe resume"), n6.resume()), e8; + }, C4.prototype.unpipe = function(e8) { + var t6 = this._readableState, n6 = { hasUnpiped: false }; + if (0 === t6.pipesCount) + return this; + if (1 === t6.pipesCount) + return e8 && e8 !== t6.pipes || (e8 || (e8 = t6.pipes), t6.pipes = null, t6.pipesCount = 0, t6.flowing = false, e8 && e8.emit("unpipe", this, n6)), this; + if (!e8) { + var r6 = t6.pipes, i6 = t6.pipesCount; + t6.pipes = null, t6.pipesCount = 0, t6.flowing = false; + for (var a6 = 0; a6 < i6; a6++) + r6[a6].emit("unpipe", this, { hasUnpiped: false }); + return this; + } + var o6 = $3(t6.pipes, e8); + return -1 === o6 || (t6.pipes.splice(o6, 1), t6.pipesCount -= 1, 1 === t6.pipesCount && (t6.pipes = t6.pipes[0]), e8.emit("unpipe", this, n6)), this; + }, C4.prototype.on = function(e8, t6) { + var n6 = h6.prototype.on.call(this, e8, t6), r6 = this._readableState; + return "data" === e8 ? (r6.readableListening = this.listenerCount("readable") > 0, false !== r6.flowing && this.resume()) : "readable" === e8 && (r6.endEmitted || r6.readableListening || (r6.readableListening = r6.needReadable = true, r6.flowing = false, r6.emittedReadable = false, p6("on readable", r6.length, r6.reading), r6.length ? B4(this) : r6.reading || u6.nextTick(K3, this))), n6; + }, C4.prototype.addListener = C4.prototype.on, C4.prototype.removeListener = function(e8, t6) { + var n6 = h6.prototype.removeListener.call(this, e8, t6); + return "readable" === e8 && u6.nextTick(H3, this), n6; + }, C4.prototype.removeAllListeners = function(e8) { + var t6 = h6.prototype.removeAllListeners.apply(this, arguments); + return "readable" !== e8 && void 0 !== e8 || u6.nextTick(H3, this), t6; + }, C4.prototype.resume = function() { + var e8 = this._readableState; + return e8.flowing || (p6("resume"), e8.flowing = !e8.readableListening, function(e9, t6) { + t6.resumeScheduled || (t6.resumeScheduled = true, u6.nextTick(z4, e9, t6)); + }(this, e8)), e8.paused = false, this; + }, C4.prototype.pause = function() { + return p6("call pause flowing=%j", this._readableState.flowing), false !== this._readableState.flowing && (p6("pause"), this._readableState.flowing = false, this.emit("pause")), this._readableState.paused = true, this; + }, C4.prototype.wrap = function(e8) { + var t6 = this, n6 = this._readableState, r6 = false; + for (var i6 in e8.on("end", function() { + if (p6("wrapped end"), n6.decoder && !n6.ended) { + var e9 = n6.decoder.end(); + e9 && e9.length && t6.push(e9); + } + t6.push(null); + }), e8.on("data", function(i7) { + (p6("wrapped data"), n6.decoder && (i7 = n6.decoder.write(i7)), n6.objectMode && null == i7) || (n6.objectMode || i7 && i7.length) && (t6.push(i7) || (r6 = true, e8.pause())); + }), e8) + void 0 === this[i6] && "function" == typeof e8[i6] && (this[i6] = /* @__PURE__ */ function(t7) { + return function() { + return e8[t7].apply(e8, arguments); + }; + }(i6)); + for (var a6 = 0; a6 < L4.length; a6++) + e8.on(L4[a6], this.emit.bind(this, L4[a6])); + return this._read = function(t7) { + p6("wrapped _read", t7), r6 && (r6 = false, e8.resume()); + }, this; + }, "function" == typeof Symbol && (C4.prototype[Symbol.asyncIterator] = function() { + return void 0 === v5 && (v5 = F$8), v5(this); + }), Object.defineProperty(C4.prototype, "readableHighWaterMark", { enumerable: false, get: function() { + return this._readableState.highWaterMark; + } }), Object.defineProperty(C4.prototype, "readableBuffer", { enumerable: false, get: function() { + return this._readableState && this._readableState.buffer; + } }), Object.defineProperty(C4.prototype, "readableFlowing", { enumerable: false, get: function() { + return this._readableState.flowing; + }, set: function(e8) { + this._readableState && (this._readableState.flowing = e8); + } }), C4._fromList = Q3, Object.defineProperty(C4.prototype, "readableLength", { enumerable: false, get: function() { + return this._readableState.length; + } }), "function" == typeof Symbol && (C4.from = function(e8, t6) { + return void 0 === _4 && (_4 = r$1$1), _4(C4, e8, t6); + }), V$6; +} +var z$9 = {}; +var J$5 = false; +var Q$4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function X$4() { + if (J$5) + return z$9; + J$5 = true; + var e$22, r6 = T; + function s6(e8) { + var t6 = this; + this.next = null, this.entry = null, this.finish = function() { + !function(e9, t7, n6) { + var r7 = e9.entry; + e9.entry = null; + for (; r7; ) { + var i6 = r7.callback; + t7.pendingcb--, i6(n6), r7 = r7.next; + } + t7.corkedRequestsFree.next = e9; + }(t6, e8); + }; + } + z$9 = P4, P4.WritableState = T5; + var l6 = { deprecate: t$1$1 }, u6 = e$g, f7 = e$1$1.Buffer, h6 = Q$4.Uint8Array || function() { + }; + var c6, b4 = m$m, p6 = R$7.getHighWaterMark, g4 = e$1$12.codes, y5 = g4.ERR_INVALID_ARG_TYPE, w4 = g4.ERR_METHOD_NOT_IMPLEMENTED, v5 = g4.ERR_MULTIPLE_CALLBACK, _4 = g4.ERR_STREAM_CANNOT_PIPE, S4 = g4.ERR_STREAM_DESTROYED, k4 = g4.ERR_STREAM_NULL_VALUES, E4 = g4.ERR_STREAM_WRITE_AFTER_END, M4 = g4.ERR_UNKNOWN_ENCODING, j4 = b4.errorOrDestroy; + function O4() { + } + function T5(t6, n6, i6) { + e$22 = e$22 || ee$1(), t6 = t6 || {}, "boolean" != typeof i6 && (i6 = n6 instanceof e$22), this.objectMode = !!t6.objectMode, i6 && (this.objectMode = this.objectMode || !!t6.writableObjectMode), this.highWaterMark = p6(this, t6, "writableHighWaterMark", i6), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false; + var a6 = false === t6.decodeStrings; + this.decodeStrings = !a6, this.defaultEncoding = t6.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = function(e8) { + !function(e9, t7) { + var n7 = e9._writableState, i7 = n7.sync, a7 = n7.writecb; + if ("function" != typeof a7) + throw new v5(); + if (function(e10) { + e10.writing = false, e10.writecb = null, e10.length -= e10.writelen, e10.writelen = 0; + }(n7), t7) + !function(e10, t8, n8, i8, a8) { + --t8.pendingcb, n8 ? (r6.nextTick(a8, i8), r6.nextTick(q3, e10, t8), e10._writableState.errorEmitted = true, j4(e10, i8)) : (a8(i8), e10._writableState.errorEmitted = true, j4(e10, i8), q3(e10, t8)); + }(e9, n7, i7, t7, a7); + else { + var o6 = C4(n7) || e9.destroyed; + o6 || n7.corked || n7.bufferProcessing || !n7.bufferedRequest || D4(e9, n7), i7 ? r6.nextTick(L4, e9, n7, o6, a7) : L4(e9, n7, o6, a7); + } + }(n6, e8); + }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = false, this.errorEmitted = false, this.emitClose = false !== t6.emitClose, this.autoDestroy = !!t6.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new s6(this); + } + function P4(t6) { + var n6 = this instanceof (e$22 = e$22 || ee$1()); + if (!n6 && !c6.call(P4, this)) + return new P4(t6); + this._writableState = new T5(t6, this, n6), this.writable = true, t6 && ("function" == typeof t6.write && (this._write = t6.write), "function" == typeof t6.writev && (this._writev = t6.writev), "function" == typeof t6.destroy && (this._destroy = t6.destroy), "function" == typeof t6.final && (this._final = t6.final)), u6.call(this); + } + function x4(e8, t6, n6, r7, i6, a6, o6) { + t6.writelen = r7, t6.writecb = o6, t6.writing = true, t6.sync = true, t6.destroyed ? t6.onwrite(new S4("write")) : n6 ? e8._writev(i6, t6.onwrite) : e8._write(i6, a6, t6.onwrite), t6.sync = false; + } + function L4(e8, t6, n6, r7) { + n6 || !function(e9, t7) { + 0 === t7.length && t7.needDrain && (t7.needDrain = false, e9.emit("drain")); + }(e8, t6), t6.pendingcb--, r7(), q3(e8, t6); + } + function D4(e8, t6) { + t6.bufferProcessing = true; + var n6 = t6.bufferedRequest; + if (e8._writev && n6 && n6.next) { + var r7 = t6.bufferedRequestCount, i6 = new Array(r7), a6 = t6.corkedRequestsFree; + a6.entry = n6; + for (var o6 = 0, l7 = true; n6; ) + i6[o6] = n6, n6.isBuf || (l7 = false), n6 = n6.next, o6 += 1; + i6.allBuffers = l7, x4(e8, t6, true, t6.length, i6, "", a6.finish), t6.pendingcb++, t6.lastBufferedRequest = null, a6.next ? (t6.corkedRequestsFree = a6.next, a6.next = null) : t6.corkedRequestsFree = new s6(t6), t6.bufferedRequestCount = 0; + } else { + for (; n6; ) { + var d5 = n6.chunk, u7 = n6.encoding, f8 = n6.callback; + if (x4(e8, t6, false, t6.objectMode ? 1 : d5.length, d5, u7, f8), n6 = n6.next, t6.bufferedRequestCount--, t6.writing) + break; + } + null === n6 && (t6.lastBufferedRequest = null); + } + t6.bufferedRequest = n6, t6.bufferProcessing = false; + } + function C4(e8) { + return e8.ending && 0 === e8.length && null === e8.bufferedRequest && !e8.finished && !e8.writing; + } + function A4(e8, t6) { + e8._final(function(n6) { + t6.pendingcb--, n6 && j4(e8, n6), t6.prefinished = true, e8.emit("prefinish"), q3(e8, t6); + }); + } + function q3(e8, t6) { + var n6 = C4(t6); + if (n6 && (!function(e9, t7) { + t7.prefinished || t7.finalCalled || ("function" != typeof e9._final || t7.destroyed ? (t7.prefinished = true, e9.emit("prefinish")) : (t7.pendingcb++, t7.finalCalled = true, r6.nextTick(A4, e9, t7))); + }(e8, t6), 0 === t6.pendingcb && (t6.finished = true, e8.emit("finish"), t6.autoDestroy))) { + var i6 = e8._readableState; + (!i6 || i6.autoDestroy && i6.endEmitted) && e8.destroy(); + } + return n6; + } + return t$2(P4, u6), T5.prototype.getBuffer = function() { + for (var e8 = this.bufferedRequest, t6 = []; e8; ) + t6.push(e8), e8 = e8.next; + return t6; + }, function() { + try { + Object.defineProperty(T5.prototype, "buffer", { get: l6.deprecate(function() { + return this.getBuffer(); + }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") }); + } catch (e8) { + } + }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (c6 = Function.prototype[Symbol.hasInstance], Object.defineProperty(P4, Symbol.hasInstance, { value: function(e8) { + return !!c6.call(this, e8) || this === P4 && (e8 && e8._writableState instanceof T5); + } })) : c6 = function(e8) { + return e8 instanceof this; + }, P4.prototype.pipe = function() { + j4(this, new _4()); + }, P4.prototype.write = function(e8, t6, n6) { + var i6, a6 = this._writableState, o6 = false, s7 = !a6.objectMode && (i6 = e8, f7.isBuffer(i6) || i6 instanceof h6); + return s7 && !f7.isBuffer(e8) && (e8 = function(e9) { + return f7.from(e9); + }(e8)), "function" == typeof t6 && (n6 = t6, t6 = null), s7 ? t6 = "buffer" : t6 || (t6 = a6.defaultEncoding), "function" != typeof n6 && (n6 = O4), a6.ending ? function(e9, t7) { + var n7 = new E4(); + j4(e9, n7), r6.nextTick(t7, n7); + }(this, n6) : (s7 || function(e9, t7, n7, i7) { + var a7; + return null === n7 ? a7 = new k4() : "string" == typeof n7 || t7.objectMode || (a7 = new y5("chunk", ["string", "Buffer"], n7)), !a7 || (j4(e9, a7), r6.nextTick(i7, a7), false); + }(this, a6, e8, n6)) && (a6.pendingcb++, o6 = function(e9, t7, n7, r7, i7, a7) { + if (!n7) { + var o7 = function(e10, t8, n8) { + e10.objectMode || false === e10.decodeStrings || "string" != typeof t8 || (t8 = f7.from(t8, n8)); + return t8; + }(t7, r7, i7); + r7 !== o7 && (n7 = true, i7 = "buffer", r7 = o7); + } + var s8 = t7.objectMode ? 1 : r7.length; + t7.length += s8; + var l7 = t7.length < t7.highWaterMark; + l7 || (t7.needDrain = true); + if (t7.writing || t7.corked) { + var d5 = t7.lastBufferedRequest; + t7.lastBufferedRequest = { chunk: r7, encoding: i7, isBuf: n7, callback: a7, next: null }, d5 ? d5.next = t7.lastBufferedRequest : t7.bufferedRequest = t7.lastBufferedRequest, t7.bufferedRequestCount += 1; + } else + x4(e9, t7, false, s8, r7, i7, a7); + return l7; + }(this, a6, s7, e8, t6, n6)), o6; + }, P4.prototype.cork = function() { + this._writableState.corked++; + }, P4.prototype.uncork = function() { + var e8 = this._writableState; + e8.corked && (e8.corked--, e8.writing || e8.corked || e8.bufferProcessing || !e8.bufferedRequest || D4(this, e8)); + }, P4.prototype.setDefaultEncoding = function(e8) { + if ("string" == typeof e8 && (e8 = e8.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e8 + "").toLowerCase()) > -1)) + throw new M4(e8); + return this._writableState.defaultEncoding = e8, this; + }, Object.defineProperty(P4.prototype, "writableBuffer", { enumerable: false, get: function() { + return this._writableState && this._writableState.getBuffer(); + } }), Object.defineProperty(P4.prototype, "writableHighWaterMark", { enumerable: false, get: function() { + return this._writableState.highWaterMark; + } }), P4.prototype._write = function(e8, t6, n6) { + n6(new w4("_write()")); + }, P4.prototype._writev = null, P4.prototype.end = function(e8, t6, n6) { + var i6 = this._writableState; + return "function" == typeof e8 ? (n6 = e8, e8 = null, t6 = null) : "function" == typeof t6 && (n6 = t6, t6 = null), null != e8 && this.write(e8, t6), i6.corked && (i6.corked = 1, this.uncork()), i6.ending || function(e9, t7, n7) { + t7.ending = true, q3(e9, t7), n7 && (t7.finished ? r6.nextTick(n7) : e9.once("finish", n7)); + t7.ended = true, e9.writable = false; + }(this, i6, n6), this; + }, Object.defineProperty(P4.prototype, "writableLength", { enumerable: false, get: function() { + return this._writableState.length; + } }), Object.defineProperty(P4.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._writableState && this._writableState.destroyed; + }, set: function(e8) { + this._writableState && (this._writableState.destroyed = e8); + } }), P4.prototype.destroy = b4.destroy, P4.prototype._undestroy = b4.undestroy, P4.prototype._destroy = function(e8, t6) { + t6(e8); + }, z$9; +} +var Z$3 = {}; +var $$3 = false; +function ee$1() { + if ($$3) + return Z$3; + $$3 = true; + var e8 = T, t6 = Object.keys || function(e9) { + var t7 = []; + for (var n7 in e9) + t7.push(n7); + return t7; + }; + Z$3 = d5; + var n6 = K$8(), r6 = X$4(); + t$2(d5, n6); + for (var a6 = t6(r6.prototype), s6 = 0; s6 < a6.length; s6++) { + var l6 = a6[s6]; + d5.prototype[l6] || (d5.prototype[l6] = r6.prototype[l6]); + } + function d5(e9) { + if (!(this instanceof d5)) + return new d5(e9); + n6.call(this, e9), r6.call(this, e9), this.allowHalfOpen = true, e9 && (false === e9.readable && (this.readable = false), false === e9.writable && (this.writable = false), false === e9.allowHalfOpen && (this.allowHalfOpen = false, this.once("end", u6))); + } + function u6() { + this._writableState.ended || e8.nextTick(f7, this); + } + function f7(e9) { + e9.end(); + } + return Object.defineProperty(d5.prototype, "writableHighWaterMark", { enumerable: false, get: function() { + return this._writableState.highWaterMark; + } }), Object.defineProperty(d5.prototype, "writableBuffer", { enumerable: false, get: function() { + return this._writableState && this._writableState.getBuffer(); + } }), Object.defineProperty(d5.prototype, "writableLength", { enumerable: false, get: function() { + return this._writableState.length; + } }), Object.defineProperty(d5.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed && this._writableState.destroyed); + }, set: function(e9) { + void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = e9, this._writableState.destroyed = e9); + } }), Z$3; +} +var t$2$1 = K$8(); +var r$3$1 = e$1$12.codes.ERR_STREAM_PREMATURE_CLOSE; +function t$3$1() { +} +var n$1$12 = function e6(n6, o6, a6) { + if ("function" == typeof o6) + return e6(n6, null, o6); + o6 || (o6 = {}), a6 = /* @__PURE__ */ function(e8) { + var r6 = false; + return function() { + if (!r6) { + r6 = true; + for (var t6 = arguments.length, n7 = new Array(t6), o7 = 0; o7 < t6; o7++) + n7[o7] = arguments[o7]; + e8.apply(this, n7); + } + }; + }(a6 || t$3$1); + var i6 = o6.readable || false !== o6.readable && n6.readable, l6 = o6.writable || false !== o6.writable && n6.writable, c6 = function() { + n6.writable || s6(); + }, f7 = n6._writableState && n6._writableState.finished, s6 = function() { + l6 = false, f7 = true, i6 || a6.call(n6); + }, u6 = n6._readableState && n6._readableState.endEmitted, d5 = function() { + i6 = false, u6 = true, l6 || a6.call(n6); + }, b4 = function(e8) { + a6.call(n6, e8); + }, v5 = function() { + var e8; + return i6 && !u6 ? (n6._readableState && n6._readableState.ended || (e8 = new r$3$1()), a6.call(n6, e8)) : l6 && !f7 ? (n6._writableState && n6._writableState.ended || (e8 = new r$3$1()), a6.call(n6, e8)) : void 0; + }, m5 = function() { + n6.req.on("finish", s6); + }; + return !function(e8) { + return e8.setHeader && "function" == typeof e8.abort; + }(n6) ? l6 && !n6._writableState && (n6.on("end", c6), n6.on("close", c6)) : (n6.on("complete", s6), n6.on("abort", v5), n6.req ? m5() : n6.on("request", m5)), n6.on("end", d5), n6.on("finish", s6), false !== o6.error && n6.on("error", b4), n6.on("close", v5), function() { + n6.removeListener("complete", s6), n6.removeListener("abort", v5), n6.removeListener("request", m5), n6.req && n6.req.removeListener("finish", s6), n6.removeListener("end", c6), n6.removeListener("close", c6), n6.removeListener("finish", s6), n6.removeListener("end", d5), n6.removeListener("error", b4), n6.removeListener("close", v5); + }; +}; +function f$1$1(e8, t6) { + var n6 = Object.keys(e8); + if (Object.getOwnPropertySymbols) { + var r6 = Object.getOwnPropertySymbols(e8); + t6 && (r6 = r6.filter(function(t7) { + return Object.getOwnPropertyDescriptor(e8, t7).enumerable; + })), n6.push.apply(n6, r6); + } + return n6; +} +function h$1$12(e8, t6, n6) { + return t6 in e8 ? Object.defineProperty(e8, t6, { value: n6, enumerable: true, configurable: true, writable: true }) : e8[t6] = n6, e8; +} +function c$1$12(e8, t6) { + for (var n6 = 0; n6 < t6.length; n6++) { + var r6 = t6[n6]; + r6.enumerable = r6.enumerable || false, r6.configurable = true, "value" in r6 && (r6.writable = true), Object.defineProperty(e8, r6.key, r6); + } +} +var b$1$1 = e$1$1.Buffer; +var p$1$1 = X.inspect; +var g$1$1 = p$1$1 && p$1$1.custom || "inspect"; +var y$1$1 = function() { + function e8() { + !function(e9, t7) { + if (!(e9 instanceof t7)) + throw new TypeError("Cannot call a class as a function"); + }(this, e8), this.head = null, this.tail = null, this.length = 0; + } + var t6, n6; + return t6 = e8, (n6 = [{ key: "push", value: function(e9) { + var t7 = { data: e9, next: null }; + this.length > 0 ? this.tail.next = t7 : this.head = t7, this.tail = t7, ++this.length; + } }, { key: "unshift", value: function(e9) { + var t7 = { data: e9, next: this.head }; + 0 === this.length && (this.tail = t7), this.head = t7, ++this.length; + } }, { key: "shift", value: function() { + if (0 !== this.length) { + var e9 = this.head.data; + return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, e9; + } + } }, { key: "clear", value: function() { + this.head = this.tail = null, this.length = 0; + } }, { key: "join", value: function(e9) { + if (0 === this.length) + return ""; + for (var t7 = this.head, n7 = "" + t7.data; t7 = t7.next; ) + n7 += e9 + t7.data; + return n7; + } }, { key: "concat", value: function(e9) { + if (0 === this.length) + return b$1$1.alloc(0); + for (var t7, n7, r6, i6 = b$1$1.allocUnsafe(e9 >>> 0), a6 = this.head, o6 = 0; a6; ) + t7 = a6.data, n7 = i6, r6 = o6, void b$1$1.prototype.copy.call(t7, n7, r6), o6 += a6.data.length, a6 = a6.next; + return i6; + } }, { key: "consume", value: function(e9, t7) { + var n7; + return e9 < this.head.data.length ? (n7 = this.head.data.slice(0, e9), this.head.data = this.head.data.slice(e9)) : n7 = e9 === this.head.data.length ? this.shift() : t7 ? this._getString(e9) : this._getBuffer(e9), n7; + } }, { key: "first", value: function() { + return this.head.data; + } }, { key: "_getString", value: function(e9) { + var t7 = this.head, n7 = 1, r6 = t7.data; + for (e9 -= r6.length; t7 = t7.next; ) { + var i6 = t7.data, a6 = e9 > i6.length ? i6.length : e9; + if (a6 === i6.length ? r6 += i6 : r6 += i6.slice(0, e9), 0 == (e9 -= a6)) { + a6 === i6.length ? (++n7, t7.next ? this.head = t7.next : this.head = this.tail = null) : (this.head = t7, t7.data = i6.slice(a6)); + break; + } + ++n7; + } + return this.length -= n7, r6; + } }, { key: "_getBuffer", value: function(e9) { + var t7 = b$1$1.allocUnsafe(e9), n7 = this.head, r6 = 1; + for (n7.data.copy(t7), e9 -= n7.data.length; n7 = n7.next; ) { + var i6 = n7.data, a6 = e9 > i6.length ? i6.length : e9; + if (i6.copy(t7, t7.length - e9, 0, a6), 0 == (e9 -= a6)) { + a6 === i6.length ? (++r6, n7.next ? this.head = n7.next : this.head = this.tail = null) : (this.head = n7, n7.data = i6.slice(a6)); + break; + } + ++r6; + } + return this.length -= r6, t7; + } }, { key: g$1$1, value: function(e9, t7) { + return p$1$1(this, function(e10) { + for (var t8 = 1; t8 < arguments.length; t8++) { + var n7 = null != arguments[t8] ? arguments[t8] : {}; + t8 % 2 ? f$1$1(Object(n7), true).forEach(function(t9) { + h$1$12(e10, t9, n7[t9]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e10, Object.getOwnPropertyDescriptors(n7)) : f$1$1(Object(n7)).forEach(function(t9) { + Object.defineProperty(e10, t9, Object.getOwnPropertyDescriptor(n7, t9)); + }); + } + return e10; + }({}, t7, { depth: 0, customInspect: false })); + } }]) && c$1$12(t6.prototype, n6), e8; +}(); +var w$1$1 = T; +function _$1$1(e8, t6) { + m$1$1(e8, t6), v$1$1(e8); +} +function v$1$1(e8) { + e8._writableState && !e8._writableState.emitClose || e8._readableState && !e8._readableState.emitClose || e8.emit("close"); +} +function m$1$1(e8, t6) { + e8.emit("error", t6); +} +var S$1$1 = { destroy: function(e8, t6) { + var n6 = this, r6 = this._readableState && this._readableState.destroyed, i6 = this._writableState && this._writableState.destroyed; + return r6 || i6 ? (t6 ? t6(e8) : e8 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = true, w$1$1.nextTick(m$1$1, this, e8)) : w$1$1.nextTick(m$1$1, this, e8)), this) : (this._readableState && (this._readableState.destroyed = true), this._writableState && (this._writableState.destroyed = true), this._destroy(e8 || null, function(e9) { + !t6 && e9 ? n6._writableState ? n6._writableState.errorEmitted ? w$1$1.nextTick(v$1$1, n6) : (n6._writableState.errorEmitted = true, w$1$1.nextTick(_$1$1, n6, e9)) : w$1$1.nextTick(_$1$1, n6, e9) : t6 ? (w$1$1.nextTick(v$1$1, n6), t6(e9)) : w$1$1.nextTick(v$1$1, n6); + }), this); +}, undestroy: function() { + this._readableState && (this._readableState.destroyed = false, this._readableState.reading = false, this._readableState.ended = false, this._readableState.endEmitted = false), this._writableState && (this._writableState.destroyed = false, this._writableState.ended = false, this._writableState.ending = false, this._writableState.finalCalled = false, this._writableState.prefinished = false, this._writableState.finished = false, this._writableState.errorEmitted = false); +}, errorOrDestroy: function(e8, t6) { + var n6 = e8._readableState, r6 = e8._writableState; + n6 && n6.autoDestroy || r6 && r6.autoDestroy ? e8.destroy(t6) : e8.emit("error", t6); +} }; +var R$1$1 = e$1$12.codes.ERR_INVALID_OPT_VALUE; +var k$1$1; +var E$1$1 = { getHighWaterMark: function(e8, t6, n6, r6) { + var i6 = function(e9, t7, n7) { + return null != e9.highWaterMark ? e9.highWaterMark : t7 ? e9[n7] : null; + }(t6, r6, n6); + if (null != i6) { + if (!isFinite(i6) || Math.floor(i6) !== i6 || i6 < 0) + throw new R$1$1(r6 ? n6 : "highWaterMark", i6); + return Math.floor(i6); + } + return e8.objectMode ? 16 : 16384; +} }; +var M$1$1 = T; +function j$1$1(e8, t6, n6) { + return t6 in e8 ? Object.defineProperty(e8, t6, { value: n6, enumerable: true, configurable: true, writable: true }) : e8[t6] = n6, e8; +} +var O$1$1 = n$1$12; +var T$1$1 = Symbol("lastResolve"); +var x$1$1 = Symbol("lastReject"); +var P$1$1 = Symbol("error"); +var D$1$1 = Symbol("ended"); +var L$1$1 = Symbol("lastPromise"); +var C$1$1 = Symbol("handlePromise"); +var A$1$1 = Symbol("stream"); +function W$1$1(e8, t6) { + return { value: e8, done: t6 }; +} +function B$1$1(e8) { + var t6 = e8[T$1$1]; + if (null !== t6) { + var n6 = e8[A$1$1].read(); + null !== n6 && (e8[L$1$1] = null, e8[T$1$1] = null, e8[x$1$1] = null, t6(W$1$1(n6, false))); + } +} +function q$1$1(e8) { + M$1$1.nextTick(B$1$1, e8); +} +var I$1$1 = Object.getPrototypeOf(function() { +}); +var N$1$1 = Object.setPrototypeOf((j$1$1(k$1$1 = { get stream() { + return this[A$1$1]; +}, next: function() { + var e8 = this, t6 = this[P$1$1]; + if (null !== t6) + return Promise.reject(t6); + if (this[D$1$1]) + return Promise.resolve(W$1$1(void 0, true)); + if (this[A$1$1].destroyed) + return new Promise(function(t7, n7) { + M$1$1.nextTick(function() { + e8[P$1$1] ? n7(e8[P$1$1]) : t7(W$1$1(void 0, true)); + }); + }); + var n6, r6 = this[L$1$1]; + if (r6) + n6 = new Promise(/* @__PURE__ */ function(e9, t7) { + return function(n7, r7) { + e9.then(function() { + if (t7[D$1$1]) + return n7(W$1$1(void 0, true)), void 0; + t7[C$1$1](n7, r7); + }, r7); + }; + }(r6, this)); + else { + var i6 = this[A$1$1].read(); + if (null !== i6) + return Promise.resolve(W$1$1(i6, false)); + n6 = new Promise(this[C$1$1]); + } + return this[L$1$1] = n6, n6; +} }, Symbol.asyncIterator, function() { + return this; +}), j$1$1(k$1$1, "return", function() { + var e8 = this; + return new Promise(function(t6, n6) { + e8[A$1$1].destroy(null, function(e9) { + if (e9) + return n6(e9), void 0; + t6(W$1$1(void 0, true)); + }); + }); +}), k$1$1), I$1$1); +var U$1$1 = function(e8) { + var t6, n6 = Object.create(N$1$1, (j$1$1(t6 = {}, A$1$1, { value: e8, writable: true }), j$1$1(t6, T$1$1, { value: null, writable: true }), j$1$1(t6, x$1$1, { value: null, writable: true }), j$1$1(t6, P$1$1, { value: null, writable: true }), j$1$1(t6, D$1$1, { value: e8._readableState.endEmitted, writable: true }), j$1$1(t6, C$1$1, { value: function(e9, t7) { + var r6 = n6[A$1$1].read(); + r6 ? (n6[L$1$1] = null, n6[T$1$1] = null, n6[x$1$1] = null, e9(W$1$1(r6, false))) : (n6[T$1$1] = e9, n6[x$1$1] = t7); + }, writable: true }), t6)); + return n6[L$1$1] = null, O$1$1(e8, function(e9) { + if (e9 && "ERR_STREAM_PREMATURE_CLOSE" !== e9.code) { + var t7 = n6[x$1$1]; + return null !== t7 && (n6[L$1$1] = null, n6[T$1$1] = null, n6[x$1$1] = null, t7(e9)), n6[P$1$1] = e9, void 0; + } + var r6 = n6[T$1$1]; + null !== r6 && (n6[L$1$1] = null, n6[T$1$1] = null, n6[x$1$1] = null, r6(W$1$1(void 0, true))), n6[D$1$1] = true; + }), e8.on("readable", q$1$1.bind(null, n6)), n6; +}; +var H$1$1 = {}; +var F$1$1 = false; +var V$1$1 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function G$1$1() { + if (F$1$1) + return H$1$1; + F$1$1 = true; + var l6, u6 = T; + H$1$1 = C4, C4.ReadableState = L4; + y.EventEmitter; + var f7 = function(e8, t6) { + return e8.listeners(t6).length; + }, h6 = e$g, c6 = e$1$1.Buffer, b4 = V$1$1.Uint8Array || function() { + }; + var p6, g4 = X; + p6 = g4 && g4.debuglog ? g4.debuglog("stream") : function() { + }; + var w4, _4, v5, m5 = y$1$1, R4 = S$1$1, k4 = E$1$1.getHighWaterMark, M4 = e$1$12.codes, j4 = M4.ERR_INVALID_ARG_TYPE, O4 = M4.ERR_STREAM_PUSH_AFTER_EOF, T5 = M4.ERR_METHOD_NOT_IMPLEMENTED, x4 = M4.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + t$2(C4, h6); + var P4 = R4.errorOrDestroy, D4 = ["error", "close", "destroy", "pause", "resume"]; + function L4(e8, t6, n6) { + l6 = l6 || Z$1$1(), e8 = e8 || {}, "boolean" != typeof n6 && (n6 = t6 instanceof l6), this.objectMode = !!e8.objectMode, n6 && (this.objectMode = this.objectMode || !!e8.readableObjectMode), this.highWaterMark = k4(this, e8, "readableHighWaterMark", n6), this.buffer = new m5(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = false, this.endEmitted = false, this.reading = false, this.sync = true, this.needReadable = false, this.emittedReadable = false, this.readableListening = false, this.resumeScheduled = false, this.paused = true, this.emitClose = false !== e8.emitClose, this.autoDestroy = !!e8.autoDestroy, this.destroyed = false, this.defaultEncoding = e8.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = false, this.decoder = null, this.encoding = null, e8.encoding && (w4 || (w4 = e$12.StringDecoder), this.decoder = new w4(e8.encoding), this.encoding = e8.encoding); + } + function C4(e8) { + if (l6 = l6 || Z$1$1(), !(this instanceof C4)) + return new C4(e8); + var t6 = this instanceof l6; + this._readableState = new L4(e8, this, t6), this.readable = true, e8 && ("function" == typeof e8.read && (this._read = e8.read), "function" == typeof e8.destroy && (this._destroy = e8.destroy)), h6.call(this); + } + function A4(e8, t6, n6, r6, i6) { + p6("readableAddChunk", t6); + var a6, o6 = e8._readableState; + if (null === t6) + o6.reading = false, function(e9, t7) { + if (p6("onEofChunk"), t7.ended) + return; + if (t7.decoder) { + var n7 = t7.decoder.end(); + n7 && n7.length && (t7.buffer.push(n7), t7.length += t7.objectMode ? 1 : n7.length); + } + t7.ended = true, t7.sync ? q3(e9) : (t7.needReadable = false, t7.emittedReadable || (t7.emittedReadable = true, I4(e9))); + }(e8, o6); + else if (i6 || (a6 = function(e9, t7) { + var n7; + r7 = t7, c6.isBuffer(r7) || r7 instanceof b4 || "string" == typeof t7 || void 0 === t7 || e9.objectMode || (n7 = new j4("chunk", ["string", "Buffer", "Uint8Array"], t7)); + var r7; + return n7; + }(o6, t6)), a6) + P4(e8, a6); + else if (o6.objectMode || t6 && t6.length > 0) + if ("string" == typeof t6 || o6.objectMode || Object.getPrototypeOf(t6) === c6.prototype || (t6 = function(e9) { + return c6.from(e9); + }(t6)), r6) + o6.endEmitted ? P4(e8, new x4()) : W3(e8, o6, t6, true); + else if (o6.ended) + P4(e8, new O4()); + else { + if (o6.destroyed) + return false; + o6.reading = false, o6.decoder && !n6 ? (t6 = o6.decoder.write(t6), o6.objectMode || 0 !== t6.length ? W3(e8, o6, t6, false) : N4(e8, o6)) : W3(e8, o6, t6, false); + } + else + r6 || (o6.reading = false, N4(e8, o6)); + return !o6.ended && (o6.length < o6.highWaterMark || 0 === o6.length); + } + function W3(e8, t6, n6, r6) { + t6.flowing && 0 === t6.length && !t6.sync ? (t6.awaitDrain = 0, e8.emit("data", n6)) : (t6.length += t6.objectMode ? 1 : n6.length, r6 ? t6.buffer.unshift(n6) : t6.buffer.push(n6), t6.needReadable && q3(e8)), N4(e8, t6); + } + Object.defineProperty(C4.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._readableState && this._readableState.destroyed; + }, set: function(e8) { + this._readableState && (this._readableState.destroyed = e8); + } }), C4.prototype.destroy = R4.destroy, C4.prototype._undestroy = R4.undestroy, C4.prototype._destroy = function(e8, t6) { + t6(e8); + }, C4.prototype.push = function(e8, t6) { + var n6, r6 = this._readableState; + return r6.objectMode ? n6 = true : "string" == typeof e8 && ((t6 = t6 || r6.defaultEncoding) !== r6.encoding && (e8 = c6.from(e8, t6), t6 = ""), n6 = true), A4(this, e8, t6, false, n6); + }, C4.prototype.unshift = function(e8) { + return A4(this, e8, null, true, false); + }, C4.prototype.isPaused = function() { + return false === this._readableState.flowing; + }, C4.prototype.setEncoding = function(e8) { + w4 || (w4 = e$12.StringDecoder); + var t6 = new w4(e8); + this._readableState.decoder = t6, this._readableState.encoding = this._readableState.decoder.encoding; + for (var n6 = this._readableState.buffer.head, r6 = ""; null !== n6; ) + r6 += t6.write(n6.data), n6 = n6.next; + return this._readableState.buffer.clear(), "" !== r6 && this._readableState.buffer.push(r6), this._readableState.length = r6.length, this; + }; + function B4(e8, t6) { + return e8 <= 0 || 0 === t6.length && t6.ended ? 0 : t6.objectMode ? 1 : e8 != e8 ? t6.flowing && t6.length ? t6.buffer.head.data.length : t6.length : (e8 > t6.highWaterMark && (t6.highWaterMark = function(e9) { + return e9 >= 1073741824 ? e9 = 1073741824 : (e9--, e9 |= e9 >>> 1, e9 |= e9 >>> 2, e9 |= e9 >>> 4, e9 |= e9 >>> 8, e9 |= e9 >>> 16, e9++), e9; + }(e8)), e8 <= t6.length ? e8 : t6.ended ? t6.length : (t6.needReadable = true, 0)); + } + function q3(e8) { + var t6 = e8._readableState; + p6("emitReadable", t6.needReadable, t6.emittedReadable), t6.needReadable = false, t6.emittedReadable || (p6("emitReadable", t6.flowing), t6.emittedReadable = true, u6.nextTick(I4, e8)); + } + function I4(e8) { + var t6 = e8._readableState; + p6("emitReadable_", t6.destroyed, t6.length, t6.ended), t6.destroyed || !t6.length && !t6.ended || (e8.emit("readable"), t6.emittedReadable = false), t6.needReadable = !t6.flowing && !t6.ended && t6.length <= t6.highWaterMark, J3(e8); + } + function N4(e8, t6) { + t6.readingMore || (t6.readingMore = true, u6.nextTick(G3, e8, t6)); + } + function G3(e8, t6) { + for (; !t6.reading && !t6.ended && (t6.length < t6.highWaterMark || t6.flowing && 0 === t6.length); ) { + var n6 = t6.length; + if (p6("maybeReadMore read 0"), e8.read(0), n6 === t6.length) + break; + } + t6.readingMore = false; + } + function Y4(e8) { + var t6 = e8._readableState; + t6.readableListening = e8.listenerCount("readable") > 0, t6.resumeScheduled && !t6.paused ? t6.flowing = true : e8.listenerCount("data") > 0 && e8.resume(); + } + function K3(e8) { + p6("readable nexttick read 0"), e8.read(0); + } + function z4(e8, t6) { + p6("resume", t6.reading), t6.reading || e8.read(0), t6.resumeScheduled = false, e8.emit("resume"), J3(e8), t6.flowing && !t6.reading && e8.read(0); + } + function J3(e8) { + var t6 = e8._readableState; + for (p6("flow", t6.flowing); t6.flowing && null !== e8.read(); ) + ; + } + function Q3(e8, t6) { + return 0 === t6.length ? null : (t6.objectMode ? n6 = t6.buffer.shift() : !e8 || e8 >= t6.length ? (n6 = t6.decoder ? t6.buffer.join("") : 1 === t6.buffer.length ? t6.buffer.first() : t6.buffer.concat(t6.length), t6.buffer.clear()) : n6 = t6.buffer.consume(e8, t6.decoder), n6); + var n6; + } + function X3(e8) { + var t6 = e8._readableState; + p6("endReadable", t6.endEmitted), t6.endEmitted || (t6.ended = true, u6.nextTick($3, t6, e8)); + } + function $3(e8, t6) { + if (p6("endReadableNT", e8.endEmitted, e8.length), !e8.endEmitted && 0 === e8.length && (e8.endEmitted = true, t6.readable = false, t6.emit("end"), e8.autoDestroy)) { + var n6 = t6._writableState; + (!n6 || n6.autoDestroy && n6.finished) && t6.destroy(); + } + } + function ee3(e8, t6) { + for (var n6 = 0, r6 = e8.length; n6 < r6; n6++) + if (e8[n6] === t6) + return n6; + return -1; + } + return C4.prototype.read = function(e8) { + p6("read", e8), e8 = parseInt(e8, 10); + var t6 = this._readableState, n6 = e8; + if (0 !== e8 && (t6.emittedReadable = false), 0 === e8 && t6.needReadable && ((0 !== t6.highWaterMark ? t6.length >= t6.highWaterMark : t6.length > 0) || t6.ended)) + return p6("read: emitReadable", t6.length, t6.ended), 0 === t6.length && t6.ended ? X3(this) : q3(this), null; + if (0 === (e8 = B4(e8, t6)) && t6.ended) + return 0 === t6.length && X3(this), null; + var r6, i6 = t6.needReadable; + return p6("need readable", i6), (0 === t6.length || t6.length - e8 < t6.highWaterMark) && p6("length less than watermark", i6 = true), t6.ended || t6.reading ? p6("reading or ended", i6 = false) : i6 && (p6("do read"), t6.reading = true, t6.sync = true, 0 === t6.length && (t6.needReadable = true), this._read(t6.highWaterMark), t6.sync = false, t6.reading || (e8 = B4(n6, t6))), null === (r6 = e8 > 0 ? Q3(e8, t6) : null) ? (t6.needReadable = t6.length <= t6.highWaterMark, e8 = 0) : (t6.length -= e8, t6.awaitDrain = 0), 0 === t6.length && (t6.ended || (t6.needReadable = true), n6 !== e8 && t6.ended && X3(this)), null !== r6 && this.emit("data", r6), r6; + }, C4.prototype._read = function(e8) { + P4(this, new T5("_read()")); + }, C4.prototype.pipe = function(e8, t6) { + var n6 = this, r6 = this._readableState; + switch (r6.pipesCount) { + case 0: + r6.pipes = e8; + break; + case 1: + r6.pipes = [r6.pipes, e8]; + break; + default: + r6.pipes.push(e8); + } + r6.pipesCount += 1, p6("pipe count=%d opts=%j", r6.pipesCount, t6); + var i6 = (!t6 || false !== t6.end) && e8 !== u6.stdout && e8 !== u6.stderr ? o6 : g5; + function a6(t7, i7) { + p6("onunpipe"), t7 === n6 && i7 && false === i7.hasUnpiped && (i7.hasUnpiped = true, p6("cleanup"), e8.removeListener("close", c7), e8.removeListener("finish", b5), e8.removeListener("drain", s6), e8.removeListener("error", h7), e8.removeListener("unpipe", a6), n6.removeListener("end", o6), n6.removeListener("end", g5), n6.removeListener("data", d5), l7 = true, !r6.awaitDrain || e8._writableState && !e8._writableState.needDrain || s6()); + } + function o6() { + p6("onend"), e8.end(); + } + r6.endEmitted ? u6.nextTick(i6) : n6.once("end", i6), e8.on("unpipe", a6); + var s6 = /* @__PURE__ */ function(e9) { + return function() { + var t7 = e9._readableState; + p6("pipeOnDrain", t7.awaitDrain), t7.awaitDrain && t7.awaitDrain--, 0 === t7.awaitDrain && f7(e9, "data") && (t7.flowing = true, J3(e9)); + }; + }(n6); + e8.on("drain", s6); + var l7 = false; + function d5(t7) { + p6("ondata"); + var i7 = e8.write(t7); + p6("dest.write", i7), false === i7 && ((1 === r6.pipesCount && r6.pipes === e8 || r6.pipesCount > 1 && -1 !== ee3(r6.pipes, e8)) && !l7 && (p6("false write response, pause", r6.awaitDrain), r6.awaitDrain++), n6.pause()); + } + function h7(t7) { + p6("onerror", t7), g5(), e8.removeListener("error", h7), 0 === f7(e8, "error") && P4(e8, t7); + } + function c7() { + e8.removeListener("finish", b5), g5(); + } + function b5() { + p6("onfinish"), e8.removeListener("close", c7), g5(); + } + function g5() { + p6("unpipe"), n6.unpipe(e8); + } + return n6.on("data", d5), function(e9, t7, n7) { + if ("function" == typeof e9.prependListener) + return e9.prependListener(t7, n7); + e9._events && e9._events[t7] ? Array.isArray(e9._events[t7]) ? e9._events[t7].unshift(n7) : e9._events[t7] = [n7, e9._events[t7]] : e9.on(t7, n7); + }(e8, "error", h7), e8.once("close", c7), e8.once("finish", b5), e8.emit("pipe", n6), r6.flowing || (p6("pipe resume"), n6.resume()), e8; + }, C4.prototype.unpipe = function(e8) { + var t6 = this._readableState, n6 = { hasUnpiped: false }; + if (0 === t6.pipesCount) + return this; + if (1 === t6.pipesCount) + return e8 && e8 !== t6.pipes || (e8 || (e8 = t6.pipes), t6.pipes = null, t6.pipesCount = 0, t6.flowing = false, e8 && e8.emit("unpipe", this, n6)), this; + if (!e8) { + var r6 = t6.pipes, i6 = t6.pipesCount; + t6.pipes = null, t6.pipesCount = 0, t6.flowing = false; + for (var a6 = 0; a6 < i6; a6++) + r6[a6].emit("unpipe", this, { hasUnpiped: false }); + return this; + } + var o6 = ee3(t6.pipes, e8); + return -1 === o6 || (t6.pipes.splice(o6, 1), t6.pipesCount -= 1, 1 === t6.pipesCount && (t6.pipes = t6.pipes[0]), e8.emit("unpipe", this, n6)), this; + }, C4.prototype.on = function(e8, t6) { + var n6 = h6.prototype.on.call(this, e8, t6), r6 = this._readableState; + return "data" === e8 ? (r6.readableListening = this.listenerCount("readable") > 0, false !== r6.flowing && this.resume()) : "readable" === e8 && (r6.endEmitted || r6.readableListening || (r6.readableListening = r6.needReadable = true, r6.flowing = false, r6.emittedReadable = false, p6("on readable", r6.length, r6.reading), r6.length ? q3(this) : r6.reading || u6.nextTick(K3, this))), n6; + }, C4.prototype.addListener = C4.prototype.on, C4.prototype.removeListener = function(e8, t6) { + var n6 = h6.prototype.removeListener.call(this, e8, t6); + return "readable" === e8 && u6.nextTick(Y4, this), n6; + }, C4.prototype.removeAllListeners = function(e8) { + var t6 = h6.prototype.removeAllListeners.apply(this, arguments); + return "readable" !== e8 && void 0 !== e8 || u6.nextTick(Y4, this), t6; + }, C4.prototype.resume = function() { + var e8 = this._readableState; + return e8.flowing || (p6("resume"), e8.flowing = !e8.readableListening, function(e9, t6) { + t6.resumeScheduled || (t6.resumeScheduled = true, u6.nextTick(z4, e9, t6)); + }(this, e8)), e8.paused = false, this; + }, C4.prototype.pause = function() { + return p6("call pause flowing=%j", this._readableState.flowing), false !== this._readableState.flowing && (p6("pause"), this._readableState.flowing = false, this.emit("pause")), this._readableState.paused = true, this; + }, C4.prototype.wrap = function(e8) { + var t6 = this, n6 = this._readableState, r6 = false; + for (var i6 in e8.on("end", function() { + if (p6("wrapped end"), n6.decoder && !n6.ended) { + var e9 = n6.decoder.end(); + e9 && e9.length && t6.push(e9); + } + t6.push(null); + }), e8.on("data", function(i7) { + (p6("wrapped data"), n6.decoder && (i7 = n6.decoder.write(i7)), n6.objectMode && null == i7) || (n6.objectMode || i7 && i7.length) && (t6.push(i7) || (r6 = true, e8.pause())); + }), e8) + void 0 === this[i6] && "function" == typeof e8[i6] && (this[i6] = /* @__PURE__ */ function(t7) { + return function() { + return e8[t7].apply(e8, arguments); + }; + }(i6)); + for (var a6 = 0; a6 < D4.length; a6++) + e8.on(D4[a6], this.emit.bind(this, D4[a6])); + return this._read = function(t7) { + p6("wrapped _read", t7), r6 && (r6 = false, e8.resume()); + }, this; + }, "function" == typeof Symbol && (C4.prototype[Symbol.asyncIterator] = function() { + return void 0 === _4 && (_4 = U$1$1), _4(this); + }), Object.defineProperty(C4.prototype, "readableHighWaterMark", { enumerable: false, get: function() { + return this._readableState.highWaterMark; + } }), Object.defineProperty(C4.prototype, "readableBuffer", { enumerable: false, get: function() { + return this._readableState && this._readableState.buffer; + } }), Object.defineProperty(C4.prototype, "readableFlowing", { enumerable: false, get: function() { + return this._readableState.flowing; + }, set: function(e8) { + this._readableState && (this._readableState.flowing = e8); + } }), C4._fromList = Q3, Object.defineProperty(C4.prototype, "readableLength", { enumerable: false, get: function() { + return this._readableState.length; + } }), "function" == typeof Symbol && (C4.from = function(e8, t6) { + return void 0 === v5 && (v5 = r$1$1), v5(C4, e8, t6); + }), H$1$1; +} +var Y$1$1 = {}; +var K$1$1 = false; +var z$1$1 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function J$1$1() { + if (K$1$1) + return Y$1$1; + K$1$1 = true; + var e$22, r6 = T; + function s6(e8) { + var t6 = this; + this.next = null, this.entry = null, this.finish = function() { + !function(e9, t7, n6) { + var r7 = e9.entry; + e9.entry = null; + for (; r7; ) { + var i6 = r7.callback; + t7.pendingcb--, i6(n6), r7 = r7.next; + } + t7.corkedRequestsFree.next = e9; + }(t6, e8); + }; + } + Y$1$1 = x4, x4.WritableState = T5; + var l6 = { deprecate: t$1$1 }, d5 = e$g, f7 = e$1$1.Buffer, h6 = z$1$1.Uint8Array || function() { + }; + var c6, b4 = S$1$1, p6 = E$1$1.getHighWaterMark, g4 = e$1$12.codes, y5 = g4.ERR_INVALID_ARG_TYPE, w4 = g4.ERR_METHOD_NOT_IMPLEMENTED, _4 = g4.ERR_MULTIPLE_CALLBACK, v5 = g4.ERR_STREAM_CANNOT_PIPE, m5 = g4.ERR_STREAM_DESTROYED, R4 = g4.ERR_STREAM_NULL_VALUES, k4 = g4.ERR_STREAM_WRITE_AFTER_END, M4 = g4.ERR_UNKNOWN_ENCODING, j4 = b4.errorOrDestroy; + function O4() { + } + function T5(t6, n6, i6) { + e$22 = e$22 || Z$1$1(), t6 = t6 || {}, "boolean" != typeof i6 && (i6 = n6 instanceof e$22), this.objectMode = !!t6.objectMode, i6 && (this.objectMode = this.objectMode || !!t6.writableObjectMode), this.highWaterMark = p6(this, t6, "writableHighWaterMark", i6), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false; + var a6 = false === t6.decodeStrings; + this.decodeStrings = !a6, this.defaultEncoding = t6.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = function(e8) { + !function(e9, t7) { + var n7 = e9._writableState, i7 = n7.sync, a7 = n7.writecb; + if ("function" != typeof a7) + throw new _4(); + if (function(e10) { + e10.writing = false, e10.writecb = null, e10.length -= e10.writelen, e10.writelen = 0; + }(n7), t7) + !function(e10, t8, n8, i8, a8) { + --t8.pendingcb, n8 ? (r6.nextTick(a8, i8), r6.nextTick(W3, e10, t8), e10._writableState.errorEmitted = true, j4(e10, i8)) : (a8(i8), e10._writableState.errorEmitted = true, j4(e10, i8), W3(e10, t8)); + }(e9, n7, i7, t7, a7); + else { + var o6 = C4(n7) || e9.destroyed; + o6 || n7.corked || n7.bufferProcessing || !n7.bufferedRequest || L4(e9, n7), i7 ? r6.nextTick(D4, e9, n7, o6, a7) : D4(e9, n7, o6, a7); + } + }(n6, e8); + }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = false, this.errorEmitted = false, this.emitClose = false !== t6.emitClose, this.autoDestroy = !!t6.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new s6(this); + } + function x4(t6) { + var n6 = this instanceof (e$22 = e$22 || Z$1$1()); + if (!n6 && !c6.call(x4, this)) + return new x4(t6); + this._writableState = new T5(t6, this, n6), this.writable = true, t6 && ("function" == typeof t6.write && (this._write = t6.write), "function" == typeof t6.writev && (this._writev = t6.writev), "function" == typeof t6.destroy && (this._destroy = t6.destroy), "function" == typeof t6.final && (this._final = t6.final)), d5.call(this); + } + function P4(e8, t6, n6, r7, i6, a6, o6) { + t6.writelen = r7, t6.writecb = o6, t6.writing = true, t6.sync = true, t6.destroyed ? t6.onwrite(new m5("write")) : n6 ? e8._writev(i6, t6.onwrite) : e8._write(i6, a6, t6.onwrite), t6.sync = false; + } + function D4(e8, t6, n6, r7) { + n6 || !function(e9, t7) { + 0 === t7.length && t7.needDrain && (t7.needDrain = false, e9.emit("drain")); + }(e8, t6), t6.pendingcb--, r7(), W3(e8, t6); + } + function L4(e8, t6) { + t6.bufferProcessing = true; + var n6 = t6.bufferedRequest; + if (e8._writev && n6 && n6.next) { + var r7 = t6.bufferedRequestCount, i6 = new Array(r7), a6 = t6.corkedRequestsFree; + a6.entry = n6; + for (var o6 = 0, l7 = true; n6; ) + i6[o6] = n6, n6.isBuf || (l7 = false), n6 = n6.next, o6 += 1; + i6.allBuffers = l7, P4(e8, t6, true, t6.length, i6, "", a6.finish), t6.pendingcb++, t6.lastBufferedRequest = null, a6.next ? (t6.corkedRequestsFree = a6.next, a6.next = null) : t6.corkedRequestsFree = new s6(t6), t6.bufferedRequestCount = 0; + } else { + for (; n6; ) { + var d6 = n6.chunk, u6 = n6.encoding, f8 = n6.callback; + if (P4(e8, t6, false, t6.objectMode ? 1 : d6.length, d6, u6, f8), n6 = n6.next, t6.bufferedRequestCount--, t6.writing) + break; + } + null === n6 && (t6.lastBufferedRequest = null); + } + t6.bufferedRequest = n6, t6.bufferProcessing = false; + } + function C4(e8) { + return e8.ending && 0 === e8.length && null === e8.bufferedRequest && !e8.finished && !e8.writing; + } + function A4(e8, t6) { + e8._final(function(n6) { + t6.pendingcb--, n6 && j4(e8, n6), t6.prefinished = true, e8.emit("prefinish"), W3(e8, t6); + }); + } + function W3(e8, t6) { + var n6 = C4(t6); + if (n6 && (!function(e9, t7) { + t7.prefinished || t7.finalCalled || ("function" != typeof e9._final || t7.destroyed ? (t7.prefinished = true, e9.emit("prefinish")) : (t7.pendingcb++, t7.finalCalled = true, r6.nextTick(A4, e9, t7))); + }(e8, t6), 0 === t6.pendingcb && (t6.finished = true, e8.emit("finish"), t6.autoDestroy))) { + var i6 = e8._readableState; + (!i6 || i6.autoDestroy && i6.endEmitted) && e8.destroy(); + } + return n6; + } + return t$2(x4, d5), T5.prototype.getBuffer = function() { + for (var e8 = this.bufferedRequest, t6 = []; e8; ) + t6.push(e8), e8 = e8.next; + return t6; + }, function() { + try { + Object.defineProperty(T5.prototype, "buffer", { get: l6.deprecate(function() { + return this.getBuffer(); + }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") }); + } catch (e8) { + } + }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (c6 = Function.prototype[Symbol.hasInstance], Object.defineProperty(x4, Symbol.hasInstance, { value: function(e8) { + return !!c6.call(this, e8) || this === x4 && (e8 && e8._writableState instanceof T5); + } })) : c6 = function(e8) { + return e8 instanceof this; + }, x4.prototype.pipe = function() { + j4(this, new v5()); + }, x4.prototype.write = function(e8, t6, n6) { + var i6, a6 = this._writableState, o6 = false, s7 = !a6.objectMode && (i6 = e8, f7.isBuffer(i6) || i6 instanceof h6); + return s7 && !f7.isBuffer(e8) && (e8 = function(e9) { + return f7.from(e9); + }(e8)), "function" == typeof t6 && (n6 = t6, t6 = null), s7 ? t6 = "buffer" : t6 || (t6 = a6.defaultEncoding), "function" != typeof n6 && (n6 = O4), a6.ending ? function(e9, t7) { + var n7 = new k4(); + j4(e9, n7), r6.nextTick(t7, n7); + }(this, n6) : (s7 || function(e9, t7, n7, i7) { + var a7; + return null === n7 ? a7 = new R4() : "string" == typeof n7 || t7.objectMode || (a7 = new y5("chunk", ["string", "Buffer"], n7)), !a7 || (j4(e9, a7), r6.nextTick(i7, a7), false); + }(this, a6, e8, n6)) && (a6.pendingcb++, o6 = function(e9, t7, n7, r7, i7, a7) { + if (!n7) { + var o7 = function(e10, t8, n8) { + e10.objectMode || false === e10.decodeStrings || "string" != typeof t8 || (t8 = f7.from(t8, n8)); + return t8; + }(t7, r7, i7); + r7 !== o7 && (n7 = true, i7 = "buffer", r7 = o7); + } + var s8 = t7.objectMode ? 1 : r7.length; + t7.length += s8; + var l7 = t7.length < t7.highWaterMark; + l7 || (t7.needDrain = true); + if (t7.writing || t7.corked) { + var d6 = t7.lastBufferedRequest; + t7.lastBufferedRequest = { chunk: r7, encoding: i7, isBuf: n7, callback: a7, next: null }, d6 ? d6.next = t7.lastBufferedRequest : t7.bufferedRequest = t7.lastBufferedRequest, t7.bufferedRequestCount += 1; + } else + P4(e9, t7, false, s8, r7, i7, a7); + return l7; + }(this, a6, s7, e8, t6, n6)), o6; + }, x4.prototype.cork = function() { + this._writableState.corked++; + }, x4.prototype.uncork = function() { + var e8 = this._writableState; + e8.corked && (e8.corked--, e8.writing || e8.corked || e8.bufferProcessing || !e8.bufferedRequest || L4(this, e8)); + }, x4.prototype.setDefaultEncoding = function(e8) { + if ("string" == typeof e8 && (e8 = e8.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e8 + "").toLowerCase()) > -1)) + throw new M4(e8); + return this._writableState.defaultEncoding = e8, this; + }, Object.defineProperty(x4.prototype, "writableBuffer", { enumerable: false, get: function() { + return this._writableState && this._writableState.getBuffer(); + } }), Object.defineProperty(x4.prototype, "writableHighWaterMark", { enumerable: false, get: function() { + return this._writableState.highWaterMark; + } }), x4.prototype._write = function(e8, t6, n6) { + n6(new w4("_write()")); + }, x4.prototype._writev = null, x4.prototype.end = function(e8, t6, n6) { + var i6 = this._writableState; + return "function" == typeof e8 ? (n6 = e8, e8 = null, t6 = null) : "function" == typeof t6 && (n6 = t6, t6 = null), null != e8 && this.write(e8, t6), i6.corked && (i6.corked = 1, this.uncork()), i6.ending || function(e9, t7, n7) { + t7.ending = true, W3(e9, t7), n7 && (t7.finished ? r6.nextTick(n7) : e9.once("finish", n7)); + t7.ended = true, e9.writable = false; + }(this, i6, n6), this; + }, Object.defineProperty(x4.prototype, "writableLength", { enumerable: false, get: function() { + return this._writableState.length; + } }), Object.defineProperty(x4.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._writableState && this._writableState.destroyed; + }, set: function(e8) { + this._writableState && (this._writableState.destroyed = e8); + } }), x4.prototype.destroy = b4.destroy, x4.prototype._undestroy = b4.undestroy, x4.prototype._destroy = function(e8, t6) { + t6(e8); + }, Y$1$1; +} +var Q$1$1 = {}; +var X$1$1 = false; +function Z$1$1() { + if (X$1$1) + return Q$1$1; + X$1$1 = true; + var e8 = T, t6 = Object.keys || function(e9) { + var t7 = []; + for (var n7 in e9) + t7.push(n7); + return t7; + }; + Q$1$1 = d5; + var n6 = G$1$1(), r6 = J$1$1(); + t$2(d5, n6); + for (var a6 = t6(r6.prototype), s6 = 0; s6 < a6.length; s6++) { + var l6 = a6[s6]; + d5.prototype[l6] || (d5.prototype[l6] = r6.prototype[l6]); + } + function d5(e9) { + if (!(this instanceof d5)) + return new d5(e9); + n6.call(this, e9), r6.call(this, e9), this.allowHalfOpen = true, e9 && (false === e9.readable && (this.readable = false), false === e9.writable && (this.writable = false), false === e9.allowHalfOpen && (this.allowHalfOpen = false, this.once("end", u6))); + } + function u6() { + this._writableState.ended || e8.nextTick(f7, this); + } + function f7(e9) { + e9.end(); + } + return Object.defineProperty(d5.prototype, "writableHighWaterMark", { enumerable: false, get: function() { + return this._writableState.highWaterMark; + } }), Object.defineProperty(d5.prototype, "writableBuffer", { enumerable: false, get: function() { + return this._writableState && this._writableState.getBuffer(); + } }), Object.defineProperty(d5.prototype, "writableLength", { enumerable: false, get: function() { + return this._writableState.length; + } }), Object.defineProperty(d5.prototype, "destroyed", { enumerable: false, get: function() { + return void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed && this._writableState.destroyed); + }, set: function(e9) { + void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = e9, this._writableState.destroyed = e9); + } }), Q$1$1; +} +var t$4$1 = J$1$1(); +var t$5$1 = ee$1(); +var n$2$1; +n$2$1 = u$1$12; +var i$e = e$1$12.codes; +var a$p = i$e.ERR_METHOD_NOT_IMPLEMENTED; +var o$s = i$e.ERR_MULTIPLE_CALLBACK; +var s$q = i$e.ERR_TRANSFORM_ALREADY_TRANSFORMING; +var f$2$1 = i$e.ERR_TRANSFORM_WITH_LENGTH_0; +var h$2$1 = t$5$1; +function l$s(t6, r6) { + var e8 = this._transformState; + e8.transforming = false; + var n6 = e8.writecb; + if (null === n6) + return this.emit("error", new o$s()); + e8.writechunk = null, e8.writecb = null, null != r6 && this.push(r6), n6(t6); + var i6 = this._readableState; + i6.reading = false, (i6.needReadable || i6.length < i6.highWaterMark) && this._read(i6.highWaterMark); +} +function u$1$12(t6) { + if (!(this instanceof u$1$12)) + return new u$1$12(t6); + h$2$1.call(this, t6), this._transformState = { afterTransform: l$s.bind(this), needTransform: false, transforming: false, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = true, this._readableState.sync = false, t6 && ("function" == typeof t6.transform && (this._transform = t6.transform), "function" == typeof t6.flush && (this._flush = t6.flush)), this.on("prefinish", m$2$1); +} +function m$2$1() { + var t6 = this; + "function" != typeof this._flush || this._readableState.destroyed ? _$2$1(this, null, null) : this._flush(function(r6, e8) { + _$2$1(t6, r6, e8); + }); +} +function _$2$1(t6, r6, e8) { + if (r6) + return t6.emit("error", r6); + if (null != e8 && t6.push(e8), t6._writableState.length) + throw new f$2$1(); + if (t6._transformState.transforming) + throw new s$q(); + return t6.push(null); +} +t$2(u$1$12, h$2$1), u$1$12.prototype.push = function(t6, r6) { + return this._transformState.needTransform = false, h$2$1.prototype.push.call(this, t6, r6); +}, u$1$12.prototype._transform = function(t6, r6, e8) { + e8(new a$p("_transform()")); +}, u$1$12.prototype._write = function(t6, r6, e8) { + var n6 = this._transformState; + if (n6.writecb = e8, n6.writechunk = t6, n6.writeencoding = r6, !n6.transforming) { + var i6 = this._readableState; + (n6.needTransform || i6.needReadable || i6.length < i6.highWaterMark) && this._read(i6.highWaterMark); + } +}, u$1$12.prototype._read = function(t6) { + var r6 = this._transformState; + null === r6.writechunk || r6.transforming ? r6.needTransform = true : (r6.transforming = true, this._transform(r6.writechunk, r6.writeencoding, r6.afterTransform)); +}, u$1$12.prototype._destroy = function(t6, r6) { + h$2$1.prototype._destroy.call(this, t6, function(t7) { + r6(t7); + }); +}; +var p$2$1 = n$2$1; +var o$1$12; +o$1$12 = i$1$1; +var e$3$1 = p$2$1; +function i$1$1(r6) { + if (!(this instanceof i$1$1)) + return new i$1$1(r6); + e$3$1.call(this, r6); +} +t$2(i$1$1, e$3$1), i$1$1.prototype._transform = function(r6, t6, o6) { + o6(null, r6); +}; +var s$1$1 = o$1$12; +var t$6$1; +var o$2$1 = e$1$12.codes; +var e$4$1 = o$2$1.ERR_MISSING_ARGS; +var f$3$1 = o$2$1.ERR_STREAM_DESTROYED; +function i$2$1(r6) { + if (r6) + throw r6; +} +function u$2$1(r6, o6, e8, i6) { + i6 = /* @__PURE__ */ function(r7) { + var n6 = false; + return function() { + n6 || (n6 = true, r7.apply(void 0, arguments)); + }; + }(i6); + var u6 = false; + r6.on("close", function() { + u6 = true; + }), void 0 === t$6$1 && (t$6$1 = n$1$12), t$6$1(r6, { readable: o6, writable: e8 }, function(r7) { + if (r7) + return i6(r7); + u6 = true, i6(); + }); + var a6 = false; + return function(n6) { + if (!u6 && !a6) + return a6 = true, function(r7) { + return r7.setHeader && "function" == typeof r7.abort; + }(r6) ? r6.abort() : "function" == typeof r6.destroy ? r6.destroy() : (i6(n6 || new f$3$1("pipe")), void 0); + }; +} +function a$1$12(r6) { + r6(); +} +function c$2$1(r6, n6) { + return r6.pipe(n6); +} +function p$3$1(r6) { + return r6.length ? "function" != typeof r6[r6.length - 1] ? i$2$1 : r6.pop() : i$2$1; +} +var v$2$1 = function() { + for (var r6 = arguments.length, n6 = new Array(r6), t6 = 0; t6 < r6; t6++) + n6[t6] = arguments[t6]; + var o6, f7 = p$3$1(n6); + if (Array.isArray(n6[0]) && (n6 = n6[0]), n6.length < 2) + throw new e$4$1("streams"); + var i6 = n6.map(function(r7, t7) { + var e8 = t7 < n6.length - 1; + return u$2$1(r7, e8, t7 > 0, function(r8) { + o6 || (o6 = r8), r8 && i6.forEach(a$1$12), e8 || (i6.forEach(a$1$12), f7(o6)); + }); + }); + return n6.reduce(c$2$1); +}; +var l$r; +var d$n = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +l$r = p$r; +var f$u = y.EventEmitter; +function p$r() { + f$u.call(this || d$n); +} +t$2(p$r, f$u), p$r.Readable = t$2$1, p$r.Writable = t$4$1, p$r.Duplex = t$5$1, p$r.Transform = p$2$1, p$r.PassThrough = s$1$1, p$r.finished = n$1$12, p$r.pipeline = v$2$1, p$r.Stream = p$r, p$r.prototype.pipe = function(e8, r6) { + var t6 = this || d$n; + function o6(r7) { + e8.writable && false === e8.write(r7) && t6.pause && t6.pause(); + } + function i6() { + t6.readable && t6.resume && t6.resume(); + } + t6.on("data", o6), e8.on("drain", i6), e8._isStdio || r6 && false === r6.end || (t6.on("end", a6), t6.on("close", s6)); + var n6 = false; + function a6() { + n6 || (n6 = true, e8.end()); + } + function s6() { + n6 || (n6 = true, "function" == typeof e8.destroy && e8.destroy()); + } + function m5(e9) { + if (l6(), 0 === f$u.listenerCount(this || d$n, "error")) + throw e9; + } + function l6() { + t6.removeListener("data", o6), e8.removeListener("drain", i6), t6.removeListener("end", a6), t6.removeListener("close", s6), t6.removeListener("error", m5), e8.removeListener("error", m5), t6.removeListener("end", l6), t6.removeListener("close", l6), e8.removeListener("close", l6); + } + return t6.on("error", m5), e8.on("error", m5), t6.on("end", l6), t6.on("close", l6), e8.on("close", l6), e8.emit("pipe", t6), e8; +}; +var b$i = l$r; +b$i.Readable; +b$i.Writable; +b$i.Duplex; +b$i.Transform; +b$i.PassThrough; +b$i.finished; +b$i.pipeline; +b$i.Stream; +var exports$1H = {}; +var _dewExec$1G = false; +var _global$o = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1G() { + if (_dewExec$1G) + return exports$1H; + _dewExec$1G = true; + var Buffer2 = dew$1T().Buffer; + var Transform = b$i.Transform; + var StringDecoder = e$12.StringDecoder; + var inherits2 = dew$f$2(); + function CipherBase(hashMode) { + Transform.call(this || _global$o); + (this || _global$o).hashMode = typeof hashMode === "string"; + if ((this || _global$o).hashMode) { + (this || _global$o)[hashMode] = (this || _global$o)._finalOrDigest; + } else { + (this || _global$o).final = (this || _global$o)._finalOrDigest; + } + if ((this || _global$o)._final) { + (this || _global$o).__final = (this || _global$o)._final; + (this || _global$o)._final = null; + } + (this || _global$o)._decoder = null; + (this || _global$o)._encoding = null; + } + inherits2(CipherBase, Transform); + CipherBase.prototype.update = function(data, inputEnc, outputEnc) { + if (typeof data === "string") { + data = Buffer2.from(data, inputEnc); + } + var outData = this._update(data); + if ((this || _global$o).hashMode) + return this || _global$o; + if (outputEnc) { + outData = this._toString(outData, outputEnc); + } + return outData; + }; + CipherBase.prototype.setAutoPadding = function() { + }; + CipherBase.prototype.getAuthTag = function() { + throw new Error("trying to get auth tag in unsupported state"); + }; + CipherBase.prototype.setAuthTag = function() { + throw new Error("trying to set auth tag in unsupported state"); + }; + CipherBase.prototype.setAAD = function() { + throw new Error("trying to set aad in unsupported state"); + }; + CipherBase.prototype._transform = function(data, _4, next) { + var err; + try { + if ((this || _global$o).hashMode) { + this._update(data); + } else { + this.push(this._update(data)); + } + } catch (e8) { + err = e8; + } finally { + next(err); + } + }; + CipherBase.prototype._flush = function(done) { + var err; + try { + this.push(this.__final()); + } catch (e8) { + err = e8; + } + done(err); + }; + CipherBase.prototype._finalOrDigest = function(outputEnc) { + var outData = this.__final() || Buffer2.alloc(0); + if (outputEnc) { + outData = this._toString(outData, outputEnc, true); + } + return outData; + }; + CipherBase.prototype._toString = function(value, enc, fin) { + if (!(this || _global$o)._decoder) { + (this || _global$o)._decoder = new StringDecoder(enc); + (this || _global$o)._encoding = enc; + } + if ((this || _global$o)._encoding !== enc) + throw new Error("can't switch encodings"); + var out = (this || _global$o)._decoder.write(value); + if (fin) { + out += (this || _global$o)._decoder.end(); + } + return out; + }; + exports$1H = CipherBase; + return exports$1H; +} +var exports$1G = {}; +var _dewExec$1F = false; +function dew$1F() { + if (_dewExec$1F) + return exports$1G; + _dewExec$1F = true; + var inherits2 = dew$f$2(); + var MD5 = dew$1Q(); + var RIPEMD160 = dew$1P(); + var sha = dew$1H(); + var Base = dew$1G(); + function Hash2(hash) { + Base.call(this, "digest"); + this._hash = hash; + } + inherits2(Hash2, Base); + Hash2.prototype._update = function(data) { + this._hash.update(data); + }; + Hash2.prototype._final = function() { + return this._hash.digest(); + }; + exports$1G = function createHash2(alg) { + alg = alg.toLowerCase(); + if (alg === "md5") + return new MD5(); + if (alg === "rmd160" || alg === "ripemd160") + return new RIPEMD160(); + return new Hash2(sha(alg)); + }; + return exports$1G; +} +var exports$1F = {}; +var _dewExec$1E = false; +function dew$1E() { + if (_dewExec$1E) + return exports$1F; + _dewExec$1E = true; + var inherits2 = dew$f$2(); + var Buffer2 = dew$1T().Buffer; + var Base = dew$1G(); + var ZEROS = Buffer2.alloc(128); + var blocksize = 64; + function Hmac2(alg, key) { + Base.call(this, "digest"); + if (typeof key === "string") { + key = Buffer2.from(key); + } + this._alg = alg; + this._key = key; + if (key.length > blocksize) { + key = alg(key); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = this._ipad = Buffer2.allocUnsafe(blocksize); + var opad = this._opad = Buffer2.allocUnsafe(blocksize); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + this._hash = [ipad]; + } + inherits2(Hmac2, Base); + Hmac2.prototype._update = function(data) { + this._hash.push(data); + }; + Hmac2.prototype._final = function() { + var h6 = this._alg(Buffer2.concat(this._hash)); + return this._alg(Buffer2.concat([this._opad, h6])); + }; + exports$1F = Hmac2; + return exports$1F; +} +var exports$1E = {}; +var _dewExec$1D = false; +function dew$1D() { + if (_dewExec$1D) + return exports$1E; + _dewExec$1D = true; + var MD5 = dew$1Q(); + exports$1E = function(buffer2) { + return new MD5().update(buffer2).digest(); + }; + return exports$1E; +} +var exports$1D = {}; +var _dewExec$1C = false; +function dew$1C() { + if (_dewExec$1C) + return exports$1D; + _dewExec$1C = true; + var inherits2 = dew$f$2(); + var Legacy = dew$1E(); + var Base = dew$1G(); + var Buffer2 = dew$1T().Buffer; + var md5 = dew$1D(); + var RIPEMD160 = dew$1P(); + var sha = dew$1H(); + var ZEROS = Buffer2.alloc(128); + function Hmac2(alg, key) { + Base.call(this, "digest"); + if (typeof key === "string") { + key = Buffer2.from(key); + } + var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; + this._alg = alg; + this._key = key; + if (key.length > blocksize) { + var hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); + key = hash.update(key).digest(); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = this._ipad = Buffer2.allocUnsafe(blocksize); + var opad = this._opad = Buffer2.allocUnsafe(blocksize); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + this._hash = alg === "rmd160" ? new RIPEMD160() : sha(alg); + this._hash.update(ipad); + } + inherits2(Hmac2, Base); + Hmac2.prototype._update = function(data) { + this._hash.update(data); + }; + Hmac2.prototype._final = function() { + var h6 = this._hash.digest(); + var hash = this._alg === "rmd160" ? new RIPEMD160() : sha(this._alg); + return hash.update(this._opad).update(h6).digest(); + }; + exports$1D = function createHmac2(alg, key) { + alg = alg.toLowerCase(); + if (alg === "rmd160" || alg === "ripemd160") { + return new Hmac2("rmd160", key); + } + if (alg === "md5") { + return new Legacy(md5, key); + } + return new Hmac2(alg, key); + }; + return exports$1D; +} +var _algorithms = { + "sha224WithRSAEncryption": { + "sign": "rsa", + "hash": "sha224", + "id": "302d300d06096086480165030402040500041c" + }, + "RSA-SHA224": { + "sign": "ecdsa/rsa", + "hash": "sha224", + "id": "302d300d06096086480165030402040500041c" + }, + "sha256WithRSAEncryption": { + "sign": "rsa", + "hash": "sha256", + "id": "3031300d060960864801650304020105000420" + }, + "RSA-SHA256": { + "sign": "ecdsa/rsa", + "hash": "sha256", + "id": "3031300d060960864801650304020105000420" + }, + "sha384WithRSAEncryption": { + "sign": "rsa", + "hash": "sha384", + "id": "3041300d060960864801650304020205000430" + }, + "RSA-SHA384": { + "sign": "ecdsa/rsa", + "hash": "sha384", + "id": "3041300d060960864801650304020205000430" + }, + "sha512WithRSAEncryption": { + "sign": "rsa", + "hash": "sha512", + "id": "3051300d060960864801650304020305000440" + }, + "RSA-SHA512": { + "sign": "ecdsa/rsa", + "hash": "sha512", + "id": "3051300d060960864801650304020305000440" + }, + "RSA-SHA1": { + "sign": "rsa", + "hash": "sha1", + "id": "3021300906052b0e03021a05000414" + }, + "ecdsa-with-SHA1": { + "sign": "ecdsa", + "hash": "sha1", + "id": "" + }, + "sha256": { + "sign": "ecdsa", + "hash": "sha256", + "id": "" + }, + "sha224": { + "sign": "ecdsa", + "hash": "sha224", + "id": "" + }, + "sha384": { + "sign": "ecdsa", + "hash": "sha384", + "id": "" + }, + "sha512": { + "sign": "ecdsa", + "hash": "sha512", + "id": "" + }, + "DSA-SHA": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA-SHA1": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA": { + "sign": "dsa", + "hash": "sha1", + "id": "" + }, + "DSA-WITH-SHA224": { + "sign": "dsa", + "hash": "sha224", + "id": "" + }, + "DSA-SHA224": { + "sign": "dsa", + "hash": "sha224", + "id": "" + }, + "DSA-WITH-SHA256": { + "sign": "dsa", + "hash": "sha256", + "id": "" + }, + "DSA-SHA256": { + "sign": "dsa", + "hash": "sha256", + "id": "" + }, + "DSA-WITH-SHA384": { + "sign": "dsa", + "hash": "sha384", + "id": "" + }, + "DSA-SHA384": { + "sign": "dsa", + "hash": "sha384", + "id": "" + }, + "DSA-WITH-SHA512": { + "sign": "dsa", + "hash": "sha512", + "id": "" + }, + "DSA-SHA512": { + "sign": "dsa", + "hash": "sha512", + "id": "" + }, + "DSA-RIPEMD160": { + "sign": "dsa", + "hash": "rmd160", + "id": "" + }, + "ripemd160WithRSA": { + "sign": "rsa", + "hash": "rmd160", + "id": "3021300906052b2403020105000414" + }, + "RSA-RIPEMD160": { + "sign": "rsa", + "hash": "rmd160", + "id": "3021300906052b2403020105000414" + }, + "md5WithRSAEncryption": { + "sign": "rsa", + "hash": "md5", + "id": "3020300c06082a864886f70d020505000410" + }, + "RSA-MD5": { + "sign": "rsa", + "hash": "md5", + "id": "3020300c06082a864886f70d020505000410" + } +}; +var exports$1C = {}; +var _dewExec$1B = false; +function dew$1B() { + if (_dewExec$1B) + return exports$1C; + _dewExec$1B = true; + exports$1C = _algorithms; + return exports$1C; +} +var exports$1B = {}; +var _dewExec$1A = false; +function dew$1A() { + if (_dewExec$1A) + return exports$1B; + _dewExec$1A = true; + var MAX_ALLOC = Math.pow(2, 30) - 1; + exports$1B = function(iterations, keylen) { + if (typeof iterations !== "number") { + throw new TypeError("Iterations not a number"); + } + if (iterations < 0) { + throw new TypeError("Bad iterations"); + } + if (typeof keylen !== "number") { + throw new TypeError("Key length not a number"); + } + if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { + throw new TypeError("Bad key length"); + } + }; + return exports$1B; +} +var exports$1A = {}; +var _dewExec$1z = false; +var _global$n = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1z() { + if (_dewExec$1z) + return exports$1A; + _dewExec$1z = true; + var process2 = T; + var defaultEncoding; + if (_global$n.process && _global$n.process.browser) { + defaultEncoding = "utf-8"; + } else if (_global$n.process && _global$n.process.version) { + var pVersionMajor = parseInt(process2.version.split(".")[0].slice(1), 10); + defaultEncoding = pVersionMajor >= 6 ? "utf-8" : "binary"; + } else { + defaultEncoding = "utf-8"; + } + exports$1A = defaultEncoding; + return exports$1A; +} +var exports$1z = {}; +var _dewExec$1y = false; +function dew$1y() { + if (_dewExec$1y) + return exports$1z; + _dewExec$1y = true; + var Buffer2 = dew$1T().Buffer; + exports$1z = function(thing, encoding, name) { + if (Buffer2.isBuffer(thing)) { + return thing; + } else if (typeof thing === "string") { + return Buffer2.from(thing, encoding); + } else if (ArrayBuffer.isView(thing)) { + return Buffer2.from(thing.buffer); + } else { + throw new TypeError(name + " must be a string, a Buffer, a typed array or a DataView"); + } + }; + return exports$1z; +} +var exports$1y = {}; +var _dewExec$1x = false; +var _global$m = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1x() { + if (_dewExec$1x) + return exports$1y; + _dewExec$1x = true; + var md5 = dew$1D(); + var RIPEMD160 = dew$1P(); + var sha = dew$1H(); + var Buffer2 = dew$1T().Buffer; + var checkParameters = dew$1A(); + var defaultEncoding = dew$1z(); + var toBuffer = dew$1y(); + var ZEROS = Buffer2.alloc(128); + var sizes = { + md5: 16, + sha1: 20, + sha224: 28, + sha256: 32, + sha384: 48, + sha512: 64, + rmd160: 20, + ripemd160: 20 + }; + function Hmac2(alg, key, saltLen) { + var hash = getDigest(alg); + var blocksize = alg === "sha512" || alg === "sha384" ? 128 : 64; + if (key.length > blocksize) { + key = hash(key); + } else if (key.length < blocksize) { + key = Buffer2.concat([key, ZEROS], blocksize); + } + var ipad = Buffer2.allocUnsafe(blocksize + sizes[alg]); + var opad = Buffer2.allocUnsafe(blocksize + sizes[alg]); + for (var i6 = 0; i6 < blocksize; i6++) { + ipad[i6] = key[i6] ^ 54; + opad[i6] = key[i6] ^ 92; + } + var ipad1 = Buffer2.allocUnsafe(blocksize + saltLen + 4); + ipad.copy(ipad1, 0, 0, blocksize); + (this || _global$m).ipad1 = ipad1; + (this || _global$m).ipad2 = ipad; + (this || _global$m).opad = opad; + (this || _global$m).alg = alg; + (this || _global$m).blocksize = blocksize; + (this || _global$m).hash = hash; + (this || _global$m).size = sizes[alg]; + } + Hmac2.prototype.run = function(data, ipad) { + data.copy(ipad, (this || _global$m).blocksize); + var h6 = this.hash(ipad); + h6.copy((this || _global$m).opad, (this || _global$m).blocksize); + return this.hash((this || _global$m).opad); + }; + function getDigest(alg) { + function shaFunc(data) { + return sha(alg).update(data).digest(); + } + function rmd160Func(data) { + return new RIPEMD160().update(data).digest(); + } + if (alg === "rmd160" || alg === "ripemd160") + return rmd160Func; + if (alg === "md5") + return md5; + return shaFunc; + } + function pbkdf22(password, salt, iterations, keylen, digest) { + checkParameters(iterations, keylen); + password = toBuffer(password, defaultEncoding, "Password"); + salt = toBuffer(salt, defaultEncoding, "Salt"); + digest = digest || "sha1"; + var hmac = new Hmac2(digest, password, salt.length); + var DK = Buffer2.allocUnsafe(keylen); + var block1 = Buffer2.allocUnsafe(salt.length + 4); + salt.copy(block1, 0, 0, salt.length); + var destPos = 0; + var hLen = sizes[digest]; + var l6 = Math.ceil(keylen / hLen); + for (var i6 = 1; i6 <= l6; i6++) { + block1.writeUInt32BE(i6, salt.length); + var T5 = hmac.run(block1, hmac.ipad1); + var U4 = T5; + for (var j4 = 1; j4 < iterations; j4++) { + U4 = hmac.run(U4, hmac.ipad2); + for (var k4 = 0; k4 < hLen; k4++) + T5[k4] ^= U4[k4]; + } + T5.copy(DK, destPos); + destPos += hLen; + } + return DK; + } + exports$1y = pbkdf22; + return exports$1y; +} +var exports$1x = {}; +var _dewExec$1w = false; +var _global$l = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1w() { + if (_dewExec$1w) + return exports$1x; + _dewExec$1w = true; + var Buffer2 = dew$1T().Buffer; + var checkParameters = dew$1A(); + var defaultEncoding = dew$1z(); + var sync = dew$1x(); + var toBuffer = dew$1y(); + var ZERO_BUF; + var subtle = _global$l.crypto && _global$l.crypto.subtle; + var toBrowser = { + sha: "SHA-1", + "sha-1": "SHA-1", + sha1: "SHA-1", + sha256: "SHA-256", + "sha-256": "SHA-256", + sha384: "SHA-384", + "sha-384": "SHA-384", + "sha-512": "SHA-512", + sha512: "SHA-512" + }; + var checks = []; + function checkNative(algo) { + if (_global$l.process && !_global$l.process.browser) { + return Promise.resolve(false); + } + if (!subtle || !subtle.importKey || !subtle.deriveBits) { + return Promise.resolve(false); + } + if (checks[algo] !== void 0) { + return checks[algo]; + } + ZERO_BUF = ZERO_BUF || Buffer2.alloc(8); + var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function() { + return true; + }).catch(function() { + return false; + }); + checks[algo] = prom; + return prom; + } + var nextTick; + function getNextTick() { + if (nextTick) { + return nextTick; + } + if (_global$l.process && _global$l.process.nextTick) { + nextTick = _global$l.process.nextTick; + } else if (_global$l.queueMicrotask) { + nextTick = _global$l.queueMicrotask; + } else if (_global$l.setImmediate) { + nextTick = _global$l.setImmediate; + } else { + nextTick = _global$l.setTimeout; + } + return nextTick; + } + function browserPbkdf2(password, salt, iterations, length, algo) { + return subtle.importKey("raw", password, { + name: "PBKDF2" + }, false, ["deriveBits"]).then(function(key) { + return subtle.deriveBits({ + name: "PBKDF2", + salt, + iterations, + hash: { + name: algo + } + }, key, length << 3); + }).then(function(res) { + return Buffer2.from(res); + }); + } + function resolvePromise(promise, callback) { + promise.then(function(out) { + getNextTick()(function() { + callback(null, out); + }); + }, function(e8) { + getNextTick()(function() { + callback(e8); + }); + }); + } + exports$1x = function(password, salt, iterations, keylen, digest, callback) { + if (typeof digest === "function") { + callback = digest; + digest = void 0; + } + digest = digest || "sha1"; + var algo = toBrowser[digest.toLowerCase()]; + if (!algo || typeof _global$l.Promise !== "function") { + getNextTick()(function() { + var out; + try { + out = sync(password, salt, iterations, keylen, digest); + } catch (e8) { + return callback(e8); + } + callback(null, out); + }); + return; + } + checkParameters(iterations, keylen); + password = toBuffer(password, defaultEncoding, "Password"); + salt = toBuffer(salt, defaultEncoding, "Salt"); + if (typeof callback !== "function") + throw new Error("No callback provided to pbkdf2"); + resolvePromise(checkNative(algo).then(function(resp) { + if (resp) + return browserPbkdf2(password, salt, iterations, keylen, algo); + return sync(password, salt, iterations, keylen, digest); + }), callback); + }; + return exports$1x; +} +var exports$1w = {}; +var _dewExec$1v = false; +function dew$1v() { + if (_dewExec$1v) + return exports$1w; + _dewExec$1v = true; + exports$1w.pbkdf2 = dew$1w(); + exports$1w.pbkdf2Sync = dew$1x(); + return exports$1w; +} +var exports$1v = {}; +var _dewExec$1u = false; +function dew$1u() { + if (_dewExec$1u) + return exports$1v; + _dewExec$1u = true; + exports$1v.readUInt32BE = function readUInt32BE(bytes, off) { + var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off]; + return res >>> 0; + }; + exports$1v.writeUInt32BE = function writeUInt32BE(bytes, value, off) { + bytes[0 + off] = value >>> 24; + bytes[1 + off] = value >>> 16 & 255; + bytes[2 + off] = value >>> 8 & 255; + bytes[3 + off] = value & 255; + }; + exports$1v.ip = function ip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 6; i6 >= 0; i6 -= 2) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >>> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inL >>> j4 + i6 & 1; + } + } + for (var i6 = 6; i6 >= 0; i6 -= 2) { + for (var j4 = 1; j4 <= 25; j4 += 8) { + outR <<= 1; + outR |= inR >>> j4 + i6 & 1; + } + for (var j4 = 1; j4 <= 25; j4 += 8) { + outR <<= 1; + outR |= inL >>> j4 + i6 & 1; + } + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$1v.rip = function rip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 0; i6 < 4; i6++) { + for (var j4 = 24; j4 >= 0; j4 -= 8) { + outL <<= 1; + outL |= inR >>> j4 + i6 & 1; + outL <<= 1; + outL |= inL >>> j4 + i6 & 1; + } + } + for (var i6 = 4; i6 < 8; i6++) { + for (var j4 = 24; j4 >= 0; j4 -= 8) { + outR <<= 1; + outR |= inR >>> j4 + i6 & 1; + outR <<= 1; + outR |= inL >>> j4 + i6 & 1; + } + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$1v.pc1 = function pc1(inL, inR, out, off) { + var outL = 0; + var outR = 0; + for (var i6 = 7; i6 >= 5; i6--) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inL >> j4 + i6 & 1; + } + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outL <<= 1; + outL |= inR >> j4 + i6 & 1; + } + for (var i6 = 1; i6 <= 3; i6++) { + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inR >> j4 + i6 & 1; + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inL >> j4 + i6 & 1; + } + } + for (var j4 = 0; j4 <= 24; j4 += 8) { + outR <<= 1; + outR |= inL >> j4 + i6 & 1; + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$1v.r28shl = function r28shl(num, shift) { + return num << shift & 268435455 | num >>> 28 - shift; + }; + var pc2table = [ + // inL => outL + 14, + 11, + 17, + 4, + 27, + 23, + 25, + 0, + 13, + 22, + 7, + 18, + 5, + 9, + 16, + 24, + 2, + 20, + 12, + 21, + 1, + 8, + 15, + 26, + // inR => outR + 15, + 4, + 25, + 19, + 9, + 1, + 26, + 16, + 5, + 11, + 23, + 8, + 12, + 7, + 17, + 0, + 22, + 3, + 10, + 14, + 6, + 20, + 27, + 24 + ]; + exports$1v.pc2 = function pc2(inL, inR, out, off) { + var outL = 0; + var outR = 0; + var len = pc2table.length >>> 1; + for (var i6 = 0; i6 < len; i6++) { + outL <<= 1; + outL |= inL >>> pc2table[i6] & 1; + } + for (var i6 = len; i6 < pc2table.length; i6++) { + outR <<= 1; + outR |= inR >>> pc2table[i6] & 1; + } + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + exports$1v.expand = function expand(r6, out, off) { + var outL = 0; + var outR = 0; + outL = (r6 & 1) << 5 | r6 >>> 27; + for (var i6 = 23; i6 >= 15; i6 -= 4) { + outL <<= 6; + outL |= r6 >>> i6 & 63; + } + for (var i6 = 11; i6 >= 3; i6 -= 4) { + outR |= r6 >>> i6 & 63; + outR <<= 6; + } + outR |= (r6 & 31) << 1 | r6 >>> 31; + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; + }; + var sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11]; + exports$1v.substitute = function substitute(inL, inR) { + var out = 0; + for (var i6 = 0; i6 < 4; i6++) { + var b4 = inL >>> 18 - i6 * 6 & 63; + var sb = sTable[i6 * 64 + b4]; + out <<= 4; + out |= sb; + } + for (var i6 = 0; i6 < 4; i6++) { + var b4 = inR >>> 18 - i6 * 6 & 63; + var sb = sTable[4 * 64 + i6 * 64 + b4]; + out <<= 4; + out |= sb; + } + return out >>> 0; + }; + var permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7]; + exports$1v.permute = function permute(num) { + var out = 0; + for (var i6 = 0; i6 < permuteTable.length; i6++) { + out <<= 1; + out |= num >>> permuteTable[i6] & 1; + } + return out >>> 0; + }; + exports$1v.padSplit = function padSplit(num, size, group) { + var str = num.toString(2); + while (str.length < size) + str = "0" + str; + var out = []; + for (var i6 = 0; i6 < size; i6 += group) + out.push(str.slice(i6, i6 + group)); + return out.join(" "); + }; + return exports$1v; +} +var exports$1u = {}; +var _dewExec$1t = false; +function dew$1t() { + if (_dewExec$1t) + return exports$1u; + _dewExec$1t = true; + exports$1u = assert; + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + assert.equal = function assertEqual(l6, r6, msg) { + if (l6 != r6) + throw new Error(msg || "Assertion failed: " + l6 + " != " + r6); + }; + return exports$1u; +} +var exports$1t = {}; +var _dewExec$1s = false; +function dew$1s() { + if (_dewExec$1s) + return exports$1t; + _dewExec$1s = true; + var assert = dew$1t(); + function Cipher2(options) { + this.options = options; + this.type = this.options.type; + this.blockSize = 8; + this._init(); + this.buffer = new Array(this.blockSize); + this.bufferOff = 0; + } + exports$1t = Cipher2; + Cipher2.prototype._init = function _init() { + }; + Cipher2.prototype.update = function update(data) { + if (data.length === 0) + return []; + if (this.type === "decrypt") + return this._updateDecrypt(data); + else + return this._updateEncrypt(data); + }; + Cipher2.prototype._buffer = function _buffer(data, off) { + var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); + for (var i6 = 0; i6 < min; i6++) + this.buffer[this.bufferOff + i6] = data[off + i6]; + this.bufferOff += min; + return min; + }; + Cipher2.prototype._flushBuffer = function _flushBuffer(out, off) { + this._update(this.buffer, 0, out, off); + this.bufferOff = 0; + return this.blockSize; + }; + Cipher2.prototype._updateEncrypt = function _updateEncrypt(data) { + var inputOff = 0; + var outputOff = 0; + var count = (this.bufferOff + data.length) / this.blockSize | 0; + var out = new Array(count * this.blockSize); + if (this.bufferOff !== 0) { + inputOff += this._buffer(data, inputOff); + if (this.bufferOff === this.buffer.length) + outputOff += this._flushBuffer(out, outputOff); + } + var max = data.length - (data.length - inputOff) % this.blockSize; + for (; inputOff < max; inputOff += this.blockSize) { + this._update(data, inputOff, out, outputOff); + outputOff += this.blockSize; + } + for (; inputOff < data.length; inputOff++, this.bufferOff++) + this.buffer[this.bufferOff] = data[inputOff]; + return out; + }; + Cipher2.prototype._updateDecrypt = function _updateDecrypt(data) { + var inputOff = 0; + var outputOff = 0; + var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; + var out = new Array(count * this.blockSize); + for (; count > 0; count--) { + inputOff += this._buffer(data, inputOff); + outputOff += this._flushBuffer(out, outputOff); + } + inputOff += this._buffer(data, inputOff); + return out; + }; + Cipher2.prototype.final = function final(buffer2) { + var first; + if (buffer2) + first = this.update(buffer2); + var last; + if (this.type === "encrypt") + last = this._finalEncrypt(); + else + last = this._finalDecrypt(); + if (first) + return first.concat(last); + else + return last; + }; + Cipher2.prototype._pad = function _pad(buffer2, off) { + if (off === 0) + return false; + while (off < buffer2.length) + buffer2[off++] = 0; + return true; + }; + Cipher2.prototype._finalEncrypt = function _finalEncrypt() { + if (!this._pad(this.buffer, this.bufferOff)) + return []; + var out = new Array(this.blockSize); + this._update(this.buffer, 0, out, 0); + return out; + }; + Cipher2.prototype._unpad = function _unpad(buffer2) { + return buffer2; + }; + Cipher2.prototype._finalDecrypt = function _finalDecrypt() { + assert.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt"); + var out = new Array(this.blockSize); + this._flushBuffer(out, 0); + return this._unpad(out); + }; + return exports$1t; +} +var exports$1s = {}; +var _dewExec$1r = false; +function dew$1r() { + if (_dewExec$1r) + return exports$1s; + _dewExec$1r = true; + var assert = dew$1t(); + var inherits2 = dew$f$2(); + var utils = dew$1u(); + var Cipher2 = dew$1s(); + function DESState() { + this.tmp = new Array(2); + this.keys = null; + } + function DES(options) { + Cipher2.call(this, options); + var state = new DESState(); + this._desState = state; + this.deriveKeys(state, options.key); + } + inherits2(DES, Cipher2); + exports$1s = DES; + DES.create = function create(options) { + return new DES(options); + }; + var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]; + DES.prototype.deriveKeys = function deriveKeys(state, key) { + state.keys = new Array(16 * 2); + assert.equal(key.length, this.blockSize, "Invalid key length"); + var kL = utils.readUInt32BE(key, 0); + var kR = utils.readUInt32BE(key, 4); + utils.pc1(kL, kR, state.tmp, 0); + kL = state.tmp[0]; + kR = state.tmp[1]; + for (var i6 = 0; i6 < state.keys.length; i6 += 2) { + var shift = shiftTable[i6 >>> 1]; + kL = utils.r28shl(kL, shift); + kR = utils.r28shl(kR, shift); + utils.pc2(kL, kR, state.keys, i6); + } + }; + DES.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._desState; + var l6 = utils.readUInt32BE(inp, inOff); + var r6 = utils.readUInt32BE(inp, inOff + 4); + utils.ip(l6, r6, state.tmp, 0); + l6 = state.tmp[0]; + r6 = state.tmp[1]; + if (this.type === "encrypt") + this._encrypt(state, l6, r6, state.tmp, 0); + else + this._decrypt(state, l6, r6, state.tmp, 0); + l6 = state.tmp[0]; + r6 = state.tmp[1]; + utils.writeUInt32BE(out, l6, outOff); + utils.writeUInt32BE(out, r6, outOff + 4); + }; + DES.prototype._pad = function _pad(buffer2, off) { + var value = buffer2.length - off; + for (var i6 = off; i6 < buffer2.length; i6++) + buffer2[i6] = value; + return true; + }; + DES.prototype._unpad = function _unpad(buffer2) { + var pad = buffer2[buffer2.length - 1]; + for (var i6 = buffer2.length - pad; i6 < buffer2.length; i6++) + assert.equal(buffer2[i6], pad); + return buffer2.slice(0, buffer2.length - pad); + }; + DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { + var l6 = lStart; + var r6 = rStart; + for (var i6 = 0; i6 < state.keys.length; i6 += 2) { + var keyL = state.keys[i6]; + var keyR = state.keys[i6 + 1]; + utils.expand(r6, state.tmp, 0); + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s6 = utils.substitute(keyL, keyR); + var f7 = utils.permute(s6); + var t6 = r6; + r6 = (l6 ^ f7) >>> 0; + l6 = t6; + } + utils.rip(r6, l6, out, off); + }; + DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { + var l6 = rStart; + var r6 = lStart; + for (var i6 = state.keys.length - 2; i6 >= 0; i6 -= 2) { + var keyL = state.keys[i6]; + var keyR = state.keys[i6 + 1]; + utils.expand(l6, state.tmp, 0); + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s6 = utils.substitute(keyL, keyR); + var f7 = utils.permute(s6); + var t6 = l6; + l6 = (r6 ^ f7) >>> 0; + r6 = t6; + } + utils.rip(l6, r6, out, off); + }; + return exports$1s; +} +var exports$1r = {}; +var _dewExec$1q = false; +function dew$1q() { + if (_dewExec$1q) + return exports$1r; + _dewExec$1q = true; + var assert = dew$1t(); + var inherits2 = dew$f$2(); + var proto = {}; + function CBCState(iv) { + assert.equal(iv.length, 8, "Invalid IV length"); + this.iv = new Array(8); + for (var i6 = 0; i6 < this.iv.length; i6++) + this.iv[i6] = iv[i6]; + } + function instantiate(Base) { + function CBC(options) { + Base.call(this, options); + this._cbcInit(); + } + inherits2(CBC, Base); + var keys = Object.keys(proto); + for (var i6 = 0; i6 < keys.length; i6++) { + var key = keys[i6]; + CBC.prototype[key] = proto[key]; + } + CBC.create = function create(options) { + return new CBC(options); + }; + return CBC; + } + exports$1r.instantiate = instantiate; + proto._cbcInit = function _cbcInit() { + var state = new CBCState(this.options.iv); + this._cbcState = state; + }; + proto._update = function _update(inp, inOff, out, outOff) { + var state = this._cbcState; + var superProto = this.constructor.super_.prototype; + var iv = state.iv; + if (this.type === "encrypt") { + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] ^= inp[inOff + i6]; + superProto._update.call(this, iv, 0, out, outOff); + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] = out[outOff + i6]; + } else { + superProto._update.call(this, inp, inOff, out, outOff); + for (var i6 = 0; i6 < this.blockSize; i6++) + out[outOff + i6] ^= iv[i6]; + for (var i6 = 0; i6 < this.blockSize; i6++) + iv[i6] = inp[inOff + i6]; + } + }; + return exports$1r; +} +var exports$1q = {}; +var _dewExec$1p = false; +function dew$1p() { + if (_dewExec$1p) + return exports$1q; + _dewExec$1p = true; + var assert = dew$1t(); + var inherits2 = dew$f$2(); + var Cipher2 = dew$1s(); + var DES = dew$1r(); + function EDEState(type, key) { + assert.equal(key.length, 24, "Invalid key length"); + var k1 = key.slice(0, 8); + var k22 = key.slice(8, 16); + var k32 = key.slice(16, 24); + if (type === "encrypt") { + this.ciphers = [DES.create({ + type: "encrypt", + key: k1 + }), DES.create({ + type: "decrypt", + key: k22 + }), DES.create({ + type: "encrypt", + key: k32 + })]; + } else { + this.ciphers = [DES.create({ + type: "decrypt", + key: k32 + }), DES.create({ + type: "encrypt", + key: k22 + }), DES.create({ + type: "decrypt", + key: k1 + })]; + } + } + function EDE(options) { + Cipher2.call(this, options); + var state = new EDEState(this.type, this.options.key); + this._edeState = state; + } + inherits2(EDE, Cipher2); + exports$1q = EDE; + EDE.create = function create(options) { + return new EDE(options); + }; + EDE.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._edeState; + state.ciphers[0]._update(inp, inOff, out, outOff); + state.ciphers[1]._update(out, outOff, out, outOff); + state.ciphers[2]._update(out, outOff, out, outOff); + }; + EDE.prototype._pad = DES.prototype._pad; + EDE.prototype._unpad = DES.prototype._unpad; + return exports$1q; +} +var exports$1p = {}; +var _dewExec$1o = false; +function dew$1o() { + if (_dewExec$1o) + return exports$1p; + _dewExec$1o = true; + exports$1p.utils = dew$1u(); + exports$1p.Cipher = dew$1s(); + exports$1p.DES = dew$1r(); + exports$1p.CBC = dew$1q(); + exports$1p.EDE = dew$1p(); + return exports$1p; +} +var exports$1o = {}; +var _dewExec$1n = false; +var _global$k = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1n() { + if (_dewExec$1n) + return exports$1o; + _dewExec$1n = true; + var CipherBase = dew$1G(); + var des = dew$1o(); + var inherits2 = dew$f$2(); + var Buffer2 = dew$1T().Buffer; + var modes = { + "des-ede3-cbc": des.CBC.instantiate(des.EDE), + "des-ede3": des.EDE, + "des-ede-cbc": des.CBC.instantiate(des.EDE), + "des-ede": des.EDE, + "des-cbc": des.CBC.instantiate(des.DES), + "des-ecb": des.DES + }; + modes.des = modes["des-cbc"]; + modes.des3 = modes["des-ede3-cbc"]; + exports$1o = DES; + inherits2(DES, CipherBase); + function DES(opts) { + CipherBase.call(this || _global$k); + var modeName = opts.mode.toLowerCase(); + var mode = modes[modeName]; + var type; + if (opts.decrypt) { + type = "decrypt"; + } else { + type = "encrypt"; + } + var key = opts.key; + if (!Buffer2.isBuffer(key)) { + key = Buffer2.from(key); + } + if (modeName === "des-ede" || modeName === "des-ede-cbc") { + key = Buffer2.concat([key, key.slice(0, 8)]); + } + var iv = opts.iv; + if (!Buffer2.isBuffer(iv)) { + iv = Buffer2.from(iv); + } + (this || _global$k)._des = mode.create({ + key, + iv, + type + }); + } + DES.prototype._update = function(data) { + return Buffer2.from((this || _global$k)._des.update(data)); + }; + DES.prototype._final = function() { + return Buffer2.from((this || _global$k)._des.final()); + }; + return exports$1o; +} +var exports$1n = {}; +var _dewExec$1m = false; +function dew$1m() { + if (_dewExec$1m) + return exports$1n; + _dewExec$1m = true; + exports$1n.encrypt = function(self2, block) { + return self2._cipher.encryptBlock(block); + }; + exports$1n.decrypt = function(self2, block) { + return self2._cipher.decryptBlock(block); + }; + return exports$1n; +} +var exports$1m = {}; +var _dewExec$1l = false; +function dew$1l() { + if (_dewExec$1l) + return exports$1m; + _dewExec$1l = true; + var Buffer2 = e$1$1.Buffer; + exports$1m = function xor(a6, b4) { + var length = Math.min(a6.length, b4.length); + var buffer2 = new Buffer2(length); + for (var i6 = 0; i6 < length; ++i6) { + buffer2[i6] = a6[i6] ^ b4[i6]; + } + return buffer2; + }; + return exports$1m; +} +var exports$1l = {}; +var _dewExec$1k = false; +function dew$1k() { + if (_dewExec$1k) + return exports$1l; + _dewExec$1k = true; + var xor = dew$1l(); + exports$1l.encrypt = function(self2, block) { + var data = xor(block, self2._prev); + self2._prev = self2._cipher.encryptBlock(data); + return self2._prev; + }; + exports$1l.decrypt = function(self2, block) { + var pad = self2._prev; + self2._prev = block; + var out = self2._cipher.decryptBlock(block); + return xor(out, pad); + }; + return exports$1l; +} +var exports$1k = {}; +var _dewExec$1j = false; +function dew$1j() { + if (_dewExec$1j) + return exports$1k; + _dewExec$1j = true; + var Buffer2 = dew$1T().Buffer; + var xor = dew$1l(); + function encryptStart(self2, data, decrypt) { + var len = data.length; + var out = xor(data, self2._cache); + self2._cache = self2._cache.slice(len); + self2._prev = Buffer2.concat([self2._prev, decrypt ? data : out]); + return out; + } + exports$1k.encrypt = function(self2, data, decrypt) { + var out = Buffer2.allocUnsafe(0); + var len; + while (data.length) { + if (self2._cache.length === 0) { + self2._cache = self2._cipher.encryptBlock(self2._prev); + self2._prev = Buffer2.allocUnsafe(0); + } + if (self2._cache.length <= data.length) { + len = self2._cache.length; + out = Buffer2.concat([out, encryptStart(self2, data.slice(0, len), decrypt)]); + data = data.slice(len); + } else { + out = Buffer2.concat([out, encryptStart(self2, data, decrypt)]); + break; + } + } + return out; + }; + return exports$1k; +} +var exports$1j = {}; +var _dewExec$1i = false; +function dew$1i() { + if (_dewExec$1i) + return exports$1j; + _dewExec$1i = true; + var Buffer2 = dew$1T().Buffer; + function encryptByte(self2, byteParam, decrypt) { + var pad = self2._cipher.encryptBlock(self2._prev); + var out = pad[0] ^ byteParam; + self2._prev = Buffer2.concat([self2._prev.slice(1), Buffer2.from([decrypt ? byteParam : out])]); + return out; + } + exports$1j.encrypt = function(self2, chunk, decrypt) { + var len = chunk.length; + var out = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + out[i6] = encryptByte(self2, chunk[i6], decrypt); + } + return out; + }; + return exports$1j; +} +var exports$1i = {}; +var _dewExec$1h = false; +function dew$1h() { + if (_dewExec$1h) + return exports$1i; + _dewExec$1h = true; + var Buffer2 = dew$1T().Buffer; + function encryptByte(self2, byteParam, decrypt) { + var pad; + var i6 = -1; + var len = 8; + var out = 0; + var bit, value; + while (++i6 < len) { + pad = self2._cipher.encryptBlock(self2._prev); + bit = byteParam & 1 << 7 - i6 ? 128 : 0; + value = pad[0] ^ bit; + out += (value & 128) >> i6 % 8; + self2._prev = shiftIn(self2._prev, decrypt ? bit : value); + } + return out; + } + function shiftIn(buffer2, value) { + var len = buffer2.length; + var i6 = -1; + var out = Buffer2.allocUnsafe(buffer2.length); + buffer2 = Buffer2.concat([buffer2, Buffer2.from([value])]); + while (++i6 < len) { + out[i6] = buffer2[i6] << 1 | buffer2[i6 + 1] >> 7; + } + return out; + } + exports$1i.encrypt = function(self2, chunk, decrypt) { + var len = chunk.length; + var out = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + out[i6] = encryptByte(self2, chunk[i6], decrypt); + } + return out; + }; + return exports$1i; +} +var exports$1h = {}; +var _dewExec$1g = false; +function dew$1g() { + if (_dewExec$1g) + return exports$1h; + _dewExec$1g = true; + var Buffer2 = e$1$1.Buffer; + var xor = dew$1l(); + function getBlock(self2) { + self2._prev = self2._cipher.encryptBlock(self2._prev); + return self2._prev; + } + exports$1h.encrypt = function(self2, chunk) { + while (self2._cache.length < chunk.length) { + self2._cache = Buffer2.concat([self2._cache, getBlock(self2)]); + } + var pad = self2._cache.slice(0, chunk.length); + self2._cache = self2._cache.slice(chunk.length); + return xor(chunk, pad); + }; + return exports$1h; +} +var exports$1g = {}; +var _dewExec$1f = false; +function dew$1f() { + if (_dewExec$1f) + return exports$1g; + _dewExec$1f = true; + function incr32(iv) { + var len = iv.length; + var item; + while (len--) { + item = iv.readUInt8(len); + if (item === 255) { + iv.writeUInt8(0, len); + } else { + item++; + iv.writeUInt8(item, len); + break; + } + } + } + exports$1g = incr32; + return exports$1g; +} +var exports$1f = {}; +var _dewExec$1e = false; +function dew$1e() { + if (_dewExec$1e) + return exports$1f; + _dewExec$1e = true; + var xor = dew$1l(); + var Buffer2 = dew$1T().Buffer; + var incr32 = dew$1f(); + function getBlock(self2) { + var out = self2._cipher.encryptBlockRaw(self2._prev); + incr32(self2._prev); + return out; + } + var blockSize = 16; + exports$1f.encrypt = function(self2, chunk) { + var chunkNum = Math.ceil(chunk.length / blockSize); + var start = self2._cache.length; + self2._cache = Buffer2.concat([self2._cache, Buffer2.allocUnsafe(chunkNum * blockSize)]); + for (var i6 = 0; i6 < chunkNum; i6++) { + var out = getBlock(self2); + var offset = start + i6 * blockSize; + self2._cache.writeUInt32BE(out[0], offset + 0); + self2._cache.writeUInt32BE(out[1], offset + 4); + self2._cache.writeUInt32BE(out[2], offset + 8); + self2._cache.writeUInt32BE(out[3], offset + 12); + } + var pad = self2._cache.slice(0, chunk.length); + self2._cache = self2._cache.slice(chunk.length); + return xor(chunk, pad); + }; + return exports$1f; +} +var _list = { + "aes-128-ecb": { + "cipher": "AES", + "key": 128, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-192-ecb": { + "cipher": "AES", + "key": 192, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-256-ecb": { + "cipher": "AES", + "key": 256, + "iv": 0, + "mode": "ECB", + "type": "block" + }, + "aes-128-cbc": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-192-cbc": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-256-cbc": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes128": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes192": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes256": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CBC", + "type": "block" + }, + "aes-128-cfb": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-192-cfb": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-256-cfb": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB", + "type": "stream" + }, + "aes-128-cfb8": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-192-cfb8": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-256-cfb8": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB8", + "type": "stream" + }, + "aes-128-cfb1": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-192-cfb1": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-256-cfb1": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CFB1", + "type": "stream" + }, + "aes-128-ofb": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-192-ofb": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-256-ofb": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "OFB", + "type": "stream" + }, + "aes-128-ctr": { + "cipher": "AES", + "key": 128, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-192-ctr": { + "cipher": "AES", + "key": 192, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-256-ctr": { + "cipher": "AES", + "key": 256, + "iv": 16, + "mode": "CTR", + "type": "stream" + }, + "aes-128-gcm": { + "cipher": "AES", + "key": 128, + "iv": 12, + "mode": "GCM", + "type": "auth" + }, + "aes-192-gcm": { + "cipher": "AES", + "key": 192, + "iv": 12, + "mode": "GCM", + "type": "auth" + }, + "aes-256-gcm": { + "cipher": "AES", + "key": 256, + "iv": 12, + "mode": "GCM", + "type": "auth" + } +}; +var exports$1e = {}; +var _dewExec$1d = false; +function dew$1d() { + if (_dewExec$1d) + return exports$1e; + _dewExec$1d = true; + var modeModules = { + ECB: dew$1m(), + CBC: dew$1k(), + CFB: dew$1j(), + CFB8: dew$1i(), + CFB1: dew$1h(), + OFB: dew$1g(), + CTR: dew$1e(), + GCM: dew$1e() + }; + var modes = _list; + for (var key in modes) { + modes[key].module = modeModules[modes[key].mode]; + } + exports$1e = modes; + return exports$1e; +} +var exports$1d = {}; +var _dewExec$1c = false; +var _global$j = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1c() { + if (_dewExec$1c) + return exports$1d; + _dewExec$1c = true; + var Buffer2 = dew$1T().Buffer; + function asUInt32Array(buf) { + if (!Buffer2.isBuffer(buf)) + buf = Buffer2.from(buf); + var len = buf.length / 4 | 0; + var out = new Array(len); + for (var i6 = 0; i6 < len; i6++) { + out[i6] = buf.readUInt32BE(i6 * 4); + } + return out; + } + function scrubVec(v5) { + for (var i6 = 0; i6 < v5.length; v5++) { + v5[i6] = 0; + } + } + function cryptBlock(M4, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0]; + var SUB_MIX1 = SUB_MIX[1]; + var SUB_MIX2 = SUB_MIX[2]; + var SUB_MIX3 = SUB_MIX[3]; + var s0 = M4[0] ^ keySchedule[0]; + var s1 = M4[1] ^ keySchedule[1]; + var s22 = M4[2] ^ keySchedule[2]; + var s32 = M4[3] ^ keySchedule[3]; + var t0, t1, t22, t32; + var ksRow = 4; + for (var round = 1; round < nRounds; round++) { + t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 255] ^ SUB_MIX2[s22 >>> 8 & 255] ^ SUB_MIX3[s32 & 255] ^ keySchedule[ksRow++]; + t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s22 >>> 16 & 255] ^ SUB_MIX2[s32 >>> 8 & 255] ^ SUB_MIX3[s0 & 255] ^ keySchedule[ksRow++]; + t22 = SUB_MIX0[s22 >>> 24] ^ SUB_MIX1[s32 >>> 16 & 255] ^ SUB_MIX2[s0 >>> 8 & 255] ^ SUB_MIX3[s1 & 255] ^ keySchedule[ksRow++]; + t32 = SUB_MIX0[s32 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 255] ^ SUB_MIX2[s1 >>> 8 & 255] ^ SUB_MIX3[s22 & 255] ^ keySchedule[ksRow++]; + s0 = t0; + s1 = t1; + s22 = t22; + s32 = t32; + } + t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 255] << 16 | SBOX[s22 >>> 8 & 255] << 8 | SBOX[s32 & 255]) ^ keySchedule[ksRow++]; + t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s22 >>> 16 & 255] << 16 | SBOX[s32 >>> 8 & 255] << 8 | SBOX[s0 & 255]) ^ keySchedule[ksRow++]; + t22 = (SBOX[s22 >>> 24] << 24 | SBOX[s32 >>> 16 & 255] << 16 | SBOX[s0 >>> 8 & 255] << 8 | SBOX[s1 & 255]) ^ keySchedule[ksRow++]; + t32 = (SBOX[s32 >>> 24] << 24 | SBOX[s0 >>> 16 & 255] << 16 | SBOX[s1 >>> 8 & 255] << 8 | SBOX[s22 & 255]) ^ keySchedule[ksRow++]; + t0 = t0 >>> 0; + t1 = t1 >>> 0; + t22 = t22 >>> 0; + t32 = t32 >>> 0; + return [t0, t1, t22, t32]; + } + var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; + var G3 = function() { + var d5 = new Array(256); + for (var j4 = 0; j4 < 256; j4++) { + if (j4 < 128) { + d5[j4] = j4 << 1; + } else { + d5[j4] = j4 << 1 ^ 283; + } + } + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX = [[], [], [], []]; + var INV_SUB_MIX = [[], [], [], []]; + var x4 = 0; + var xi = 0; + for (var i6 = 0; i6 < 256; ++i6) { + var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4; + sx = sx >>> 8 ^ sx & 255 ^ 99; + SBOX[x4] = sx; + INV_SBOX[sx] = x4; + var x22 = d5[x4]; + var x42 = d5[x22]; + var x8 = d5[x42]; + var t6 = d5[sx] * 257 ^ sx * 16843008; + SUB_MIX[0][x4] = t6 << 24 | t6 >>> 8; + SUB_MIX[1][x4] = t6 << 16 | t6 >>> 16; + SUB_MIX[2][x4] = t6 << 8 | t6 >>> 24; + SUB_MIX[3][x4] = t6; + t6 = x8 * 16843009 ^ x42 * 65537 ^ x22 * 257 ^ x4 * 16843008; + INV_SUB_MIX[0][sx] = t6 << 24 | t6 >>> 8; + INV_SUB_MIX[1][sx] = t6 << 16 | t6 >>> 16; + INV_SUB_MIX[2][sx] = t6 << 8 | t6 >>> 24; + INV_SUB_MIX[3][sx] = t6; + if (x4 === 0) { + x4 = xi = 1; + } else { + x4 = x22 ^ d5[d5[d5[x8 ^ x22]]]; + xi ^= d5[d5[xi]]; + } + } + return { + SBOX, + INV_SBOX, + SUB_MIX, + INV_SUB_MIX + }; + }(); + function AES(key) { + (this || _global$j)._key = asUInt32Array(key); + this._reset(); + } + AES.blockSize = 4 * 4; + AES.keySize = 256 / 8; + AES.prototype.blockSize = AES.blockSize; + AES.prototype.keySize = AES.keySize; + AES.prototype._reset = function() { + var keyWords = (this || _global$j)._key; + var keySize = keyWords.length; + var nRounds = keySize + 6; + var ksRows = (nRounds + 1) * 4; + var keySchedule = []; + for (var k4 = 0; k4 < keySize; k4++) { + keySchedule[k4] = keyWords[k4]; + } + for (k4 = keySize; k4 < ksRows; k4++) { + var t6 = keySchedule[k4 - 1]; + if (k4 % keySize === 0) { + t6 = t6 << 8 | t6 >>> 24; + t6 = G3.SBOX[t6 >>> 24] << 24 | G3.SBOX[t6 >>> 16 & 255] << 16 | G3.SBOX[t6 >>> 8 & 255] << 8 | G3.SBOX[t6 & 255]; + t6 ^= RCON[k4 / keySize | 0] << 24; + } else if (keySize > 6 && k4 % keySize === 4) { + t6 = G3.SBOX[t6 >>> 24] << 24 | G3.SBOX[t6 >>> 16 & 255] << 16 | G3.SBOX[t6 >>> 8 & 255] << 8 | G3.SBOX[t6 & 255]; + } + keySchedule[k4] = keySchedule[k4 - keySize] ^ t6; + } + var invKeySchedule = []; + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik; + var tt2 = keySchedule[ksR - (ik % 4 ? 0 : 4)]; + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt2; + } else { + invKeySchedule[ik] = G3.INV_SUB_MIX[0][G3.SBOX[tt2 >>> 24]] ^ G3.INV_SUB_MIX[1][G3.SBOX[tt2 >>> 16 & 255]] ^ G3.INV_SUB_MIX[2][G3.SBOX[tt2 >>> 8 & 255]] ^ G3.INV_SUB_MIX[3][G3.SBOX[tt2 & 255]]; + } + } + (this || _global$j)._nRounds = nRounds; + (this || _global$j)._keySchedule = keySchedule; + (this || _global$j)._invKeySchedule = invKeySchedule; + }; + AES.prototype.encryptBlockRaw = function(M4) { + M4 = asUInt32Array(M4); + return cryptBlock(M4, (this || _global$j)._keySchedule, G3.SUB_MIX, G3.SBOX, (this || _global$j)._nRounds); + }; + AES.prototype.encryptBlock = function(M4) { + var out = this.encryptBlockRaw(M4); + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0], 0); + buf.writeUInt32BE(out[1], 4); + buf.writeUInt32BE(out[2], 8); + buf.writeUInt32BE(out[3], 12); + return buf; + }; + AES.prototype.decryptBlock = function(M4) { + M4 = asUInt32Array(M4); + var m1 = M4[1]; + M4[1] = M4[3]; + M4[3] = m1; + var out = cryptBlock(M4, (this || _global$j)._invKeySchedule, G3.INV_SUB_MIX, G3.INV_SBOX, (this || _global$j)._nRounds); + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0], 0); + buf.writeUInt32BE(out[3], 4); + buf.writeUInt32BE(out[2], 8); + buf.writeUInt32BE(out[1], 12); + return buf; + }; + AES.prototype.scrub = function() { + scrubVec((this || _global$j)._keySchedule); + scrubVec((this || _global$j)._invKeySchedule); + scrubVec((this || _global$j)._key); + }; + exports$1d.AES = AES; + return exports$1d; +} +var exports$1c = {}; +var _dewExec$1b = false; +var _global$i = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1b() { + if (_dewExec$1b) + return exports$1c; + _dewExec$1b = true; + var Buffer2 = dew$1T().Buffer; + var ZEROES = Buffer2.alloc(16, 0); + function toArray(buf) { + return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)]; + } + function fromArray(out) { + var buf = Buffer2.allocUnsafe(16); + buf.writeUInt32BE(out[0] >>> 0, 0); + buf.writeUInt32BE(out[1] >>> 0, 4); + buf.writeUInt32BE(out[2] >>> 0, 8); + buf.writeUInt32BE(out[3] >>> 0, 12); + return buf; + } + function GHASH(key) { + (this || _global$i).h = key; + (this || _global$i).state = Buffer2.alloc(16, 0); + (this || _global$i).cache = Buffer2.allocUnsafe(0); + } + GHASH.prototype.ghash = function(block) { + var i6 = -1; + while (++i6 < block.length) { + (this || _global$i).state[i6] ^= block[i6]; + } + this._multiply(); + }; + GHASH.prototype._multiply = function() { + var Vi = toArray((this || _global$i).h); + var Zi = [0, 0, 0, 0]; + var j4, xi, lsbVi; + var i6 = -1; + while (++i6 < 128) { + xi = ((this || _global$i).state[~~(i6 / 8)] & 1 << 7 - i6 % 8) !== 0; + if (xi) { + Zi[0] ^= Vi[0]; + Zi[1] ^= Vi[1]; + Zi[2] ^= Vi[2]; + Zi[3] ^= Vi[3]; + } + lsbVi = (Vi[3] & 1) !== 0; + for (j4 = 3; j4 > 0; j4--) { + Vi[j4] = Vi[j4] >>> 1 | (Vi[j4 - 1] & 1) << 31; + } + Vi[0] = Vi[0] >>> 1; + if (lsbVi) { + Vi[0] = Vi[0] ^ 225 << 24; + } + } + (this || _global$i).state = fromArray(Zi); + }; + GHASH.prototype.update = function(buf) { + (this || _global$i).cache = Buffer2.concat([(this || _global$i).cache, buf]); + var chunk; + while ((this || _global$i).cache.length >= 16) { + chunk = (this || _global$i).cache.slice(0, 16); + (this || _global$i).cache = (this || _global$i).cache.slice(16); + this.ghash(chunk); + } + }; + GHASH.prototype.final = function(abl, bl) { + if ((this || _global$i).cache.length) { + this.ghash(Buffer2.concat([(this || _global$i).cache, ZEROES], 16)); + } + this.ghash(fromArray([0, abl, 0, bl])); + return (this || _global$i).state; + }; + exports$1c = GHASH; + return exports$1c; +} +var exports$1b = {}; +var _dewExec$1a = false; +var _global$h = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1a() { + if (_dewExec$1a) + return exports$1b; + _dewExec$1a = true; + var aes = dew$1c(); + var Buffer2 = dew$1T().Buffer; + var Transform = dew$1G(); + var inherits2 = dew$f$2(); + var GHASH = dew$1b(); + var xor = dew$1l(); + var incr32 = dew$1f(); + function xorTest(a6, b4) { + var out = 0; + if (a6.length !== b4.length) + out++; + var len = Math.min(a6.length, b4.length); + for (var i6 = 0; i6 < len; ++i6) { + out += a6[i6] ^ b4[i6]; + } + return out; + } + function calcIv(self2, iv, ck) { + if (iv.length === 12) { + self2._finID = Buffer2.concat([iv, Buffer2.from([0, 0, 0, 1])]); + return Buffer2.concat([iv, Buffer2.from([0, 0, 0, 2])]); + } + var ghash = new GHASH(ck); + var len = iv.length; + var toPad = len % 16; + ghash.update(iv); + if (toPad) { + toPad = 16 - toPad; + ghash.update(Buffer2.alloc(toPad, 0)); + } + ghash.update(Buffer2.alloc(8, 0)); + var ivBits = len * 8; + var tail = Buffer2.alloc(8); + tail.writeUIntBE(ivBits, 0, 8); + ghash.update(tail); + self2._finID = ghash.state; + var out = Buffer2.from(self2._finID); + incr32(out); + return out; + } + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this || _global$h); + var h6 = Buffer2.alloc(4, 0); + (this || _global$h)._cipher = new aes.AES(key); + var ck = (this || _global$h)._cipher.encryptBlock(h6); + (this || _global$h)._ghash = new GHASH(ck); + iv = calcIv(this || _global$h, iv, ck); + (this || _global$h)._prev = Buffer2.from(iv); + (this || _global$h)._cache = Buffer2.allocUnsafe(0); + (this || _global$h)._secCache = Buffer2.allocUnsafe(0); + (this || _global$h)._decrypt = decrypt; + (this || _global$h)._alen = 0; + (this || _global$h)._len = 0; + (this || _global$h)._mode = mode; + (this || _global$h)._authTag = null; + (this || _global$h)._called = false; + } + inherits2(StreamCipher, Transform); + StreamCipher.prototype._update = function(chunk) { + if (!(this || _global$h)._called && (this || _global$h)._alen) { + var rump = 16 - (this || _global$h)._alen % 16; + if (rump < 16) { + rump = Buffer2.alloc(rump, 0); + (this || _global$h)._ghash.update(rump); + } + } + (this || _global$h)._called = true; + var out = (this || _global$h)._mode.encrypt(this || _global$h, chunk); + if ((this || _global$h)._decrypt) { + (this || _global$h)._ghash.update(chunk); + } else { + (this || _global$h)._ghash.update(out); + } + (this || _global$h)._len += chunk.length; + return out; + }; + StreamCipher.prototype._final = function() { + if ((this || _global$h)._decrypt && !(this || _global$h)._authTag) + throw new Error("Unsupported state or unable to authenticate data"); + var tag = xor((this || _global$h)._ghash.final((this || _global$h)._alen * 8, (this || _global$h)._len * 8), (this || _global$h)._cipher.encryptBlock((this || _global$h)._finID)); + if ((this || _global$h)._decrypt && xorTest(tag, (this || _global$h)._authTag)) + throw new Error("Unsupported state or unable to authenticate data"); + (this || _global$h)._authTag = tag; + (this || _global$h)._cipher.scrub(); + }; + StreamCipher.prototype.getAuthTag = function getAuthTag() { + if ((this || _global$h)._decrypt || !Buffer2.isBuffer((this || _global$h)._authTag)) + throw new Error("Attempting to get auth tag in unsupported state"); + return (this || _global$h)._authTag; + }; + StreamCipher.prototype.setAuthTag = function setAuthTag(tag) { + if (!(this || _global$h)._decrypt) + throw new Error("Attempting to set auth tag in unsupported state"); + (this || _global$h)._authTag = tag; + }; + StreamCipher.prototype.setAAD = function setAAD(buf) { + if ((this || _global$h)._called) + throw new Error("Attempting to set AAD in unsupported state"); + (this || _global$h)._ghash.update(buf); + (this || _global$h)._alen += buf.length; + }; + exports$1b = StreamCipher; + return exports$1b; +} +var exports$1a = {}; +var _dewExec$19 = false; +var _global$g = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$19() { + if (_dewExec$19) + return exports$1a; + _dewExec$19 = true; + var aes = dew$1c(); + var Buffer2 = dew$1T().Buffer; + var Transform = dew$1G(); + var inherits2 = dew$f$2(); + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this || _global$g); + (this || _global$g)._cipher = new aes.AES(key); + (this || _global$g)._prev = Buffer2.from(iv); + (this || _global$g)._cache = Buffer2.allocUnsafe(0); + (this || _global$g)._secCache = Buffer2.allocUnsafe(0); + (this || _global$g)._decrypt = decrypt; + (this || _global$g)._mode = mode; + } + inherits2(StreamCipher, Transform); + StreamCipher.prototype._update = function(chunk) { + return (this || _global$g)._mode.encrypt(this || _global$g, chunk, (this || _global$g)._decrypt); + }; + StreamCipher.prototype._final = function() { + (this || _global$g)._cipher.scrub(); + }; + exports$1a = StreamCipher; + return exports$1a; +} +var exports$19 = {}; +var _dewExec$18 = false; +function dew$18() { + if (_dewExec$18) + return exports$19; + _dewExec$18 = true; + var Buffer2 = dew$1T().Buffer; + var MD5 = dew$1Q(); + function EVP_BytesToKey(password, salt, keyBits, ivLen) { + if (!Buffer2.isBuffer(password)) + password = Buffer2.from(password, "binary"); + if (salt) { + if (!Buffer2.isBuffer(salt)) + salt = Buffer2.from(salt, "binary"); + if (salt.length !== 8) + throw new RangeError("salt should be Buffer with 8 byte length"); + } + var keyLen = keyBits / 8; + var key = Buffer2.alloc(keyLen); + var iv = Buffer2.alloc(ivLen || 0); + var tmp = Buffer2.alloc(0); + while (keyLen > 0 || ivLen > 0) { + var hash = new MD5(); + hash.update(tmp); + hash.update(password); + if (salt) + hash.update(salt); + tmp = hash.digest(); + var used = 0; + if (keyLen > 0) { + var keyStart = key.length - keyLen; + used = Math.min(keyLen, tmp.length); + tmp.copy(key, keyStart, 0, used); + keyLen -= used; + } + if (used < tmp.length && ivLen > 0) { + var ivStart = iv.length - ivLen; + var length = Math.min(ivLen, tmp.length - used); + tmp.copy(iv, ivStart, used, used + length); + ivLen -= length; + } + } + tmp.fill(0); + return { + key, + iv + }; + } + exports$19 = EVP_BytesToKey; + return exports$19; +} +var exports$18 = {}; +var _dewExec$17 = false; +var _global$f = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$17() { + if (_dewExec$17) + return exports$18; + _dewExec$17 = true; + var MODES = dew$1d(); + var AuthCipher = dew$1a(); + var Buffer2 = dew$1T().Buffer; + var StreamCipher = dew$19(); + var Transform = dew$1G(); + var aes = dew$1c(); + var ebtk = dew$18(); + var inherits2 = dew$f$2(); + function Cipher2(mode, key, iv) { + Transform.call(this || _global$f); + (this || _global$f)._cache = new Splitter(); + (this || _global$f)._cipher = new aes.AES(key); + (this || _global$f)._prev = Buffer2.from(iv); + (this || _global$f)._mode = mode; + (this || _global$f)._autopadding = true; + } + inherits2(Cipher2, Transform); + Cipher2.prototype._update = function(data) { + (this || _global$f)._cache.add(data); + var chunk; + var thing; + var out = []; + while (chunk = (this || _global$f)._cache.get()) { + thing = (this || _global$f)._mode.encrypt(this || _global$f, chunk); + out.push(thing); + } + return Buffer2.concat(out); + }; + var PADDING = Buffer2.alloc(16, 16); + Cipher2.prototype._final = function() { + var chunk = (this || _global$f)._cache.flush(); + if ((this || _global$f)._autopadding) { + chunk = (this || _global$f)._mode.encrypt(this || _global$f, chunk); + (this || _global$f)._cipher.scrub(); + return chunk; + } + if (!chunk.equals(PADDING)) { + (this || _global$f)._cipher.scrub(); + throw new Error("data not multiple of block length"); + } + }; + Cipher2.prototype.setAutoPadding = function(setTo) { + (this || _global$f)._autopadding = !!setTo; + return this || _global$f; + }; + function Splitter() { + (this || _global$f).cache = Buffer2.allocUnsafe(0); + } + Splitter.prototype.add = function(data) { + (this || _global$f).cache = Buffer2.concat([(this || _global$f).cache, data]); + }; + Splitter.prototype.get = function() { + if ((this || _global$f).cache.length > 15) { + var out = (this || _global$f).cache.slice(0, 16); + (this || _global$f).cache = (this || _global$f).cache.slice(16); + return out; + } + return null; + }; + Splitter.prototype.flush = function() { + var len = 16 - (this || _global$f).cache.length; + var padBuff = Buffer2.allocUnsafe(len); + var i6 = -1; + while (++i6 < len) { + padBuff.writeUInt8(len, i6); + } + return Buffer2.concat([(this || _global$f).cache, padBuff]); + }; + function createCipheriv2(suite, password, iv) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + if (typeof password === "string") + password = Buffer2.from(password); + if (password.length !== config.key / 8) + throw new TypeError("invalid key length " + password.length); + if (typeof iv === "string") + iv = Buffer2.from(iv); + if (config.mode !== "GCM" && iv.length !== config.iv) + throw new TypeError("invalid iv length " + iv.length); + if (config.type === "stream") { + return new StreamCipher(config.module, password, iv); + } else if (config.type === "auth") { + return new AuthCipher(config.module, password, iv); + } + return new Cipher2(config.module, password, iv); + } + function createCipher2(suite, password) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + var keys = ebtk(password, false, config.key, config.iv); + return createCipheriv2(suite, keys.key, keys.iv); + } + exports$18.createCipheriv = createCipheriv2; + exports$18.createCipher = createCipher2; + return exports$18; +} +var exports$17 = {}; +var _dewExec$16 = false; +var _global$e = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$16() { + if (_dewExec$16) + return exports$17; + _dewExec$16 = true; + var AuthCipher = dew$1a(); + var Buffer2 = dew$1T().Buffer; + var MODES = dew$1d(); + var StreamCipher = dew$19(); + var Transform = dew$1G(); + var aes = dew$1c(); + var ebtk = dew$18(); + var inherits2 = dew$f$2(); + function Decipher2(mode, key, iv) { + Transform.call(this || _global$e); + (this || _global$e)._cache = new Splitter(); + (this || _global$e)._last = void 0; + (this || _global$e)._cipher = new aes.AES(key); + (this || _global$e)._prev = Buffer2.from(iv); + (this || _global$e)._mode = mode; + (this || _global$e)._autopadding = true; + } + inherits2(Decipher2, Transform); + Decipher2.prototype._update = function(data) { + (this || _global$e)._cache.add(data); + var chunk; + var thing; + var out = []; + while (chunk = (this || _global$e)._cache.get((this || _global$e)._autopadding)) { + thing = (this || _global$e)._mode.decrypt(this || _global$e, chunk); + out.push(thing); + } + return Buffer2.concat(out); + }; + Decipher2.prototype._final = function() { + var chunk = (this || _global$e)._cache.flush(); + if ((this || _global$e)._autopadding) { + return unpad((this || _global$e)._mode.decrypt(this || _global$e, chunk)); + } else if (chunk) { + throw new Error("data not multiple of block length"); + } + }; + Decipher2.prototype.setAutoPadding = function(setTo) { + (this || _global$e)._autopadding = !!setTo; + return this || _global$e; + }; + function Splitter() { + (this || _global$e).cache = Buffer2.allocUnsafe(0); + } + Splitter.prototype.add = function(data) { + (this || _global$e).cache = Buffer2.concat([(this || _global$e).cache, data]); + }; + Splitter.prototype.get = function(autoPadding) { + var out; + if (autoPadding) { + if ((this || _global$e).cache.length > 16) { + out = (this || _global$e).cache.slice(0, 16); + (this || _global$e).cache = (this || _global$e).cache.slice(16); + return out; + } + } else { + if ((this || _global$e).cache.length >= 16) { + out = (this || _global$e).cache.slice(0, 16); + (this || _global$e).cache = (this || _global$e).cache.slice(16); + return out; + } + } + return null; + }; + Splitter.prototype.flush = function() { + if ((this || _global$e).cache.length) + return (this || _global$e).cache; + }; + function unpad(last) { + var padded = last[15]; + if (padded < 1 || padded > 16) { + throw new Error("unable to decrypt data"); + } + var i6 = -1; + while (++i6 < padded) { + if (last[i6 + (16 - padded)] !== padded) { + throw new Error("unable to decrypt data"); + } + } + if (padded === 16) + return; + return last.slice(0, 16 - padded); + } + function createDecipheriv2(suite, password, iv) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + if (typeof iv === "string") + iv = Buffer2.from(iv); + if (config.mode !== "GCM" && iv.length !== config.iv) + throw new TypeError("invalid iv length " + iv.length); + if (typeof password === "string") + password = Buffer2.from(password); + if (password.length !== config.key / 8) + throw new TypeError("invalid key length " + password.length); + if (config.type === "stream") { + return new StreamCipher(config.module, password, iv, true); + } else if (config.type === "auth") { + return new AuthCipher(config.module, password, iv, true); + } + return new Decipher2(config.module, password, iv); + } + function createDecipher2(suite, password) { + var config = MODES[suite.toLowerCase()]; + if (!config) + throw new TypeError("invalid suite type"); + var keys = ebtk(password, false, config.key, config.iv); + return createDecipheriv2(suite, keys.key, keys.iv); + } + exports$17.createDecipher = createDecipher2; + exports$17.createDecipheriv = createDecipheriv2; + return exports$17; +} +var exports$16 = {}; +var _dewExec$15 = false; +function dew$15() { + if (_dewExec$15) + return exports$16; + _dewExec$15 = true; + var ciphers = dew$17(); + var deciphers = dew$16(); + var modes = _list; + function getCiphers2() { + return Object.keys(modes); + } + exports$16.createCipher = exports$16.Cipher = ciphers.createCipher; + exports$16.createCipheriv = exports$16.Cipheriv = ciphers.createCipheriv; + exports$16.createDecipher = exports$16.Decipher = deciphers.createDecipher; + exports$16.createDecipheriv = exports$16.Decipheriv = deciphers.createDecipheriv; + exports$16.listCiphers = exports$16.getCiphers = getCiphers2; + return exports$16; +} +var exports$15 = {}; +var _dewExec$14 = false; +function dew$14() { + if (_dewExec$14) + return exports$15; + _dewExec$14 = true; + exports$15["des-ecb"] = { + key: 8, + iv: 0 + }; + exports$15["des-cbc"] = exports$15.des = { + key: 8, + iv: 8 + }; + exports$15["des-ede3-cbc"] = exports$15.des3 = { + key: 24, + iv: 8 + }; + exports$15["des-ede3"] = { + key: 24, + iv: 0 + }; + exports$15["des-ede-cbc"] = { + key: 16, + iv: 8 + }; + exports$15["des-ede"] = { + key: 16, + iv: 0 + }; + return exports$15; +} +var exports$14 = {}; +var _dewExec$13 = false; +function dew$13() { + if (_dewExec$13) + return exports$14; + _dewExec$13 = true; + var DES = dew$1n(); + var aes = dew$15(); + var aesModes = dew$1d(); + var desModes = dew$14(); + var ebtk = dew$18(); + function createCipher2(suite, password) { + suite = suite.toLowerCase(); + var keyLen, ivLen; + if (aesModes[suite]) { + keyLen = aesModes[suite].key; + ivLen = aesModes[suite].iv; + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8; + ivLen = desModes[suite].iv; + } else { + throw new TypeError("invalid suite type"); + } + var keys = ebtk(password, false, keyLen, ivLen); + return createCipheriv2(suite, keys.key, keys.iv); + } + function createDecipher2(suite, password) { + suite = suite.toLowerCase(); + var keyLen, ivLen; + if (aesModes[suite]) { + keyLen = aesModes[suite].key; + ivLen = aesModes[suite].iv; + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8; + ivLen = desModes[suite].iv; + } else { + throw new TypeError("invalid suite type"); + } + var keys = ebtk(password, false, keyLen, ivLen); + return createDecipheriv2(suite, keys.key, keys.iv); + } + function createCipheriv2(suite, key, iv) { + suite = suite.toLowerCase(); + if (aesModes[suite]) + return aes.createCipheriv(suite, key, iv); + if (desModes[suite]) + return new DES({ + key, + iv, + mode: suite + }); + throw new TypeError("invalid suite type"); + } + function createDecipheriv2(suite, key, iv) { + suite = suite.toLowerCase(); + if (aesModes[suite]) + return aes.createDecipheriv(suite, key, iv); + if (desModes[suite]) + return new DES({ + key, + iv, + mode: suite, + decrypt: true + }); + throw new TypeError("invalid suite type"); + } + function getCiphers2() { + return Object.keys(desModes).concat(aes.getCiphers()); + } + exports$14.createCipher = exports$14.Cipher = createCipher2; + exports$14.createCipheriv = exports$14.Cipheriv = createCipheriv2; + exports$14.createDecipher = exports$14.Decipher = createDecipher2; + exports$14.createDecipheriv = exports$14.Decipheriv = createDecipheriv2; + exports$14.listCiphers = exports$14.getCiphers = getCiphers2; + return exports$14; +} +var exports$13 = {}; +var _dewExec$12 = false; +var module$6 = { + exports: exports$13 +}; +var _global$d = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$12() { + if (_dewExec$12) + return module$6.exports; + _dewExec$12 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$d).negative = 0; + (this || _global$d).words = null; + (this || _global$d).length = 0; + (this || _global$d).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$d).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$d).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$d).words = [number & 67108863]; + (this || _global$d).length = 1; + } else if (number < 4503599627370496) { + (this || _global$d).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$d).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$d).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$d).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$d).words = [0]; + (this || _global$d).length = 1; + return this || _global$d; + } + (this || _global$d).length = Math.ceil(number.length / 3); + (this || _global$d).words = new Array((this || _global$d).length); + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + (this || _global$d).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$d).words[j4] |= w4 << off & 67108863; + (this || _global$d).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$d).words[j4] |= w4 << off & 67108863; + (this || _global$d).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$d).length = Math.ceil((number.length - start) / 6); + (this || _global$d).words = new Array((this || _global$d).length); + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + (this || _global$d).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$d).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$d).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$d).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$d).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$d).words = [0]; + (this || _global$d).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$d).words[0] + word < 67108864) { + (this || _global$d).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$d).words[0] + word < 67108864) { + (this || _global$d).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$d).length); + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + dest.words[i6] = (this || _global$d).words[i6]; + } + dest.length = (this || _global$d).length; + dest.negative = (this || _global$d).negative; + dest.red = (this || _global$d).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$d).length < size) { + (this || _global$d).words[(this || _global$d).length++] = 0; + } + return this || _global$d; + }; + BN.prototype.strip = function strip() { + while ((this || _global$d).length > 1 && (this || _global$d).words[(this || _global$d).length - 1] === 0) { + (this || _global$d).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$d).length === 1 && (this || _global$d).words[0] === 0) { + (this || _global$d).negative = 0; + } + return this || _global$d; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$d).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + var w4 = (this || _global$d).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$d).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$d).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$d).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$d).words[0]; + if ((this || _global$d).length === 2) { + ret += (this || _global$d).words[1] * 67108864; + } else if ((this || _global$d).length === 3 && (this || _global$d).words[2] === 1) { + ret += 4503599627370496 + (this || _global$d).words[1] * 67108864; + } else if ((this || _global$d).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$d).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$d).words[(this || _global$d).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$d).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + var b4 = this._zeroBits((this || _global$d).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$d).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$d).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$d).negative ^= 1; + } + return this || _global$d; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$d).length < num.length) { + (this || _global$d).words[(this || _global$d).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$d).words[i6] = (this || _global$d).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$d).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$d).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$d); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$d).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$d); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$d).length > num.length) { + b4 = num; + } else { + b4 = this || _global$d; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$d).words[i6] = (this || _global$d).words[i6] & num.words[i6]; + } + (this || _global$d).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$d).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$d).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$d); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$d).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$d); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$d).length > num.length) { + a6 = this || _global$d; + b4 = num; + } else { + a6 = num; + b4 = this || _global$d; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$d).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$d) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$d).words[i6] = a6.words[i6]; + } + } + (this || _global$d).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$d).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$d).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$d); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$d).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$d); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$d).words[i6] = ~(this || _global$d).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$d).words[i6] = ~(this || _global$d).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$d).words[off] = (this || _global$d).words[off] | 1 << wbit; + } else { + (this || _global$d).words[off] = (this || _global$d).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$d).negative !== 0 && num.negative === 0) { + (this || _global$d).negative = 0; + r6 = this.isub(num); + (this || _global$d).negative ^= 1; + return this._normSign(); + } else if ((this || _global$d).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$d).length > num.length) { + a6 = this || _global$d; + b4 = num; + } else { + a6 = num; + b4 = this || _global$d; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$d).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$d).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$d).length = a6.length; + if (carry !== 0) { + (this || _global$d).words[(this || _global$d).length] = carry; + (this || _global$d).length++; + } else if (a6 !== (this || _global$d)) { + for (; i6 < a6.length; i6++) { + (this || _global$d).words[i6] = a6.words[i6]; + } + } + return this || _global$d; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$d).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$d).negative !== 0) { + (this || _global$d).negative = 0; + res = num.sub(this || _global$d); + (this || _global$d).negative = 1; + return res; + } + if ((this || _global$d).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$d); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$d).negative !== 0) { + (this || _global$d).negative = 0; + this.iadd(num); + (this || _global$d).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$d).negative = 0; + (this || _global$d).length = 1; + (this || _global$d).words[0] = 0; + return this || _global$d; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$d; + b4 = num; + } else { + a6 = num; + b4 = this || _global$d; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$d).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$d).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$d)) { + for (; i6 < a6.length; i6++) { + (this || _global$d).words[i6] = a6.words[i6]; + } + } + (this || _global$d).length = Math.max((this || _global$d).length, i6); + if (a6 !== (this || _global$d)) { + (this || _global$d).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$d).length + num.length; + if ((this || _global$d).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$d, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$d, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$d, num, out); + } else { + res = jumboMulTo(this || _global$d, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$d).x = x4; + (this || _global$d).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$d).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$d).length + num.length); + return jumboMulTo(this || _global$d, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$d); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$d).length; i6++) { + var w4 = ((this || _global$d).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$d).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$d).words[i6] = carry; + (this || _global$d).length++; + } + return this || _global$d; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$d); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$d; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$d).length; i6++) { + var newCarry = (this || _global$d).words[i6] & carryMask; + var c6 = ((this || _global$d).words[i6] | 0) - newCarry << r6; + (this || _global$d).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$d).words[i6] = carry; + (this || _global$d).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$d).length - 1; i6 >= 0; i6--) { + (this || _global$d).words[i6 + s6] = (this || _global$d).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$d).words[i6] = 0; + } + (this || _global$d).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$d).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$d).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$d).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$d).length > s6) { + (this || _global$d).length -= s6; + for (i6 = 0; i6 < (this || _global$d).length; i6++) { + (this || _global$d).words[i6] = (this || _global$d).words[i6 + s6]; + } + } else { + (this || _global$d).words[0] = 0; + (this || _global$d).length = 1; + } + var carry = 0; + for (i6 = (this || _global$d).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$d).words[i6] | 0; + (this || _global$d).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$d).length === 0) { + (this || _global$d).words[0] = 0; + (this || _global$d).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$d).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$d).length <= s6) + return false; + var w4 = (this || _global$d).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$d).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$d).length <= s6) { + return this || _global$d; + } + if (r6 !== 0) { + s6++; + } + (this || _global$d).length = Math.min(s6, (this || _global$d).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$d).words[(this || _global$d).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$d).negative !== 0) { + if ((this || _global$d).length === 1 && ((this || _global$d).words[0] | 0) < num) { + (this || _global$d).words[0] = num - ((this || _global$d).words[0] | 0); + (this || _global$d).negative = 0; + return this || _global$d; + } + (this || _global$d).negative = 0; + this.isubn(num); + (this || _global$d).negative = 1; + return this || _global$d; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$d).words[0] += num; + for (var i6 = 0; i6 < (this || _global$d).length && (this || _global$d).words[i6] >= 67108864; i6++) { + (this || _global$d).words[i6] -= 67108864; + if (i6 === (this || _global$d).length - 1) { + (this || _global$d).words[i6 + 1] = 1; + } else { + (this || _global$d).words[i6 + 1]++; + } + } + (this || _global$d).length = Math.max((this || _global$d).length, i6 + 1); + return this || _global$d; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$d).negative !== 0) { + (this || _global$d).negative = 0; + this.iaddn(num); + (this || _global$d).negative = 1; + return this || _global$d; + } + (this || _global$d).words[0] -= num; + if ((this || _global$d).length === 1 && (this || _global$d).words[0] < 0) { + (this || _global$d).words[0] = -(this || _global$d).words[0]; + (this || _global$d).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$d).length && (this || _global$d).words[i6] < 0; i6++) { + (this || _global$d).words[i6] += 67108864; + (this || _global$d).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$d).negative = 0; + return this || _global$d; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$d).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$d).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$d).length - shift; i6++) { + w4 = ((this || _global$d).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$d).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$d).length; i6++) { + w4 = -((this || _global$d).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$d).words[i6] = w4 & 67108863; + } + (this || _global$d).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$d).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$d).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$d).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$d).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$d).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$d + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$d).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$d).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$d).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$d).words[i6] | 0) + carry * 67108864; + (this || _global$d).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$d; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$d; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$d).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$d).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$d).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$d).length <= s6) { + this._expand(s6 + 1); + (this || _global$d).words[s6] |= q3; + return this || _global$d; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$d).length; i6++) { + var w4 = (this || _global$d).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$d).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$d).words[i6] = carry; + (this || _global$d).length++; + } + return this || _global$d; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$d).length === 1 && (this || _global$d).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$d).negative !== 0 && !negative) + return -1; + if ((this || _global$d).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$d).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$d).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$d).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$d).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$d).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$d).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$d).length > num.length) + return 1; + if ((this || _global$d).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$d).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$d).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$d).red, "Already a number in reduction context"); + assert((this || _global$d).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$d)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$d).red, "fromRed works only with numbers in reduction context"); + return (this || _global$d).red.convertFrom(this || _global$d); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$d).red = ctx; + return this || _global$d; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$d).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$d).red, "redAdd works only with red numbers"); + return (this || _global$d).red.add(this || _global$d, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$d).red, "redIAdd works only with red numbers"); + return (this || _global$d).red.iadd(this || _global$d, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$d).red, "redSub works only with red numbers"); + return (this || _global$d).red.sub(this || _global$d, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$d).red, "redISub works only with red numbers"); + return (this || _global$d).red.isub(this || _global$d, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$d).red, "redShl works only with red numbers"); + return (this || _global$d).red.shl(this || _global$d, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$d).red, "redMul works only with red numbers"); + (this || _global$d).red._verify2(this || _global$d, num); + return (this || _global$d).red.mul(this || _global$d, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$d).red, "redMul works only with red numbers"); + (this || _global$d).red._verify2(this || _global$d, num); + return (this || _global$d).red.imul(this || _global$d, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$d).red, "redSqr works only with red numbers"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.sqr(this || _global$d); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$d).red, "redISqr works only with red numbers"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.isqr(this || _global$d); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$d).red, "redSqrt works only with red numbers"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.sqrt(this || _global$d); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$d).red, "redInvm works only with red numbers"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.invm(this || _global$d); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$d).red, "redNeg works only with red numbers"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.neg(this || _global$d); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$d).red && !num.red, "redPow(normalNum)"); + (this || _global$d).red._verify1(this || _global$d); + return (this || _global$d).red.pow(this || _global$d, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$d).name = name; + (this || _global$d).p = new BN(p6, 16); + (this || _global$d).n = (this || _global$d).p.bitLength(); + (this || _global$d).k = new BN(1).iushln((this || _global$d).n).isub((this || _global$d).p); + (this || _global$d).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$d).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$d).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$d).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$d).n); + var cmp = rlen < (this || _global$d).n ? -1 : r6.ucmp((this || _global$d).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$d).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$d).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$d).k); + }; + function K256() { + MPrime.call(this || _global$d, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$d, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$d, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$d, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$d).m = prime.p; + (this || _global$d).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$d).m = m5; + (this || _global$d).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$d).prime) + return (this || _global$d).prime.ireduce(a6)._forceRed(this || _global$d); + return a6.umod((this || _global$d).m)._forceRed(this || _global$d); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$d).m.sub(a6)._forceRed(this || _global$d); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$d).m) >= 0) { + res.isub((this || _global$d).m); + } + return res._forceRed(this || _global$d); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$d).m) >= 0) { + res.isub((this || _global$d).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$d).m); + } + return res._forceRed(this || _global$d); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$d).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$d).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$d).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$d).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$d); + var nOne = one.redNeg(); + var lpow = (this || _global$d).m.subn(1).iushrn(1); + var z4 = (this || _global$d).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$d); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$d).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$d); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$d); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$d).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$d, m5); + (this || _global$d).shift = (this || _global$d).m.bitLength(); + if ((this || _global$d).shift % 26 !== 0) { + (this || _global$d).shift += 26 - (this || _global$d).shift % 26; + } + (this || _global$d).r = new BN(1).iushln((this || _global$d).shift); + (this || _global$d).r2 = this.imod((this || _global$d).r.sqr()); + (this || _global$d).rinv = (this || _global$d).r._invmp((this || _global$d).m); + (this || _global$d).minv = (this || _global$d).rinv.mul((this || _global$d).r).isubn(1).div((this || _global$d).m); + (this || _global$d).minv = (this || _global$d).minv.umod((this || _global$d).r); + (this || _global$d).minv = (this || _global$d).r.sub((this || _global$d).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$d).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$d).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$d).shift).mul((this || _global$d).minv).imaskn((this || _global$d).shift).mul((this || _global$d).m); + var u6 = t6.isub(c6).iushrn((this || _global$d).shift); + var res = u6; + if (u6.cmp((this || _global$d).m) >= 0) { + res = u6.isub((this || _global$d).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$d).m); + } + return res._forceRed(this || _global$d); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$d); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$d).shift).mul((this || _global$d).minv).imaskn((this || _global$d).shift).mul((this || _global$d).m); + var u6 = t6.isub(c6).iushrn((this || _global$d).shift); + var res = u6; + if (u6.cmp((this || _global$d).m) >= 0) { + res = u6.isub((this || _global$d).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$d).m); + } + return res._forceRed(this || _global$d); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$d).m).mul((this || _global$d).r2)); + return res._forceRed(this || _global$d); + }; + })(module$6, exports$13); + return module$6.exports; +} +var exports$12$1 = {}; +var _dewExec$11$1 = false; +var module$5 = { + exports: exports$12$1 +}; +var _global$c = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$11$1() { + if (_dewExec$11$1) + return module$5.exports; + _dewExec$11$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$c).negative = 0; + (this || _global$c).words = null; + (this || _global$c).length = 0; + (this || _global$c).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$c).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$c).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$c).words = [number & 67108863]; + (this || _global$c).length = 1; + } else if (number < 4503599627370496) { + (this || _global$c).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$c).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$c).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$c).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$c).words = [0]; + (this || _global$c).length = 1; + return this || _global$c; + } + (this || _global$c).length = Math.ceil(number.length / 3); + (this || _global$c).words = new Array((this || _global$c).length); + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + (this || _global$c).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$c).words[j4] |= w4 << off & 67108863; + (this || _global$c).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$c).words[j4] |= w4 << off & 67108863; + (this || _global$c).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$c).length = Math.ceil((number.length - start) / 6); + (this || _global$c).words = new Array((this || _global$c).length); + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + (this || _global$c).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$c).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$c).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$c).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$c).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$c).words = [0]; + (this || _global$c).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$c).words[0] + word < 67108864) { + (this || _global$c).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$c).words[0] + word < 67108864) { + (this || _global$c).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$c).length); + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + dest.words[i6] = (this || _global$c).words[i6]; + } + dest.length = (this || _global$c).length; + dest.negative = (this || _global$c).negative; + dest.red = (this || _global$c).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$c).length < size) { + (this || _global$c).words[(this || _global$c).length++] = 0; + } + return this || _global$c; + }; + BN.prototype.strip = function strip() { + while ((this || _global$c).length > 1 && (this || _global$c).words[(this || _global$c).length - 1] === 0) { + (this || _global$c).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$c).length === 1 && (this || _global$c).words[0] === 0) { + (this || _global$c).negative = 0; + } + return this || _global$c; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$c).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + var w4 = (this || _global$c).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$c).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$c).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$c).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$c).words[0]; + if ((this || _global$c).length === 2) { + ret += (this || _global$c).words[1] * 67108864; + } else if ((this || _global$c).length === 3 && (this || _global$c).words[2] === 1) { + ret += 4503599627370496 + (this || _global$c).words[1] * 67108864; + } else if ((this || _global$c).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$c).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$c).words[(this || _global$c).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$c).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + var b4 = this._zeroBits((this || _global$c).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$c).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$c).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$c).negative ^= 1; + } + return this || _global$c; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$c).length < num.length) { + (this || _global$c).words[(this || _global$c).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$c).words[i6] = (this || _global$c).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$c).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$c).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$c); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$c).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$c); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$c).length > num.length) { + b4 = num; + } else { + b4 = this || _global$c; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$c).words[i6] = (this || _global$c).words[i6] & num.words[i6]; + } + (this || _global$c).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$c).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$c).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$c); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$c).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$c); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$c).length > num.length) { + a6 = this || _global$c; + b4 = num; + } else { + a6 = num; + b4 = this || _global$c; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$c).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$c) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$c).words[i6] = a6.words[i6]; + } + } + (this || _global$c).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$c).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$c).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$c); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$c).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$c); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$c).words[i6] = ~(this || _global$c).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$c).words[i6] = ~(this || _global$c).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$c).words[off] = (this || _global$c).words[off] | 1 << wbit; + } else { + (this || _global$c).words[off] = (this || _global$c).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$c).negative !== 0 && num.negative === 0) { + (this || _global$c).negative = 0; + r6 = this.isub(num); + (this || _global$c).negative ^= 1; + return this._normSign(); + } else if ((this || _global$c).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$c).length > num.length) { + a6 = this || _global$c; + b4 = num; + } else { + a6 = num; + b4 = this || _global$c; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$c).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$c).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$c).length = a6.length; + if (carry !== 0) { + (this || _global$c).words[(this || _global$c).length] = carry; + (this || _global$c).length++; + } else if (a6 !== (this || _global$c)) { + for (; i6 < a6.length; i6++) { + (this || _global$c).words[i6] = a6.words[i6]; + } + } + return this || _global$c; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$c).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$c).negative !== 0) { + (this || _global$c).negative = 0; + res = num.sub(this || _global$c); + (this || _global$c).negative = 1; + return res; + } + if ((this || _global$c).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$c); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$c).negative !== 0) { + (this || _global$c).negative = 0; + this.iadd(num); + (this || _global$c).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$c).negative = 0; + (this || _global$c).length = 1; + (this || _global$c).words[0] = 0; + return this || _global$c; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$c; + b4 = num; + } else { + a6 = num; + b4 = this || _global$c; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$c).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$c).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$c)) { + for (; i6 < a6.length; i6++) { + (this || _global$c).words[i6] = a6.words[i6]; + } + } + (this || _global$c).length = Math.max((this || _global$c).length, i6); + if (a6 !== (this || _global$c)) { + (this || _global$c).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$c).length + num.length; + if ((this || _global$c).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$c, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$c, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$c, num, out); + } else { + res = jumboMulTo(this || _global$c, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$c).x = x4; + (this || _global$c).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$c).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$c).length + num.length); + return jumboMulTo(this || _global$c, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$c); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$c).length; i6++) { + var w4 = ((this || _global$c).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$c).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$c).words[i6] = carry; + (this || _global$c).length++; + } + return this || _global$c; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$c); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$c; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$c).length; i6++) { + var newCarry = (this || _global$c).words[i6] & carryMask; + var c6 = ((this || _global$c).words[i6] | 0) - newCarry << r6; + (this || _global$c).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$c).words[i6] = carry; + (this || _global$c).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$c).length - 1; i6 >= 0; i6--) { + (this || _global$c).words[i6 + s6] = (this || _global$c).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$c).words[i6] = 0; + } + (this || _global$c).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$c).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$c).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$c).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$c).length > s6) { + (this || _global$c).length -= s6; + for (i6 = 0; i6 < (this || _global$c).length; i6++) { + (this || _global$c).words[i6] = (this || _global$c).words[i6 + s6]; + } + } else { + (this || _global$c).words[0] = 0; + (this || _global$c).length = 1; + } + var carry = 0; + for (i6 = (this || _global$c).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$c).words[i6] | 0; + (this || _global$c).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$c).length === 0) { + (this || _global$c).words[0] = 0; + (this || _global$c).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$c).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$c).length <= s6) + return false; + var w4 = (this || _global$c).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$c).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$c).length <= s6) { + return this || _global$c; + } + if (r6 !== 0) { + s6++; + } + (this || _global$c).length = Math.min(s6, (this || _global$c).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$c).words[(this || _global$c).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$c).negative !== 0) { + if ((this || _global$c).length === 1 && ((this || _global$c).words[0] | 0) < num) { + (this || _global$c).words[0] = num - ((this || _global$c).words[0] | 0); + (this || _global$c).negative = 0; + return this || _global$c; + } + (this || _global$c).negative = 0; + this.isubn(num); + (this || _global$c).negative = 1; + return this || _global$c; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$c).words[0] += num; + for (var i6 = 0; i6 < (this || _global$c).length && (this || _global$c).words[i6] >= 67108864; i6++) { + (this || _global$c).words[i6] -= 67108864; + if (i6 === (this || _global$c).length - 1) { + (this || _global$c).words[i6 + 1] = 1; + } else { + (this || _global$c).words[i6 + 1]++; + } + } + (this || _global$c).length = Math.max((this || _global$c).length, i6 + 1); + return this || _global$c; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$c).negative !== 0) { + (this || _global$c).negative = 0; + this.iaddn(num); + (this || _global$c).negative = 1; + return this || _global$c; + } + (this || _global$c).words[0] -= num; + if ((this || _global$c).length === 1 && (this || _global$c).words[0] < 0) { + (this || _global$c).words[0] = -(this || _global$c).words[0]; + (this || _global$c).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$c).length && (this || _global$c).words[i6] < 0; i6++) { + (this || _global$c).words[i6] += 67108864; + (this || _global$c).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$c).negative = 0; + return this || _global$c; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$c).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$c).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$c).length - shift; i6++) { + w4 = ((this || _global$c).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$c).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$c).length; i6++) { + w4 = -((this || _global$c).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$c).words[i6] = w4 & 67108863; + } + (this || _global$c).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$c).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$c).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$c).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$c).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$c).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$c + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$c).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$c).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$c).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$c).words[i6] | 0) + carry * 67108864; + (this || _global$c).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$c; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$c; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$c).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$c).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$c).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$c).length <= s6) { + this._expand(s6 + 1); + (this || _global$c).words[s6] |= q3; + return this || _global$c; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$c).length; i6++) { + var w4 = (this || _global$c).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$c).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$c).words[i6] = carry; + (this || _global$c).length++; + } + return this || _global$c; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$c).length === 1 && (this || _global$c).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$c).negative !== 0 && !negative) + return -1; + if ((this || _global$c).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$c).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$c).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$c).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$c).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$c).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$c).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$c).length > num.length) + return 1; + if ((this || _global$c).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$c).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$c).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$c).red, "Already a number in reduction context"); + assert((this || _global$c).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$c)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$c).red, "fromRed works only with numbers in reduction context"); + return (this || _global$c).red.convertFrom(this || _global$c); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$c).red = ctx; + return this || _global$c; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$c).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$c).red, "redAdd works only with red numbers"); + return (this || _global$c).red.add(this || _global$c, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$c).red, "redIAdd works only with red numbers"); + return (this || _global$c).red.iadd(this || _global$c, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$c).red, "redSub works only with red numbers"); + return (this || _global$c).red.sub(this || _global$c, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$c).red, "redISub works only with red numbers"); + return (this || _global$c).red.isub(this || _global$c, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$c).red, "redShl works only with red numbers"); + return (this || _global$c).red.shl(this || _global$c, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$c).red, "redMul works only with red numbers"); + (this || _global$c).red._verify2(this || _global$c, num); + return (this || _global$c).red.mul(this || _global$c, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$c).red, "redMul works only with red numbers"); + (this || _global$c).red._verify2(this || _global$c, num); + return (this || _global$c).red.imul(this || _global$c, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$c).red, "redSqr works only with red numbers"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.sqr(this || _global$c); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$c).red, "redISqr works only with red numbers"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.isqr(this || _global$c); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$c).red, "redSqrt works only with red numbers"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.sqrt(this || _global$c); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$c).red, "redInvm works only with red numbers"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.invm(this || _global$c); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$c).red, "redNeg works only with red numbers"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.neg(this || _global$c); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$c).red && !num.red, "redPow(normalNum)"); + (this || _global$c).red._verify1(this || _global$c); + return (this || _global$c).red.pow(this || _global$c, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$c).name = name; + (this || _global$c).p = new BN(p6, 16); + (this || _global$c).n = (this || _global$c).p.bitLength(); + (this || _global$c).k = new BN(1).iushln((this || _global$c).n).isub((this || _global$c).p); + (this || _global$c).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$c).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$c).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$c).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$c).n); + var cmp = rlen < (this || _global$c).n ? -1 : r6.ucmp((this || _global$c).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$c).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$c).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$c).k); + }; + function K256() { + MPrime.call(this || _global$c, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$c, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$c, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$c, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$c).m = prime.p; + (this || _global$c).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$c).m = m5; + (this || _global$c).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$c).prime) + return (this || _global$c).prime.ireduce(a6)._forceRed(this || _global$c); + return a6.umod((this || _global$c).m)._forceRed(this || _global$c); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$c).m.sub(a6)._forceRed(this || _global$c); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$c).m) >= 0) { + res.isub((this || _global$c).m); + } + return res._forceRed(this || _global$c); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$c).m) >= 0) { + res.isub((this || _global$c).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$c).m); + } + return res._forceRed(this || _global$c); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$c).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$c).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$c).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$c).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$c); + var nOne = one.redNeg(); + var lpow = (this || _global$c).m.subn(1).iushrn(1); + var z4 = (this || _global$c).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$c); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$c).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$c); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$c); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$c).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$c, m5); + (this || _global$c).shift = (this || _global$c).m.bitLength(); + if ((this || _global$c).shift % 26 !== 0) { + (this || _global$c).shift += 26 - (this || _global$c).shift % 26; + } + (this || _global$c).r = new BN(1).iushln((this || _global$c).shift); + (this || _global$c).r2 = this.imod((this || _global$c).r.sqr()); + (this || _global$c).rinv = (this || _global$c).r._invmp((this || _global$c).m); + (this || _global$c).minv = (this || _global$c).rinv.mul((this || _global$c).r).isubn(1).div((this || _global$c).m); + (this || _global$c).minv = (this || _global$c).minv.umod((this || _global$c).r); + (this || _global$c).minv = (this || _global$c).r.sub((this || _global$c).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$c).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$c).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$c).shift).mul((this || _global$c).minv).imaskn((this || _global$c).shift).mul((this || _global$c).m); + var u6 = t6.isub(c6).iushrn((this || _global$c).shift); + var res = u6; + if (u6.cmp((this || _global$c).m) >= 0) { + res = u6.isub((this || _global$c).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$c).m); + } + return res._forceRed(this || _global$c); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$c); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$c).shift).mul((this || _global$c).minv).imaskn((this || _global$c).shift).mul((this || _global$c).m); + var u6 = t6.isub(c6).iushrn((this || _global$c).shift); + var res = u6; + if (u6.cmp((this || _global$c).m) >= 0) { + res = u6.isub((this || _global$c).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$c).m); + } + return res._forceRed(this || _global$c); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$c).m).mul((this || _global$c).r2)); + return res._forceRed(this || _global$c); + }; + })(module$5, exports$12$1); + return module$5.exports; +} +var _global$b = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var exports$11$1 = {}; +var indexOf = function(e8, t6) { + if (e8.indexOf) + return e8.indexOf(t6); + for (var n6 = 0; n6 < e8.length; n6++) + if (e8[n6] === t6) + return n6; + return -1; +}; +var Object_keys = function(e8) { + if (Object.keys) + return Object.keys(e8); + var t6 = []; + for (var n6 in e8) + t6.push(n6); + return t6; +}; +var forEach = function(e8, t6) { + if (e8.forEach) + return e8.forEach(t6); + for (var n6 = 0; n6 < e8.length; n6++) + t6(e8[n6], n6, e8); +}; +var defineProp = function() { + try { + return Object.defineProperty({}, "_", {}), function(e8, t6, n6) { + Object.defineProperty(e8, t6, { writable: true, enumerable: false, configurable: true, value: n6 }); + }; + } catch (e8) { + return function(e9, t6, n6) { + e9[t6] = n6; + }; + } +}(); +var globals = ["Array", "Boolean", "Date", "Error", "EvalError", "Function", "Infinity", "JSON", "Math", "NaN", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "String", "SyntaxError", "TypeError", "URIError", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "undefined", "unescape"]; +function Context() { +} +Context.prototype = {}; +var Script = exports$11$1.Script = function(e8) { + if (!((this || _global$b) instanceof Script)) + return new Script(e8); + (this || _global$b).code = e8; +}; +Script.prototype.runInContext = function(e8) { + if (!(e8 instanceof Context)) + throw new TypeError("needs a 'context' argument."); + var t6 = document.createElement("iframe"); + t6.style || (t6.style = {}), t6.style.display = "none", document.body.appendChild(t6); + var n6 = t6.contentWindow, r6 = n6.eval, o6 = n6.execScript; + !r6 && o6 && (o6.call(n6, "null"), r6 = n6.eval), forEach(Object_keys(e8), function(t7) { + n6[t7] = e8[t7]; + }), forEach(globals, function(t7) { + e8[t7] && (n6[t7] = e8[t7]); + }); + var c6 = Object_keys(n6), i6 = r6.call(n6, (this || _global$b).code); + return forEach(Object_keys(n6), function(t7) { + (t7 in e8 || -1 === indexOf(c6, t7)) && (e8[t7] = n6[t7]); + }), forEach(globals, function(t7) { + t7 in e8 || defineProp(e8, t7, n6[t7]); + }), document.body.removeChild(t6), i6; +}, Script.prototype.runInThisContext = function() { + return (0, eval)((this || _global$b).code); +}, Script.prototype.runInNewContext = function(e8) { + var t6 = Script.createContext(e8), n6 = this.runInContext(t6); + return e8 && forEach(Object_keys(t6), function(n7) { + e8[n7] = t6[n7]; + }), n6; +}, forEach(Object_keys(Script.prototype), function(e8) { + exports$11$1[e8] = Script[e8] = function(t6) { + var n6 = Script(t6); + return n6[e8].apply(n6, [].slice.call(arguments, 1)); + }; +}), exports$11$1.isContext = function(e8) { + return e8 instanceof Context; +}, exports$11$1.createScript = function(e8) { + return exports$11$1.Script(e8); +}, exports$11$1.createContext = Script.createContext = function(e8) { + var t6 = new Context(); + return "object" == typeof e8 && forEach(Object_keys(e8), function(n6) { + t6[n6] = e8[n6]; + }), t6; +}; +exports$11$1.Script; +exports$11$1.createContext; +exports$11$1.createScript; +exports$11$1.isContext; +exports$11$1.runInContext; +exports$11$1.runInNewContext; +exports$11$1.runInThisContext; +var o5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var n5 = T; +var t5 = u4.Buffer; +var f5 = o5.crypto || o5.msCrypto; +var a5 = f5 && f5.getRandomValues ? function(e8, r6) { + if (e8 > 4294967295) + throw new RangeError("requested too many random bytes"); + var o6 = t5.allocUnsafe(e8); + if (e8 > 0) + if (e8 > 65536) + for (var a6 = 0; a6 < e8; a6 += 65536) + f5.getRandomValues(o6.slice(a6, a6 + 65536)); + else + f5.getRandomValues(o6); + if ("function" == typeof r6) + return n5.nextTick(function() { + r6(null, o6); + }); + return o6; +} : function() { + throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11"); +}; +var e7 = u4.Buffer; +var o$13 = b$i.Transform; +function s5(t6) { + o$13.call(this), this._block = e7.allocUnsafe(t6), this._blockSize = t6, this._blockOffset = 0, this._length = [0, 0, 0, 0], this._finalized = false; +} +t$2(s5, o$13), s5.prototype._transform = function(t6, i6, r6) { + var e8 = null; + try { + this.update(t6, i6); + } catch (t7) { + e8 = t7; + } + r6(e8); +}, s5.prototype._flush = function(t6) { + var i6 = null; + try { + this.push(this.digest()); + } catch (t7) { + i6 = t7; + } + t6(i6); +}, s5.prototype.update = function(t6, i6) { + if (!function(t7, i7) { + if (!e7.isBuffer(t7) && "string" != typeof t7) + throw new TypeError(i7 + " must be a string or a buffer"); + }(t6, "Data"), this._finalized) + throw new Error("Digest already called"); + e7.isBuffer(t6) || (t6 = e7.from(t6, i6)); + for (var r6 = this._block, o6 = 0; this._blockOffset + t6.length - o6 >= this._blockSize; ) { + for (var s6 = this._blockOffset; s6 < this._blockSize; ) + r6[s6++] = t6[o6++]; + this._update(), this._blockOffset = 0; + } + for (; o6 < t6.length; ) + r6[this._blockOffset++] = t6[o6++]; + for (var f7 = 0, n6 = 8 * t6.length; n6 > 0; ++f7) + this._length[f7] += n6, (n6 = this._length[f7] / 4294967296 | 0) > 0 && (this._length[f7] -= 4294967296 * n6); + return this; +}, s5.prototype._update = function() { + throw new Error("_update is not implemented"); +}, s5.prototype.digest = function(t6) { + if (this._finalized) + throw new Error("Digest already called"); + this._finalized = true; + var i6 = this._digest(); + void 0 !== t6 && (i6 = i6.toString(t6)), this._block.fill(0), this._blockOffset = 0; + for (var r6 = 0; r6 < 4; ++r6) + this._length[r6] = 0; + return i6; +}, s5.prototype._digest = function() { + throw new Error("_digest is not implemented"); +}; +var f$12 = s5; +var h5 = t$2; +var r5 = f$12; +var _3 = u4.Buffer; +var e$13 = new Array(16); +function n$13() { + r5.call(this, 64), this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878; +} +function o$22(t6, i6) { + return t6 << i6 | t6 >>> 32 - i6; +} +function f$22(t6, i6, s6, h6, r6, _4, e8) { + return o$22(t6 + (i6 & s6 | ~i6 & h6) + r6 + _4 | 0, e8) + i6 | 0; +} +function c5(t6, i6, s6, h6, r6, _4, e8) { + return o$22(t6 + (i6 & h6 | s6 & ~h6) + r6 + _4 | 0, e8) + i6 | 0; +} +function a$1(t6, i6, s6, h6, r6, _4, e8) { + return o$22(t6 + (i6 ^ s6 ^ h6) + r6 + _4 | 0, e8) + i6 | 0; +} +function l5(t6, i6, s6, h6, r6, _4, e8) { + return o$22(t6 + (s6 ^ (i6 | ~h6)) + r6 + _4 | 0, e8) + i6 | 0; +} +h5(n$13, r5), n$13.prototype._update = function() { + for (var t6 = e$13, i6 = 0; i6 < 16; ++i6) + t6[i6] = this._block.readInt32LE(4 * i6); + var s6 = this._a, h6 = this._b, r6 = this._c, _4 = this._d; + s6 = f$22(s6, h6, r6, _4, t6[0], 3614090360, 7), _4 = f$22(_4, s6, h6, r6, t6[1], 3905402710, 12), r6 = f$22(r6, _4, s6, h6, t6[2], 606105819, 17), h6 = f$22(h6, r6, _4, s6, t6[3], 3250441966, 22), s6 = f$22(s6, h6, r6, _4, t6[4], 4118548399, 7), _4 = f$22(_4, s6, h6, r6, t6[5], 1200080426, 12), r6 = f$22(r6, _4, s6, h6, t6[6], 2821735955, 17), h6 = f$22(h6, r6, _4, s6, t6[7], 4249261313, 22), s6 = f$22(s6, h6, r6, _4, t6[8], 1770035416, 7), _4 = f$22(_4, s6, h6, r6, t6[9], 2336552879, 12), r6 = f$22(r6, _4, s6, h6, t6[10], 4294925233, 17), h6 = f$22(h6, r6, _4, s6, t6[11], 2304563134, 22), s6 = f$22(s6, h6, r6, _4, t6[12], 1804603682, 7), _4 = f$22(_4, s6, h6, r6, t6[13], 4254626195, 12), r6 = f$22(r6, _4, s6, h6, t6[14], 2792965006, 17), s6 = c5(s6, h6 = f$22(h6, r6, _4, s6, t6[15], 1236535329, 22), r6, _4, t6[1], 4129170786, 5), _4 = c5(_4, s6, h6, r6, t6[6], 3225465664, 9), r6 = c5(r6, _4, s6, h6, t6[11], 643717713, 14), h6 = c5(h6, r6, _4, s6, t6[0], 3921069994, 20), s6 = c5(s6, h6, r6, _4, t6[5], 3593408605, 5), _4 = c5(_4, s6, h6, r6, t6[10], 38016083, 9), r6 = c5(r6, _4, s6, h6, t6[15], 3634488961, 14), h6 = c5(h6, r6, _4, s6, t6[4], 3889429448, 20), s6 = c5(s6, h6, r6, _4, t6[9], 568446438, 5), _4 = c5(_4, s6, h6, r6, t6[14], 3275163606, 9), r6 = c5(r6, _4, s6, h6, t6[3], 4107603335, 14), h6 = c5(h6, r6, _4, s6, t6[8], 1163531501, 20), s6 = c5(s6, h6, r6, _4, t6[13], 2850285829, 5), _4 = c5(_4, s6, h6, r6, t6[2], 4243563512, 9), r6 = c5(r6, _4, s6, h6, t6[7], 1735328473, 14), s6 = a$1(s6, h6 = c5(h6, r6, _4, s6, t6[12], 2368359562, 20), r6, _4, t6[5], 4294588738, 4), _4 = a$1(_4, s6, h6, r6, t6[8], 2272392833, 11), r6 = a$1(r6, _4, s6, h6, t6[11], 1839030562, 16), h6 = a$1(h6, r6, _4, s6, t6[14], 4259657740, 23), s6 = a$1(s6, h6, r6, _4, t6[1], 2763975236, 4), _4 = a$1(_4, s6, h6, r6, t6[4], 1272893353, 11), r6 = a$1(r6, _4, s6, h6, t6[7], 4139469664, 16), h6 = a$1(h6, r6, _4, s6, t6[10], 3200236656, 23), s6 = a$1(s6, h6, r6, _4, t6[13], 681279174, 4), _4 = a$1(_4, s6, h6, r6, t6[0], 3936430074, 11), r6 = a$1(r6, _4, s6, h6, t6[3], 3572445317, 16), h6 = a$1(h6, r6, _4, s6, t6[6], 76029189, 23), s6 = a$1(s6, h6, r6, _4, t6[9], 3654602809, 4), _4 = a$1(_4, s6, h6, r6, t6[12], 3873151461, 11), r6 = a$1(r6, _4, s6, h6, t6[15], 530742520, 16), s6 = l5(s6, h6 = a$1(h6, r6, _4, s6, t6[2], 3299628645, 23), r6, _4, t6[0], 4096336452, 6), _4 = l5(_4, s6, h6, r6, t6[7], 1126891415, 10), r6 = l5(r6, _4, s6, h6, t6[14], 2878612391, 15), h6 = l5(h6, r6, _4, s6, t6[5], 4237533241, 21), s6 = l5(s6, h6, r6, _4, t6[12], 1700485571, 6), _4 = l5(_4, s6, h6, r6, t6[3], 2399980690, 10), r6 = l5(r6, _4, s6, h6, t6[10], 4293915773, 15), h6 = l5(h6, r6, _4, s6, t6[1], 2240044497, 21), s6 = l5(s6, h6, r6, _4, t6[8], 1873313359, 6), _4 = l5(_4, s6, h6, r6, t6[15], 4264355552, 10), r6 = l5(r6, _4, s6, h6, t6[6], 2734768916, 15), h6 = l5(h6, r6, _4, s6, t6[13], 1309151649, 21), s6 = l5(s6, h6, r6, _4, t6[4], 4149444226, 6), _4 = l5(_4, s6, h6, r6, t6[11], 3174756917, 10), r6 = l5(r6, _4, s6, h6, t6[2], 718787259, 15), h6 = l5(h6, r6, _4, s6, t6[9], 3951481745, 21), this._a = this._a + s6 | 0, this._b = this._b + h6 | 0, this._c = this._c + r6 | 0, this._d = this._d + _4 | 0; +}, n$13.prototype._digest = function() { + this._block[this._blockOffset++] = 128, this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), this._blockOffset = 0), this._block.fill(0, this._blockOffset, 56), this._block.writeUInt32LE(this._length[0], 56), this._block.writeUInt32LE(this._length[1], 60), this._update(); + var t6 = _3.allocUnsafe(16); + return t6.writeInt32LE(this._a, 0), t6.writeInt32LE(this._b, 4), t6.writeInt32LE(this._c, 8), t6.writeInt32LE(this._d, 12), t6; +}; +var u5 = n$13; +var h$1 = e$1$1.Buffer; +var _$1 = t$2; +var r$12 = f$12; +var e$2 = new Array(16); +var n$2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; +var o$3 = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; +var f$3 = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; +var c$13 = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; +var a$22 = [0, 1518500249, 1859775393, 2400959708, 2840853838]; +var l$13 = [1352829926, 1548603684, 1836072691, 2053994217, 0]; +function u$13() { + r$12.call(this, 64), this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520; +} +function b3(t6, i6) { + return t6 << i6 | t6 >>> 32 - i6; +} +function d4(t6, i6, s6, h6, _4, r6, e8, n6) { + return b3(t6 + (i6 ^ s6 ^ h6) + r6 + e8 | 0, n6) + _4 | 0; +} +function k3(t6, i6, s6, h6, _4, r6, e8, n6) { + return b3(t6 + (i6 & s6 | ~i6 & h6) + r6 + e8 | 0, n6) + _4 | 0; +} +function p5(t6, i6, s6, h6, _4, r6, e8, n6) { + return b3(t6 + ((i6 | ~s6) ^ h6) + r6 + e8 | 0, n6) + _4 | 0; +} +function w3(t6, i6, s6, h6, _4, r6, e8, n6) { + return b3(t6 + (i6 & h6 | s6 & ~h6) + r6 + e8 | 0, n6) + _4 | 0; +} +function E3(t6, i6, s6, h6, _4, r6, e8, n6) { + return b3(t6 + (i6 ^ (s6 | ~h6)) + r6 + e8 | 0, n6) + _4 | 0; +} +_$1(u$13, r$12), u$13.prototype._update = function() { + for (var t6 = e$2, i6 = 0; i6 < 16; ++i6) + t6[i6] = this._block.readInt32LE(4 * i6); + for (var s6 = 0 | this._a, h6 = 0 | this._b, _4 = 0 | this._c, r6 = 0 | this._d, u6 = 0 | this._e, I4 = 0 | this._a, L4 = 0 | this._b, v5 = 0 | this._c, m5 = 0 | this._d, O4 = 0 | this._e, g4 = 0; g4 < 80; g4 += 1) { + var y5, U4; + g4 < 16 ? (y5 = d4(s6, h6, _4, r6, u6, t6[n$2[g4]], a$22[0], f$3[g4]), U4 = E3(I4, L4, v5, m5, O4, t6[o$3[g4]], l$13[0], c$13[g4])) : g4 < 32 ? (y5 = k3(s6, h6, _4, r6, u6, t6[n$2[g4]], a$22[1], f$3[g4]), U4 = w3(I4, L4, v5, m5, O4, t6[o$3[g4]], l$13[1], c$13[g4])) : g4 < 48 ? (y5 = p5(s6, h6, _4, r6, u6, t6[n$2[g4]], a$22[2], f$3[g4]), U4 = p5(I4, L4, v5, m5, O4, t6[o$3[g4]], l$13[2], c$13[g4])) : g4 < 64 ? (y5 = w3(s6, h6, _4, r6, u6, t6[n$2[g4]], a$22[3], f$3[g4]), U4 = k3(I4, L4, v5, m5, O4, t6[o$3[g4]], l$13[3], c$13[g4])) : (y5 = E3(s6, h6, _4, r6, u6, t6[n$2[g4]], a$22[4], f$3[g4]), U4 = d4(I4, L4, v5, m5, O4, t6[o$3[g4]], l$13[4], c$13[g4])), s6 = u6, u6 = r6, r6 = b3(_4, 10), _4 = h6, h6 = y5, I4 = O4, O4 = m5, m5 = b3(v5, 10), v5 = L4, L4 = U4; + } + var x4 = this._b + _4 + m5 | 0; + this._b = this._c + r6 + O4 | 0, this._c = this._d + u6 + I4 | 0, this._d = this._e + s6 + L4 | 0, this._e = this._a + h6 + v5 | 0, this._a = x4; +}, u$13.prototype._digest = function() { + this._block[this._blockOffset++] = 128, this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), this._blockOffset = 0), this._block.fill(0, this._blockOffset, 56), this._block.writeUInt32LE(this._length[0], 56), this._block.writeUInt32LE(this._length[1], 60), this._update(); + var t6 = h$1.alloc ? h$1.alloc(20) : new h$1(20); + return t6.writeInt32LE(this._a, 0), t6.writeInt32LE(this._b, 4), t6.writeInt32LE(this._c, 8), t6.writeInt32LE(this._d, 12), t6.writeInt32LE(this._e, 16), t6; +}; +var I3 = u$13; +var s$12 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var h$2 = u4.Buffer; +function e$3(t6, i6) { + (this || s$12)._block = h$2.alloc(t6), (this || s$12)._finalSize = i6, (this || s$12)._blockSize = t6, (this || s$12)._len = 0; +} +e$3.prototype.update = function(t6, i6) { + "string" == typeof t6 && (i6 = i6 || "utf8", t6 = h$2.from(t6, i6)); + for (var e8 = (this || s$12)._block, _4 = (this || s$12)._blockSize, n6 = t6.length, r6 = (this || s$12)._len, o6 = 0; o6 < n6; ) { + for (var f7 = r6 % _4, l6 = Math.min(n6 - o6, _4 - f7), a6 = 0; a6 < l6; a6++) + e8[f7 + a6] = t6[o6 + a6]; + o6 += l6, (r6 += l6) % _4 == 0 && this._update(e8); + } + return (this || s$12)._len += n6, this || s$12; +}, e$3.prototype.digest = function(t6) { + var i6 = (this || s$12)._len % (this || s$12)._blockSize; + (this || s$12)._block[i6] = 128, (this || s$12)._block.fill(0, i6 + 1), i6 >= (this || s$12)._finalSize && (this._update((this || s$12)._block), (this || s$12)._block.fill(0)); + var h6 = 8 * (this || s$12)._len; + if (h6 <= 4294967295) + (this || s$12)._block.writeUInt32BE(h6, (this || s$12)._blockSize - 4); + else { + var e8 = (4294967295 & h6) >>> 0, _4 = (h6 - e8) / 4294967296; + (this || s$12)._block.writeUInt32BE(_4, (this || s$12)._blockSize - 8), (this || s$12)._block.writeUInt32BE(e8, (this || s$12)._blockSize - 4); + } + this._update((this || s$12)._block); + var n6 = this._hash(); + return t6 ? n6.toString(t6) : n6; +}, e$3.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); +}; +var _$2 = e$3; +var n$3 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var r$2 = t$2; +var o$4 = _$2; +var f$4 = u4.Buffer; +var l$2 = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; +var a$3 = new Array(64); +function u$22() { + this.init(), (this || n$3)._w = a$3, o$4.call(this || n$3, 64, 56); +} +function c$2(t6, i6, s6) { + return s6 ^ t6 & (i6 ^ s6); +} +function b$1(t6, i6, s6) { + return t6 & i6 | s6 & (t6 | i6); +} +function p$1(t6) { + return (t6 >>> 2 | t6 << 30) ^ (t6 >>> 13 | t6 << 19) ^ (t6 >>> 22 | t6 << 10); +} +function d$1(t6) { + return (t6 >>> 6 | t6 << 26) ^ (t6 >>> 11 | t6 << 21) ^ (t6 >>> 25 | t6 << 7); +} +function k$1(t6) { + return (t6 >>> 7 | t6 << 25) ^ (t6 >>> 18 | t6 << 14) ^ t6 >>> 3; +} +r$2(u$22, o$4), u$22.prototype.init = function() { + return (this || n$3)._a = 1779033703, (this || n$3)._b = 3144134277, (this || n$3)._c = 1013904242, (this || n$3)._d = 2773480762, (this || n$3)._e = 1359893119, (this || n$3)._f = 2600822924, (this || n$3)._g = 528734635, (this || n$3)._h = 1541459225, this || n$3; +}, u$22.prototype._update = function(t6) { + for (var i6, s6 = (this || n$3)._w, h6 = 0 | (this || n$3)._a, e8 = 0 | (this || n$3)._b, _4 = 0 | (this || n$3)._c, r6 = 0 | (this || n$3)._d, o6 = 0 | (this || n$3)._e, f7 = 0 | (this || n$3)._f, a6 = 0 | (this || n$3)._g, u6 = 0 | (this || n$3)._h, w4 = 0; w4 < 16; ++w4) + s6[w4] = t6.readInt32BE(4 * w4); + for (; w4 < 64; ++w4) + s6[w4] = 0 | (((i6 = s6[w4 - 2]) >>> 17 | i6 << 15) ^ (i6 >>> 19 | i6 << 13) ^ i6 >>> 10) + s6[w4 - 7] + k$1(s6[w4 - 15]) + s6[w4 - 16]; + for (var g4 = 0; g4 < 64; ++g4) { + var B4 = u6 + d$1(o6) + c$2(o6, f7, a6) + l$2[g4] + s6[g4] | 0, v5 = p$1(h6) + b$1(h6, e8, _4) | 0; + u6 = a6, a6 = f7, f7 = o6, o6 = r6 + B4 | 0, r6 = _4, _4 = e8, e8 = h6, h6 = B4 + v5 | 0; + } + (this || n$3)._a = h6 + (this || n$3)._a | 0, (this || n$3)._b = e8 + (this || n$3)._b | 0, (this || n$3)._c = _4 + (this || n$3)._c | 0, (this || n$3)._d = r6 + (this || n$3)._d | 0, (this || n$3)._e = o6 + (this || n$3)._e | 0, (this || n$3)._f = f7 + (this || n$3)._f | 0, (this || n$3)._g = a6 + (this || n$3)._g | 0, (this || n$3)._h = u6 + (this || n$3)._h | 0; +}, u$22.prototype._hash = function() { + var t6 = f$4.allocUnsafe(32); + return t6.writeInt32BE((this || n$3)._a, 0), t6.writeInt32BE((this || n$3)._b, 4), t6.writeInt32BE((this || n$3)._c, 8), t6.writeInt32BE((this || n$3)._d, 12), t6.writeInt32BE((this || n$3)._e, 16), t6.writeInt32BE((this || n$3)._f, 20), t6.writeInt32BE((this || n$3)._g, 24), t6.writeInt32BE((this || n$3)._h, 28), t6; +}; +var w$1 = u$22; +var _$3 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var e$4 = t$2; +var n$4 = _$2; +var r$3 = u4.Buffer; +var l$3 = [1518500249, 1859775393, -1894007588, -899497514]; +var o$5 = new Array(80); +function f$5() { + this.init(), (this || _$3)._w = o$5, n$4.call(this || _$3, 64, 56); +} +function a$4(t6) { + return t6 << 30 | t6 >>> 2; +} +function u$3(t6, i6, h6, s6) { + return 0 === t6 ? i6 & h6 | ~i6 & s6 : 2 === t6 ? i6 & h6 | i6 & s6 | h6 & s6 : i6 ^ h6 ^ s6; +} +e$4(f$5, n$4), f$5.prototype.init = function() { + return (this || _$3)._a = 1732584193, (this || _$3)._b = 4023233417, (this || _$3)._c = 2562383102, (this || _$3)._d = 271733878, (this || _$3)._e = 3285377520, this || _$3; +}, f$5.prototype._update = function(t6) { + for (var i6, h6 = (this || _$3)._w, s6 = 0 | (this || _$3)._a, e8 = 0 | (this || _$3)._b, n6 = 0 | (this || _$3)._c, r6 = 0 | (this || _$3)._d, o6 = 0 | (this || _$3)._e, f7 = 0; f7 < 16; ++f7) + h6[f7] = t6.readInt32BE(4 * f7); + for (; f7 < 80; ++f7) + h6[f7] = h6[f7 - 3] ^ h6[f7 - 8] ^ h6[f7 - 14] ^ h6[f7 - 16]; + for (var c6 = 0; c6 < 80; ++c6) { + var d5 = ~~(c6 / 20), p6 = 0 | ((i6 = s6) << 5 | i6 >>> 27) + u$3(d5, e8, n6, r6) + o6 + h6[c6] + l$3[d5]; + o6 = r6, r6 = n6, n6 = a$4(e8), e8 = s6, s6 = p6; + } + (this || _$3)._a = s6 + (this || _$3)._a | 0, (this || _$3)._b = e8 + (this || _$3)._b | 0, (this || _$3)._c = n6 + (this || _$3)._c | 0, (this || _$3)._d = r6 + (this || _$3)._d | 0, (this || _$3)._e = o6 + (this || _$3)._e | 0; +}, f$5.prototype._hash = function() { + var t6 = r$3.allocUnsafe(20); + return t6.writeInt32BE(0 | (this || _$3)._a, 0), t6.writeInt32BE(0 | (this || _$3)._b, 4), t6.writeInt32BE(0 | (this || _$3)._c, 8), t6.writeInt32BE(0 | (this || _$3)._d, 12), t6.writeInt32BE(0 | (this || _$3)._e, 16), t6; +}; +var c$3 = f$5; +var d$2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var p$2 = t$2; +var b$2 = _$2; +var w$2 = u4.Buffer; +var g3 = [1518500249, 1859775393, -1894007588, -899497514]; +var B3 = new Array(80); +function y4() { + this.init(), (this || d$2)._w = B3, b$2.call(this || d$2, 64, 56); +} +function E$1(t6) { + return t6 << 5 | t6 >>> 27; +} +function I$1(t6) { + return t6 << 30 | t6 >>> 2; +} +function v4(t6, i6, h6, s6) { + return 0 === t6 ? i6 & h6 | ~i6 & s6 : 2 === t6 ? i6 & h6 | i6 & s6 | h6 & s6 : i6 ^ h6 ^ s6; +} +p$2(y4, b$2), y4.prototype.init = function() { + return (this || d$2)._a = 1732584193, (this || d$2)._b = 4023233417, (this || d$2)._c = 2562383102, (this || d$2)._d = 271733878, (this || d$2)._e = 3285377520, this || d$2; +}, y4.prototype._update = function(t6) { + for (var i6, h6 = (this || d$2)._w, s6 = 0 | (this || d$2)._a, _4 = 0 | (this || d$2)._b, e8 = 0 | (this || d$2)._c, n6 = 0 | (this || d$2)._d, r6 = 0 | (this || d$2)._e, l6 = 0; l6 < 16; ++l6) + h6[l6] = t6.readInt32BE(4 * l6); + for (; l6 < 80; ++l6) + h6[l6] = (i6 = h6[l6 - 3] ^ h6[l6 - 8] ^ h6[l6 - 14] ^ h6[l6 - 16]) << 1 | i6 >>> 31; + for (var o6 = 0; o6 < 80; ++o6) { + var f7 = ~~(o6 / 20), a6 = E$1(s6) + v4(f7, _4, e8, n6) + r6 + h6[o6] + g3[f7] | 0; + r6 = n6, n6 = e8, e8 = I$1(_4), _4 = s6, s6 = a6; + } + (this || d$2)._a = s6 + (this || d$2)._a | 0, (this || d$2)._b = _4 + (this || d$2)._b | 0, (this || d$2)._c = e8 + (this || d$2)._c | 0, (this || d$2)._d = n6 + (this || d$2)._d | 0, (this || d$2)._e = r6 + (this || d$2)._e | 0; +}, y4.prototype._hash = function() { + var t6 = w$2.allocUnsafe(20); + return t6.writeInt32BE(0 | (this || d$2)._a, 0), t6.writeInt32BE(0 | (this || d$2)._b, 4), t6.writeInt32BE(0 | (this || d$2)._c, 8), t6.writeInt32BE(0 | (this || d$2)._d, 12), t6.writeInt32BE(0 | (this || d$2)._e, 16), t6; +}; +var T4 = y4; +var m4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var A3 = t$2; +var U3 = w$1; +var x3 = _$2; +var j3 = u4.Buffer; +var q2 = new Array(64); +function C3() { + this.init(), (this || m4)._w = q2, x3.call(this || m4, 64, 56); +} +A3(C3, U3), C3.prototype.init = function() { + return (this || m4)._a = 3238371032, (this || m4)._b = 914150663, (this || m4)._c = 812702999, (this || m4)._d = 4144912697, (this || m4)._e = 4290775857, (this || m4)._f = 1750603025, (this || m4)._g = 1694076839, (this || m4)._h = 3204075428, this || m4; +}, C3.prototype._hash = function() { + var t6 = j3.allocUnsafe(28); + return t6.writeInt32BE((this || m4)._a, 0), t6.writeInt32BE((this || m4)._b, 4), t6.writeInt32BE((this || m4)._c, 8), t6.writeInt32BE((this || m4)._d, 12), t6.writeInt32BE((this || m4)._e, 16), t6.writeInt32BE((this || m4)._f, 20), t6.writeInt32BE((this || m4)._g, 24), t6; +}; +var L3 = C3; +var k$2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var z3 = t$2; +var D3 = _$2; +var F3 = u4.Buffer; +var G2 = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591]; +var H2 = new Array(160); +function J2() { + this.init(), (this || k$2)._w = H2, D3.call(this || k$2, 128, 112); +} +function K2(t6, i6, h6) { + return h6 ^ t6 & (i6 ^ h6); +} +function M3(t6, i6, h6) { + return t6 & i6 | h6 & (t6 | i6); +} +function N3(t6, i6) { + return (t6 >>> 28 | i6 << 4) ^ (i6 >>> 2 | t6 << 30) ^ (i6 >>> 7 | t6 << 25); +} +function O3(t6, i6) { + return (t6 >>> 14 | i6 << 18) ^ (t6 >>> 18 | i6 << 14) ^ (i6 >>> 9 | t6 << 23); +} +function P3(t6, i6) { + return (t6 >>> 1 | i6 << 31) ^ (t6 >>> 8 | i6 << 24) ^ t6 >>> 7; +} +function Q2(t6, i6) { + return (t6 >>> 1 | i6 << 31) ^ (t6 >>> 8 | i6 << 24) ^ (t6 >>> 7 | i6 << 25); +} +function R3(t6, i6) { + return (t6 >>> 19 | i6 << 13) ^ (i6 >>> 29 | t6 << 3) ^ t6 >>> 6; +} +function S3(t6, i6) { + return (t6 >>> 19 | i6 << 13) ^ (i6 >>> 29 | t6 << 3) ^ (t6 >>> 6 | i6 << 26); +} +function V2(t6, i6) { + return t6 >>> 0 < i6 >>> 0 ? 1 : 0; +} +z3(J2, D3), J2.prototype.init = function() { + return (this || k$2)._ah = 1779033703, (this || k$2)._bh = 3144134277, (this || k$2)._ch = 1013904242, (this || k$2)._dh = 2773480762, (this || k$2)._eh = 1359893119, (this || k$2)._fh = 2600822924, (this || k$2)._gh = 528734635, (this || k$2)._hh = 1541459225, (this || k$2)._al = 4089235720, (this || k$2)._bl = 2227873595, (this || k$2)._cl = 4271175723, (this || k$2)._dl = 1595750129, (this || k$2)._el = 2917565137, (this || k$2)._fl = 725511199, (this || k$2)._gl = 4215389547, (this || k$2)._hl = 327033209, this || k$2; +}, J2.prototype._update = function(t6) { + for (var i6 = (this || k$2)._w, h6 = 0 | (this || k$2)._ah, s6 = 0 | (this || k$2)._bh, _4 = 0 | (this || k$2)._ch, e8 = 0 | (this || k$2)._dh, n6 = 0 | (this || k$2)._eh, r6 = 0 | (this || k$2)._fh, l6 = 0 | (this || k$2)._gh, o6 = 0 | (this || k$2)._hh, f7 = 0 | (this || k$2)._al, a6 = 0 | (this || k$2)._bl, u6 = 0 | (this || k$2)._cl, c6 = 0 | (this || k$2)._dl, d5 = 0 | (this || k$2)._el, p6 = 0 | (this || k$2)._fl, b4 = 0 | (this || k$2)._gl, w4 = 0 | (this || k$2)._hl, g4 = 0; g4 < 32; g4 += 2) + i6[g4] = t6.readInt32BE(4 * g4), i6[g4 + 1] = t6.readInt32BE(4 * g4 + 4); + for (; g4 < 160; g4 += 2) { + var B4 = i6[g4 - 30], y5 = i6[g4 - 30 + 1], E4 = P3(B4, y5), I4 = Q2(y5, B4), v5 = R3(B4 = i6[g4 - 4], y5 = i6[g4 - 4 + 1]), T5 = S3(y5, B4), m5 = i6[g4 - 14], A4 = i6[g4 - 14 + 1], U4 = i6[g4 - 32], x4 = i6[g4 - 32 + 1], j4 = I4 + A4 | 0, q3 = E4 + m5 + V2(j4, I4) | 0; + q3 = (q3 = q3 + v5 + V2(j4 = j4 + T5 | 0, T5) | 0) + U4 + V2(j4 = j4 + x4 | 0, x4) | 0, i6[g4] = q3, i6[g4 + 1] = j4; + } + for (var C4 = 0; C4 < 160; C4 += 2) { + q3 = i6[C4], j4 = i6[C4 + 1]; + var L4 = M3(h6, s6, _4), z4 = M3(f7, a6, u6), D4 = N3(h6, f7), F4 = N3(f7, h6), H3 = O3(n6, d5), J3 = O3(d5, n6), W3 = G2[C4], X3 = G2[C4 + 1], Y4 = K2(n6, r6, l6), Z3 = K2(d5, p6, b4), $3 = w4 + J3 | 0, tt2 = o6 + H3 + V2($3, w4) | 0; + tt2 = (tt2 = (tt2 = tt2 + Y4 + V2($3 = $3 + Z3 | 0, Z3) | 0) + W3 + V2($3 = $3 + X3 | 0, X3) | 0) + q3 + V2($3 = $3 + j4 | 0, j4) | 0; + var it2 = F4 + z4 | 0, ht2 = D4 + L4 + V2(it2, F4) | 0; + o6 = l6, w4 = b4, l6 = r6, b4 = p6, r6 = n6, p6 = d5, n6 = e8 + tt2 + V2(d5 = c6 + $3 | 0, c6) | 0, e8 = _4, c6 = u6, _4 = s6, u6 = a6, s6 = h6, a6 = f7, h6 = tt2 + ht2 + V2(f7 = $3 + it2 | 0, $3) | 0; + } + (this || k$2)._al = (this || k$2)._al + f7 | 0, (this || k$2)._bl = (this || k$2)._bl + a6 | 0, (this || k$2)._cl = (this || k$2)._cl + u6 | 0, (this || k$2)._dl = (this || k$2)._dl + c6 | 0, (this || k$2)._el = (this || k$2)._el + d5 | 0, (this || k$2)._fl = (this || k$2)._fl + p6 | 0, (this || k$2)._gl = (this || k$2)._gl + b4 | 0, (this || k$2)._hl = (this || k$2)._hl + w4 | 0, (this || k$2)._ah = (this || k$2)._ah + h6 + V2((this || k$2)._al, f7) | 0, (this || k$2)._bh = (this || k$2)._bh + s6 + V2((this || k$2)._bl, a6) | 0, (this || k$2)._ch = (this || k$2)._ch + _4 + V2((this || k$2)._cl, u6) | 0, (this || k$2)._dh = (this || k$2)._dh + e8 + V2((this || k$2)._dl, c6) | 0, (this || k$2)._eh = (this || k$2)._eh + n6 + V2((this || k$2)._el, d5) | 0, (this || k$2)._fh = (this || k$2)._fh + r6 + V2((this || k$2)._fl, p6) | 0, (this || k$2)._gh = (this || k$2)._gh + l6 + V2((this || k$2)._gl, b4) | 0, (this || k$2)._hh = (this || k$2)._hh + o6 + V2((this || k$2)._hl, w4) | 0; +}, J2.prototype._hash = function() { + var t6 = F3.allocUnsafe(64); + function i6(i7, h6, s6) { + t6.writeInt32BE(i7, s6), t6.writeInt32BE(h6, s6 + 4); + } + return i6((this || k$2)._ah, (this || k$2)._al, 0), i6((this || k$2)._bh, (this || k$2)._bl, 8), i6((this || k$2)._ch, (this || k$2)._cl, 16), i6((this || k$2)._dh, (this || k$2)._dl, 24), i6((this || k$2)._eh, (this || k$2)._el, 32), i6((this || k$2)._fh, (this || k$2)._fl, 40), i6((this || k$2)._gh, (this || k$2)._gl, 48), i6((this || k$2)._hh, (this || k$2)._hl, 56), t6; +}; +var W2 = J2; +var X2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var Y3 = t$2; +var Z2 = W2; +var $2 = _$2; +var tt = u4.Buffer; +var it = new Array(160); +function ht() { + this.init(), (this || X2)._w = it, $2.call(this || X2, 128, 112); +} +Y3(ht, Z2), ht.prototype.init = function() { + return (this || X2)._ah = 3418070365, (this || X2)._bh = 1654270250, (this || X2)._ch = 2438529370, (this || X2)._dh = 355462360, (this || X2)._eh = 1731405415, (this || X2)._fh = 2394180231, (this || X2)._gh = 3675008525, (this || X2)._hh = 1203062813, (this || X2)._al = 3238371032, (this || X2)._bl = 914150663, (this || X2)._cl = 812702999, (this || X2)._dl = 4144912697, (this || X2)._el = 4290775857, (this || X2)._fl = 1750603025, (this || X2)._gl = 1694076839, (this || X2)._hl = 3204075428, this || X2; +}, ht.prototype._hash = function() { + var t6 = tt.allocUnsafe(48); + function i6(i7, h6, s6) { + t6.writeInt32BE(i7, s6), t6.writeInt32BE(h6, s6 + 4); + } + return i6((this || X2)._ah, (this || X2)._al, 0), i6((this || X2)._bh, (this || X2)._bl, 8), i6((this || X2)._ch, (this || X2)._cl, 16), i6((this || X2)._dh, (this || X2)._dl, 24), i6((this || X2)._eh, (this || X2)._el, 32), i6((this || X2)._fh, (this || X2)._fl, 40), t6; +}; +var st; +var _t = ht; +var et = { exports: st = {} }; +(st = et.exports = function(t6) { + t6 = t6.toLowerCase(); + var i6 = st[t6]; + if (!i6) + throw new Error(t6 + " is not supported (we accept pull requests)"); + return new i6(); +}).sha = c$3, st.sha1 = T4, st.sha224 = L3, st.sha256 = w$1, st.sha384 = _t, st.sha512 = W2; +var nt = et.exports; +var e$5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var n$5 = u4.Buffer; +var s$2 = b$i.Transform; +var h$3 = e$12.StringDecoder; +function a$5(t6) { + s$2.call(this || e$5), (this || e$5).hashMode = "string" == typeof t6, (this || e$5).hashMode ? (this || e$5)[t6] = (this || e$5)._finalOrDigest : (this || e$5).final = (this || e$5)._finalOrDigest, (this || e$5)._final && ((this || e$5).__final = (this || e$5)._final, (this || e$5)._final = null), (this || e$5)._decoder = null, (this || e$5)._encoding = null; +} +t$2(a$5, s$2), a$5.prototype.update = function(t6, i6, r6) { + "string" == typeof t6 && (t6 = n$5.from(t6, i6)); + var o6 = this._update(t6); + return (this || e$5).hashMode ? this || e$5 : (r6 && (o6 = this._toString(o6, r6)), o6); +}, a$5.prototype.setAutoPadding = function() { +}, a$5.prototype.getAuthTag = function() { + throw new Error("trying to get auth tag in unsupported state"); +}, a$5.prototype.setAuthTag = function() { + throw new Error("trying to set auth tag in unsupported state"); +}, a$5.prototype.setAAD = function() { + throw new Error("trying to set aad in unsupported state"); +}, a$5.prototype._transform = function(t6, i6, r6) { + var o6; + try { + (this || e$5).hashMode ? this._update(t6) : this.push(this._update(t6)); + } catch (t7) { + o6 = t7; + } finally { + r6(o6); + } +}, a$5.prototype._flush = function(t6) { + var i6; + try { + this.push(this.__final()); + } catch (t7) { + i6 = t7; + } + t6(i6); +}, a$5.prototype._finalOrDigest = function(t6) { + var i6 = this.__final() || n$5.alloc(0); + return t6 && (i6 = this._toString(i6, t6, true)), i6; +}, a$5.prototype._toString = function(t6, i6, r6) { + if ((this || e$5)._decoder || ((this || e$5)._decoder = new h$3(i6), (this || e$5)._encoding = i6), (this || e$5)._encoding !== i6) + throw new Error("can't switch encodings"); + var o6 = (this || e$5)._decoder.write(t6); + return r6 && (o6 += (this || e$5)._decoder.end()), o6; +}; +var f$6 = a$5; +var m$1 = u5; +var n$6 = I3; +var p$3 = nt; +var s$3 = f$6; +function a$6(t6) { + s$3.call(this, "digest"), this._hash = t6; +} +t$2(a$6, s$3), a$6.prototype._update = function(t6) { + this._hash.update(t6); +}, a$6.prototype._final = function() { + return this._hash.digest(); +}; +var h$4 = function(t6) { + return "md5" === (t6 = t6.toLowerCase()) ? new m$1() : "rmd160" === t6 || "ripemd160" === t6 ? new n$6() : new a$6(p$3(t6)); +}; +var e$6 = u5; +var r$4 = function(t6) { + return new e$6().update(t6).digest(); +}; +var o$6 = t$2; +var h$5 = u4.Buffer; +var n$7 = f$6; +var p$4 = h$5.alloc(128); +function f$7(t6, a6) { + n$7.call(this, "digest"), "string" == typeof a6 && (a6 = h$5.from(a6)), this._alg = t6, this._key = a6, a6.length > 64 ? a6 = t6(a6) : a6.length < 64 && (a6 = h$5.concat([a6, p$4], 64)); + for (var e8 = this._ipad = h$5.allocUnsafe(64), i6 = this._opad = h$5.allocUnsafe(64), r6 = 0; r6 < 64; r6++) + e8[r6] = 54 ^ a6[r6], i6[r6] = 92 ^ a6[r6]; + this._hash = [e8]; +} +o$6(f$7, n$7), f$7.prototype._update = function(t6) { + this._hash.push(t6); +}, f$7.prototype._final = function() { + var t6 = this._alg(h$5.concat(this._hash)); + return this._alg(h$5.concat([this._opad, t6])); +}; +var l$4 = t$2; +var d$3 = f$7; +var c$4 = f$6; +var _$4 = u4.Buffer; +var m$2 = r$4; +var u$4 = I3; +var g$1 = nt; +var v$1 = _$4.alloc(128); +function y$1(t6, a6) { + c$4.call(this, "digest"), "string" == typeof a6 && (a6 = _$4.from(a6)); + var e8 = "sha512" === t6 || "sha384" === t6 ? 128 : 64; + (this._alg = t6, this._key = a6, a6.length > e8) ? a6 = ("rmd160" === t6 ? new u$4() : g$1(t6)).update(a6).digest() : a6.length < e8 && (a6 = _$4.concat([a6, v$1], e8)); + for (var i6 = this._ipad = _$4.allocUnsafe(e8), r6 = this._opad = _$4.allocUnsafe(e8), s6 = 0; s6 < e8; s6++) + i6[s6] = 54 ^ a6[s6], r6[s6] = 92 ^ a6[s6]; + this._hash = "rmd160" === t6 ? new u$4() : g$1(t6), this._hash.update(i6); +} +l$4(y$1, c$4), y$1.prototype._update = function(t6) { + this._hash.update(t6); +}, y$1.prototype._final = function() { + var t6 = this._hash.digest(); + return ("rmd160" === this._alg ? new u$4() : g$1(this._alg)).update(this._opad).update(t6).digest(); +}; +var w$3 = function(t6, a6) { + return "rmd160" === (t6 = t6.toLowerCase()) || "ripemd160" === t6 ? new y$1("rmd160", a6) : "md5" === t6 ? new d$3(m$2, a6) : new y$1(t6, a6); +}; +var s$4 = { sha224WithRSAEncryption: { sign: "rsa", hash: "sha224", id: "302d300d06096086480165030402040500041c" }, "RSA-SHA224": { sign: "ecdsa/rsa", hash: "sha224", id: "302d300d06096086480165030402040500041c" }, sha256WithRSAEncryption: { sign: "rsa", hash: "sha256", id: "3031300d060960864801650304020105000420" }, "RSA-SHA256": { sign: "ecdsa/rsa", hash: "sha256", id: "3031300d060960864801650304020105000420" }, sha384WithRSAEncryption: { sign: "rsa", hash: "sha384", id: "3041300d060960864801650304020205000430" }, "RSA-SHA384": { sign: "ecdsa/rsa", hash: "sha384", id: "3041300d060960864801650304020205000430" }, sha512WithRSAEncryption: { sign: "rsa", hash: "sha512", id: "3051300d060960864801650304020305000440" }, "RSA-SHA512": { sign: "ecdsa/rsa", hash: "sha512", id: "3051300d060960864801650304020305000440" }, "RSA-SHA1": { sign: "rsa", hash: "sha1", id: "3021300906052b0e03021a05000414" }, "ecdsa-with-SHA1": { sign: "ecdsa", hash: "sha1", id: "" }, sha256: { sign: "ecdsa", hash: "sha256", id: "" }, sha224: { sign: "ecdsa", hash: "sha224", id: "" }, sha384: { sign: "ecdsa", hash: "sha384", id: "" }, sha512: { sign: "ecdsa", hash: "sha512", id: "" }, "DSA-SHA": { sign: "dsa", hash: "sha1", id: "" }, "DSA-SHA1": { sign: "dsa", hash: "sha1", id: "" }, DSA: { sign: "dsa", hash: "sha1", id: "" }, "DSA-WITH-SHA224": { sign: "dsa", hash: "sha224", id: "" }, "DSA-SHA224": { sign: "dsa", hash: "sha224", id: "" }, "DSA-WITH-SHA256": { sign: "dsa", hash: "sha256", id: "" }, "DSA-SHA256": { sign: "dsa", hash: "sha256", id: "" }, "DSA-WITH-SHA384": { sign: "dsa", hash: "sha384", id: "" }, "DSA-SHA384": { sign: "dsa", hash: "sha384", id: "" }, "DSA-WITH-SHA512": { sign: "dsa", hash: "sha512", id: "" }, "DSA-SHA512": { sign: "dsa", hash: "sha512", id: "" }, "DSA-RIPEMD160": { sign: "dsa", hash: "rmd160", id: "" }, ripemd160WithRSA: { sign: "rsa", hash: "rmd160", id: "3021300906052b2403020105000414" }, "RSA-RIPEMD160": { sign: "rsa", hash: "rmd160", id: "3021300906052b2403020105000414" }, md5WithRSAEncryption: { sign: "rsa", hash: "md5", id: "3020300c06082a864886f70d020505000410" }, "RSA-MD5": { sign: "rsa", hash: "md5", id: "3020300c06082a864886f70d020505000410" } }; +var f$8 = e$1$1.Buffer; +var a$7 = Math.pow(2, 30) - 1; +function s$5(r6, e8) { + if ("string" != typeof r6 && !f$8.isBuffer(r6)) + throw new TypeError(e8 + " must be a buffer or string"); +} +var u$5; +var h$6 = function(r6, e8, t6, n6) { + if (s$5(r6, "Password"), s$5(e8, "Salt"), "number" != typeof t6) + throw new TypeError("Iterations not a number"); + if (t6 < 0) + throw new TypeError("Bad iterations"); + if ("number" != typeof n6) + throw new TypeError("Key length not a number"); + if (n6 < 0 || n6 > a$7 || n6 != n6) + throw new TypeError("Bad key length"); +}; +var c$5 = T; +c$5.browser ? u$5 = "utf-8" : u$5 = parseInt(c$5.version.split(".")[0].slice(1), 10) >= 6 ? "utf-8" : "binary"; +var l$5 = u$5; +var p$5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var d$4 = r$4; +var m$3 = I3; +var y$2 = nt; +var b$3 = h$6; +var v$2 = l$5; +var w$4 = u4.Buffer; +var g$2 = w$4.alloc(128); +var B$1 = { md5: 16, sha1: 20, sha224: 28, sha256: 32, sha384: 48, sha512: 64, rmd160: 20, ripemd160: 20 }; +function T$1(r6, e8, t6) { + var n6 = /* @__PURE__ */ function(r7) { + function e9(e10) { + return y$2(r7).update(e10).digest(); + } + return "rmd160" === r7 || "ripemd160" === r7 ? function(r8) { + return new m$3().update(r8).digest(); + } : "md5" === r7 ? d$4 : e9; + }(r6), o6 = "sha512" === r6 || "sha384" === r6 ? 128 : 64; + e8.length > o6 ? e8 = n6(e8) : e8.length < o6 && (e8 = w$4.concat([e8, g$2], o6)); + for (var i6 = w$4.allocUnsafe(o6 + B$1[r6]), f7 = w$4.allocUnsafe(o6 + B$1[r6]), a6 = 0; a6 < o6; a6++) + i6[a6] = 54 ^ e8[a6], f7[a6] = 92 ^ e8[a6]; + var s6 = w$4.allocUnsafe(o6 + t6 + 4); + i6.copy(s6, 0, 0, o6), (this || p$5).ipad1 = s6, (this || p$5).ipad2 = i6, (this || p$5).opad = f7, (this || p$5).alg = r6, (this || p$5).blocksize = o6, (this || p$5).hash = n6, (this || p$5).size = B$1[r6]; +} +T$1.prototype.run = function(r6, e8) { + return r6.copy(e8, (this || p$5).blocksize), this.hash(e8).copy((this || p$5).opad, (this || p$5).blocksize), this.hash((this || p$5).opad); +}; +var k$3; +var S$1 = function(r6, e8, t6, n6, o6) { + b$3(r6, e8, t6, n6), w$4.isBuffer(r6) || (r6 = w$4.from(r6, v$2)), w$4.isBuffer(e8) || (e8 = w$4.from(e8, v$2)); + var i6 = new T$1(o6 = o6 || "sha1", r6, e8.length), f7 = w$4.allocUnsafe(n6), a6 = w$4.allocUnsafe(e8.length + 4); + e8.copy(a6, 0, 0, e8.length); + for (var s6 = 0, u6 = B$1[o6], h6 = Math.ceil(n6 / u6), c6 = 1; c6 <= h6; c6++) { + a6.writeUInt32BE(c6, e8.length); + for (var l6 = i6.run(a6, i6.ipad1), p6 = l6, d5 = 1; d5 < t6; d5++) { + p6 = i6.run(p6, i6.ipad2); + for (var m5 = 0; m5 < u6; m5++) + l6[m5] ^= p6[m5]; + } + l6.copy(f7, s6), s6 += u6; + } + return f7; +}; +var A$1 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var H$1 = T; +var E$2 = h$6; +var P$1 = l$5; +var U$1 = S$1; +var K$1 = u4.Buffer; +var x$1 = A$1.crypto && A$1.crypto.subtle; +var z$1 = { sha: "SHA-1", "sha-1": "SHA-1", sha1: "SHA-1", sha256: "SHA-256", "sha-256": "SHA-256", sha384: "SHA-384", "sha-384": "SHA-384", "sha-512": "SHA-512", sha512: "SHA-512" }; +var I$2 = []; +function D$1(r6, e8, t6, n6, o6) { + return x$1.importKey("raw", r6, { name: "PBKDF2" }, false, ["deriveBits"]).then(function(r7) { + return x$1.deriveBits({ name: "PBKDF2", salt: e8, iterations: t6, hash: { name: o6 } }, r7, n6 << 3); + }).then(function(r7) { + return K$1.from(r7); + }); +} +var F$1 = function(r6, e8, t6, n6, o6, i6) { + "function" == typeof o6 && (i6 = o6, o6 = void 0); + var f7 = z$1[(o6 = o6 || "sha1").toLowerCase()]; + if (!f7 || "function" != typeof A$1.Promise) + return H$1.nextTick(function() { + var f8; + try { + f8 = U$1(r6, e8, t6, n6, o6); + } catch (r7) { + return i6(r7); + } + i6(null, f8); + }); + if (E$2(r6, e8, t6, n6), "function" != typeof i6) + throw new Error("No callback provided to pbkdf2"); + K$1.isBuffer(r6) || (r6 = K$1.from(r6, P$1)), K$1.isBuffer(e8) || (e8 = K$1.from(e8, P$1)), function(r7, e9) { + r7.then(function(r8) { + H$1.nextTick(function() { + e9(null, r8); + }); + }, function(r8) { + H$1.nextTick(function() { + e9(r8); + }); + }); + }(function(r7) { + if (A$1.process && !A$1.process.browser) + return Promise.resolve(false); + if (!x$1 || !x$1.importKey || !x$1.deriveBits) + return Promise.resolve(false); + if (void 0 !== I$2[r7]) + return I$2[r7]; + var e9 = D$1(k$3 = k$3 || K$1.alloc(8), k$3, 10, 128, r7).then(function() { + return true; + }).catch(function() { + return false; + }); + return I$2[r7] = e9, e9; + }(f7).then(function(i7) { + return i7 ? D$1(r6, e8, t6, n6, f7) : U$1(r6, e8, t6, n6, o6); + }), i6); +}; +var M$1 = {}; +M$1.pbkdf2 = F$1, M$1.pbkdf2Sync = S$1; +var r$5; +function e$7(r6, e8) { + if (!r6) + throw new Error(e8 || "Assertion failed"); +} +r$5 = e$7, e$7.equal = function(r6, e8, o6) { + if (r6 != e8) + throw new Error(o6 || "Assertion failed: " + r6 + " != " + e8); +}; +var o$7 = r$5; +var r$6 = { readUInt32BE: function(t6, e8) { + return (t6[0 + e8] << 24 | t6[1 + e8] << 16 | t6[2 + e8] << 8 | t6[3 + e8]) >>> 0; +}, writeUInt32BE: function(t6, e8, r6) { + t6[0 + r6] = e8 >>> 24, t6[1 + r6] = e8 >>> 16 & 255, t6[2 + r6] = e8 >>> 8 & 255, t6[3 + r6] = 255 & e8; +}, ip: function(t6, e8, r6, i6) { + for (var n6 = 0, f7 = 0, o6 = 6; o6 >= 0; o6 -= 2) { + for (var p6 = 0; p6 <= 24; p6 += 8) + n6 <<= 1, n6 |= e8 >>> p6 + o6 & 1; + for (p6 = 0; p6 <= 24; p6 += 8) + n6 <<= 1, n6 |= t6 >>> p6 + o6 & 1; + } + for (o6 = 6; o6 >= 0; o6 -= 2) { + for (p6 = 1; p6 <= 25; p6 += 8) + f7 <<= 1, f7 |= e8 >>> p6 + o6 & 1; + for (p6 = 1; p6 <= 25; p6 += 8) + f7 <<= 1, f7 |= t6 >>> p6 + o6 & 1; + } + r6[i6 + 0] = n6 >>> 0, r6[i6 + 1] = f7 >>> 0; +}, rip: function(t6, e8, r6, i6) { + for (var n6 = 0, f7 = 0, o6 = 0; o6 < 4; o6++) + for (var p6 = 24; p6 >= 0; p6 -= 8) + n6 <<= 1, n6 |= e8 >>> p6 + o6 & 1, n6 <<= 1, n6 |= t6 >>> p6 + o6 & 1; + for (o6 = 4; o6 < 8; o6++) + for (p6 = 24; p6 >= 0; p6 -= 8) + f7 <<= 1, f7 |= e8 >>> p6 + o6 & 1, f7 <<= 1, f7 |= t6 >>> p6 + o6 & 1; + r6[i6 + 0] = n6 >>> 0, r6[i6 + 1] = f7 >>> 0; +}, pc1: function(t6, e8, r6, i6) { + for (var n6 = 0, f7 = 0, o6 = 7; o6 >= 5; o6--) { + for (var p6 = 0; p6 <= 24; p6 += 8) + n6 <<= 1, n6 |= e8 >> p6 + o6 & 1; + for (p6 = 0; p6 <= 24; p6 += 8) + n6 <<= 1, n6 |= t6 >> p6 + o6 & 1; + } + for (p6 = 0; p6 <= 24; p6 += 8) + n6 <<= 1, n6 |= e8 >> p6 + o6 & 1; + for (o6 = 1; o6 <= 3; o6++) { + for (p6 = 0; p6 <= 24; p6 += 8) + f7 <<= 1, f7 |= e8 >> p6 + o6 & 1; + for (p6 = 0; p6 <= 24; p6 += 8) + f7 <<= 1, f7 |= t6 >> p6 + o6 & 1; + } + for (p6 = 0; p6 <= 24; p6 += 8) + f7 <<= 1, f7 |= t6 >> p6 + o6 & 1; + r6[i6 + 0] = n6 >>> 0, r6[i6 + 1] = f7 >>> 0; +}, r28shl: function(t6, e8) { + return t6 << e8 & 268435455 | t6 >>> 28 - e8; +} }; +var i5 = [14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24]; +r$6.pc2 = function(t6, e8, r6, n6) { + for (var f7 = 0, o6 = 0, p6 = i5.length >>> 1, u6 = 0; u6 < p6; u6++) + f7 <<= 1, f7 |= t6 >>> i5[u6] & 1; + for (u6 = p6; u6 < i5.length; u6++) + o6 <<= 1, o6 |= e8 >>> i5[u6] & 1; + r6[n6 + 0] = f7 >>> 0, r6[n6 + 1] = o6 >>> 0; +}, r$6.expand = function(t6, e8, r6) { + var i6 = 0, n6 = 0; + i6 = (1 & t6) << 5 | t6 >>> 27; + for (var f7 = 23; f7 >= 15; f7 -= 4) + i6 <<= 6, i6 |= t6 >>> f7 & 63; + for (f7 = 11; f7 >= 3; f7 -= 4) + n6 |= t6 >>> f7 & 63, n6 <<= 6; + n6 |= (31 & t6) << 1 | t6 >>> 31, e8[r6 + 0] = i6 >>> 0, e8[r6 + 1] = n6 >>> 0; +}; +var n$8 = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11]; +r$6.substitute = function(t6, e8) { + for (var r6 = 0, i6 = 0; i6 < 4; i6++) { + r6 <<= 4, r6 |= n$8[64 * i6 + (t6 >>> 18 - 6 * i6 & 63)]; + } + for (i6 = 0; i6 < 4; i6++) { + r6 <<= 4, r6 |= n$8[256 + 64 * i6 + (e8 >>> 18 - 6 * i6 & 63)]; + } + return r6 >>> 0; +}; +var f$9 = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7]; +r$6.permute = function(t6) { + for (var e8 = 0, r6 = 0; r6 < f$9.length; r6++) + e8 <<= 1, e8 |= t6 >>> f$9[r6] & 1; + return e8 >>> 0; +}, r$6.padSplit = function(t6, e8, r6) { + for (var i6 = t6.toString(2); i6.length < e8; ) + i6 = "0" + i6; + for (var n6 = [], f7 = 0; f7 < e8; f7 += r6) + n6.push(i6.slice(f7, f7 + r6)); + return n6.join(" "); +}; +var o$8; +var p$6 = o$7; +function u$6(t6) { + this.options = t6, this.type = this.options.type, this.blockSize = 8, this._init(), this.buffer = new Array(this.blockSize), this.bufferOff = 0; +} +o$8 = u$6, u$6.prototype._init = function() { +}, u$6.prototype.update = function(t6) { + return 0 === t6.length ? [] : "decrypt" === this.type ? this._updateDecrypt(t6) : this._updateEncrypt(t6); +}, u$6.prototype._buffer = function(t6, e8) { + for (var r6 = Math.min(this.buffer.length - this.bufferOff, t6.length - e8), i6 = 0; i6 < r6; i6++) + this.buffer[this.bufferOff + i6] = t6[e8 + i6]; + return this.bufferOff += r6, r6; +}, u$6.prototype._flushBuffer = function(t6, e8) { + return this._update(this.buffer, 0, t6, e8), this.bufferOff = 0, this.blockSize; +}, u$6.prototype._updateEncrypt = function(t6) { + var e8 = 0, r6 = 0, i6 = (this.bufferOff + t6.length) / this.blockSize | 0, n6 = new Array(i6 * this.blockSize); + 0 !== this.bufferOff && (e8 += this._buffer(t6, e8), this.bufferOff === this.buffer.length && (r6 += this._flushBuffer(n6, r6))); + for (var f7 = t6.length - (t6.length - e8) % this.blockSize; e8 < f7; e8 += this.blockSize) + this._update(t6, e8, n6, r6), r6 += this.blockSize; + for (; e8 < t6.length; e8++, this.bufferOff++) + this.buffer[this.bufferOff] = t6[e8]; + return n6; +}, u$6.prototype._updateDecrypt = function(t6) { + for (var e8 = 0, r6 = 0, i6 = Math.ceil((this.bufferOff + t6.length) / this.blockSize) - 1, n6 = new Array(i6 * this.blockSize); i6 > 0; i6--) + e8 += this._buffer(t6, e8), r6 += this._flushBuffer(n6, r6); + return e8 += this._buffer(t6, e8), n6; +}, u$6.prototype.final = function(t6) { + var e8, r6; + return t6 && (e8 = this.update(t6)), r6 = "encrypt" === this.type ? this._finalEncrypt() : this._finalDecrypt(), e8 ? e8.concat(r6) : r6; +}, u$6.prototype._pad = function(t6, e8) { + if (0 === e8) + return false; + for (; e8 < t6.length; ) + t6[e8++] = 0; + return true; +}, u$6.prototype._finalEncrypt = function() { + if (!this._pad(this.buffer, this.bufferOff)) + return []; + var t6 = new Array(this.blockSize); + return this._update(this.buffer, 0, t6, 0), t6; +}, u$6.prototype._unpad = function(t6) { + return t6; +}, u$6.prototype._finalDecrypt = function() { + p$6.equal(this.bufferOff, this.blockSize, "Not enough data to decrypt"); + var t6 = new Array(this.blockSize); + return this._flushBuffer(t6, 0), this._unpad(t6); +}; +var s$6; +var a$8 = o$8; +var h$7 = o$7; +var c$6 = r$6; +var l$6 = a$8; +function y$3() { + this.tmp = new Array(2), this.keys = null; +} +function v$3(t6) { + l$6.call(this, t6); + var e8 = new y$3(); + this._desState = e8, this.deriveKeys(e8, t6.key); +} +t$2(v$3, l$6), s$6 = v$3, v$3.create = function(t6) { + return new v$3(t6); +}; +var d$5 = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]; +v$3.prototype.deriveKeys = function(t6, e8) { + t6.keys = new Array(32), h$7.equal(e8.length, this.blockSize, "Invalid key length"); + var r6 = c$6.readUInt32BE(e8, 0), i6 = c$6.readUInt32BE(e8, 4); + c$6.pc1(r6, i6, t6.tmp, 0), r6 = t6.tmp[0], i6 = t6.tmp[1]; + for (var n6 = 0; n6 < t6.keys.length; n6 += 2) { + var f7 = d$5[n6 >>> 1]; + r6 = c$6.r28shl(r6, f7), i6 = c$6.r28shl(i6, f7), c$6.pc2(r6, i6, t6.keys, n6); + } +}, v$3.prototype._update = function(t6, e8, r6, i6) { + var n6 = this._desState, f7 = c$6.readUInt32BE(t6, e8), o6 = c$6.readUInt32BE(t6, e8 + 4); + c$6.ip(f7, o6, n6.tmp, 0), f7 = n6.tmp[0], o6 = n6.tmp[1], "encrypt" === this.type ? this._encrypt(n6, f7, o6, n6.tmp, 0) : this._decrypt(n6, f7, o6, n6.tmp, 0), f7 = n6.tmp[0], o6 = n6.tmp[1], c$6.writeUInt32BE(r6, f7, i6), c$6.writeUInt32BE(r6, o6, i6 + 4); +}, v$3.prototype._pad = function(t6, e8) { + for (var r6 = t6.length - e8, i6 = e8; i6 < t6.length; i6++) + t6[i6] = r6; + return true; +}, v$3.prototype._unpad = function(t6) { + for (var e8 = t6[t6.length - 1], r6 = t6.length - e8; r6 < t6.length; r6++) + h$7.equal(t6[r6], e8); + return t6.slice(0, t6.length - e8); +}, v$3.prototype._encrypt = function(t6, e8, r6, i6, n6) { + for (var f7 = e8, o6 = r6, p6 = 0; p6 < t6.keys.length; p6 += 2) { + var u6 = t6.keys[p6], s6 = t6.keys[p6 + 1]; + c$6.expand(o6, t6.tmp, 0), u6 ^= t6.tmp[0], s6 ^= t6.tmp[1]; + var a6 = c$6.substitute(u6, s6), h6 = o6; + o6 = (f7 ^ c$6.permute(a6)) >>> 0, f7 = h6; + } + c$6.rip(o6, f7, i6, n6); +}, v$3.prototype._decrypt = function(t6, e8, r6, i6, n6) { + for (var f7 = r6, o6 = e8, p6 = t6.keys.length - 2; p6 >= 0; p6 -= 2) { + var u6 = t6.keys[p6], s6 = t6.keys[p6 + 1]; + c$6.expand(f7, t6.tmp, 0), u6 ^= t6.tmp[0], s6 ^= t6.tmp[1]; + var a6 = c$6.substitute(u6, s6), h6 = f7; + f7 = (o6 ^ c$6.permute(a6)) >>> 0, o6 = h6; + } + c$6.rip(f7, o6, i6, n6); +}; +var _$5 = s$6; +var b$4 = {}; +var k$4 = o$7; +var g$3 = t$2; +var m$4 = {}; +function S$2(t6) { + k$4.equal(t6.length, 8, "Invalid IV length"), this.iv = new Array(8); + for (var e8 = 0; e8 < this.iv.length; e8++) + this.iv[e8] = t6[e8]; +} +b$4.instantiate = function(t6) { + function e8(e9) { + t6.call(this, e9), this._cbcInit(); + } + g$3(e8, t6); + for (var r6 = Object.keys(m$4), i6 = 0; i6 < r6.length; i6++) { + var n6 = r6[i6]; + e8.prototype[n6] = m$4[n6]; + } + return e8.create = function(t7) { + return new e8(t7); + }, e8; +}, m$4._cbcInit = function() { + var t6 = new S$2(this.options.iv); + this._cbcState = t6; +}, m$4._update = function(t6, e8, r6, i6) { + var n6 = this._cbcState, f7 = this.constructor.super_.prototype, o6 = n6.iv; + if ("encrypt" === this.type) { + for (var p6 = 0; p6 < this.blockSize; p6++) + o6[p6] ^= t6[e8 + p6]; + f7._update.call(this, o6, 0, r6, i6); + for (p6 = 0; p6 < this.blockSize; p6++) + o6[p6] = r6[i6 + p6]; + } else { + f7._update.call(this, t6, e8, r6, i6); + for (p6 = 0; p6 < this.blockSize; p6++) + r6[i6 + p6] ^= o6[p6]; + for (p6 = 0; p6 < this.blockSize; p6++) + o6[p6] = t6[e8 + p6]; + } +}; +var z$2; +var w$5 = o$7; +var E$3 = a$8; +var I$3 = _$5; +function O$1(t6, e8) { + w$5.equal(e8.length, 24, "Invalid key length"); + var r6 = e8.slice(0, 8), i6 = e8.slice(8, 16), n6 = e8.slice(16, 24); + this.ciphers = "encrypt" === t6 ? [I$3.create({ type: "encrypt", key: r6 }), I$3.create({ type: "decrypt", key: i6 }), I$3.create({ type: "encrypt", key: n6 })] : [I$3.create({ type: "decrypt", key: n6 }), I$3.create({ type: "encrypt", key: i6 }), I$3.create({ type: "decrypt", key: r6 })]; +} +function B$2(t6) { + E$3.call(this, t6); + var e8 = new O$1(this.type, this.options.key); + this._edeState = e8; +} +t$2(B$2, E$3), z$2 = B$2, B$2.create = function(t6) { + return new B$2(t6); +}, B$2.prototype._update = function(t6, e8, r6, i6) { + var n6 = this._edeState; + n6.ciphers[0]._update(t6, e8, r6, i6), n6.ciphers[1]._update(r6, i6, r6, i6), n6.ciphers[2]._update(r6, i6, r6, i6); +}, B$2.prototype._pad = I$3.prototype._pad, B$2.prototype._unpad = I$3.prototype._unpad; +var A$2 = z$2; +var U$2 = {}; +U$2.utils = r$6, U$2.Cipher = a$8, U$2.DES = _$5, U$2.CBC = b$4, U$2.EDE = A$2; +var d$6; +var i$13 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var f$a = f$6; +var o$9 = U$2; +var a$9 = t$2; +var c$7 = u4.Buffer; +var n$9 = { "des-ede3-cbc": o$9.CBC.instantiate(o$9.EDE), "des-ede3": o$9.EDE, "des-ede-cbc": o$9.CBC.instantiate(o$9.EDE), "des-ede": o$9.EDE, "des-cbc": o$9.CBC.instantiate(o$9.DES), "des-ecb": o$9.DES }; +function p$7(e8) { + f$a.call(this || i$13); + var t6, r6 = e8.mode.toLowerCase(), s6 = n$9[r6]; + t6 = e8.decrypt ? "decrypt" : "encrypt"; + var d5 = e8.key; + c$7.isBuffer(d5) || (d5 = c$7.from(d5)), "des-ede" !== r6 && "des-ede-cbc" !== r6 || (d5 = c$7.concat([d5, d5.slice(0, 8)])); + var o6 = e8.iv; + c$7.isBuffer(o6) || (o6 = c$7.from(o6)), (this || i$13)._des = s6.create({ key: d5, iv: o6, type: t6 }); +} +n$9.des = n$9["des-cbc"], n$9.des3 = n$9["des-ede3-cbc"], d$6 = p$7, a$9(p$7, f$a), p$7.prototype._update = function(e8) { + return c$7.from((this || i$13)._des.update(e8)); +}, p$7.prototype._final = function() { + return c$7.from((this || i$13)._des.final()); +}; +var l$7 = d$6; +var e$8 = e$1$1.Buffer; +var f$b = function(r6, f7) { + for (var t6 = Math.min(r6.length, f7.length), n6 = new e$8(t6), o6 = 0; o6 < t6; ++o6) + n6[o6] = r6[o6] ^ f7[o6]; + return n6; +}; +var t$12 = function(e8) { + for (var c6, r6 = e8.length; r6--; ) { + if (255 !== (c6 = e8.readUInt8(r6))) { + c6++, e8.writeUInt8(c6, r6); + break; + } + e8.writeUInt8(0, r6); + } +}; +var a$a = { encrypt: function(e8, c6) { + return e8._cipher.encryptBlock(c6); +}, decrypt: function(e8, c6) { + return e8._cipher.decryptBlock(c6); +} }; +var p$8 = {}; +var n$a = f$b; +p$8.encrypt = function(e8, c6) { + var r6 = n$a(c6, e8._prev); + return e8._prev = e8._cipher.encryptBlock(r6), e8._prev; +}, p$8.decrypt = function(e8, c6) { + var r6 = e8._prev; + e8._prev = c6; + var t6 = e8._cipher.decryptBlock(c6); + return n$a(t6, r6); +}; +var i$2 = {}; +var o$a = u4.Buffer; +var h$8 = f$b; +function v$4(e8, c6, r6) { + var t6 = c6.length, a6 = h$8(c6, e8._cache); + return e8._cache = e8._cache.slice(t6), e8._prev = o$a.concat([e8._prev, r6 ? c6 : a6]), a6; +} +i$2.encrypt = function(e8, c6, r6) { + for (var t6, a6 = o$a.allocUnsafe(0); c6.length; ) { + if (0 === e8._cache.length && (e8._cache = e8._cipher.encryptBlock(e8._prev), e8._prev = o$a.allocUnsafe(0)), !(e8._cache.length <= c6.length)) { + a6 = o$a.concat([a6, v$4(e8, c6, r6)]); + break; + } + t6 = e8._cache.length, a6 = o$a.concat([a6, v$4(e8, c6.slice(0, t6), r6)]), c6 = c6.slice(t6); + } + return a6; +}; +var y$4 = {}; +var f$c = u4.Buffer; +function s$7(e8, c6, r6) { + var t6 = e8._cipher.encryptBlock(e8._prev)[0] ^ c6; + return e8._prev = f$c.concat([e8._prev.slice(1), f$c.from([r6 ? c6 : t6])]), t6; +} +y$4.encrypt = function(e8, c6, r6) { + for (var t6 = c6.length, a6 = f$c.allocUnsafe(t6), p6 = -1; ++p6 < t6; ) + a6[p6] = s$7(e8, c6[p6], r6); + return a6; +}; +var l$8 = {}; +var m$5 = u4.Buffer; +function _$6(e8, c6, r6) { + for (var t6, a6, p6 = -1, n6 = 0; ++p6 < 8; ) + t6 = c6 & 1 << 7 - p6 ? 128 : 0, n6 += (128 & (a6 = e8._cipher.encryptBlock(e8._prev)[0] ^ t6)) >> p6 % 8, e8._prev = k$5(e8._prev, r6 ? t6 : a6); + return n6; +} +function k$5(e8, c6) { + var r6 = e8.length, t6 = -1, a6 = m$5.allocUnsafe(e8.length); + for (e8 = m$5.concat([e8, m$5.from([c6])]); ++t6 < r6; ) + a6[t6] = e8[t6] << 1 | e8[t6 + 1] >> 7; + return a6; +} +l$8.encrypt = function(e8, c6, r6) { + for (var t6 = c6.length, a6 = m$5.allocUnsafe(t6), p6 = -1; ++p6 < t6; ) + a6[p6] = _$6(e8, c6[p6], r6); + return a6; +}; +var B$3 = {}; +var u$7 = e$1$1.Buffer; +var C$1 = f$b; +function E$4(e8) { + return e8._prev = e8._cipher.encryptBlock(e8._prev), e8._prev; +} +B$3.encrypt = function(e8, c6) { + for (; e8._cache.length < c6.length; ) + e8._cache = u$7.concat([e8._cache, E$4(e8)]); + var r6 = e8._cache.slice(0, c6.length); + return e8._cache = e8._cache.slice(c6.length), C$1(c6, r6); +}; +var d$7 = {}; +var b$5 = f$b; +var A$3 = u4.Buffer; +var S$3 = t$12; +function g$4(e8) { + var c6 = e8._cipher.encryptBlockRaw(e8._prev); + return S$3(e8._prev), c6; +} +d$7.encrypt = function(e8, c6) { + var r6 = Math.ceil(c6.length / 16), t6 = e8._cache.length; + e8._cache = A$3.concat([e8._cache, A$3.allocUnsafe(16 * r6)]); + for (var a6 = 0; a6 < r6; a6++) { + var p6 = g$4(e8), n6 = t6 + 16 * a6; + e8._cache.writeUInt32BE(p6[0], n6 + 0), e8._cache.writeUInt32BE(p6[1], n6 + 4), e8._cache.writeUInt32BE(p6[2], n6 + 8), e8._cache.writeUInt32BE(p6[3], n6 + 12); + } + var i6 = e8._cache.slice(0, c6.length); + return e8._cache = e8._cache.slice(c6.length), b$5(c6, i6); +}; +var F$2 = { "aes-128-ecb": { cipher: "AES", key: 128, iv: 0, mode: "ECB", type: "block" }, "aes-192-ecb": { cipher: "AES", key: 192, iv: 0, mode: "ECB", type: "block" }, "aes-256-ecb": { cipher: "AES", key: 256, iv: 0, mode: "ECB", type: "block" }, "aes-128-cbc": { cipher: "AES", key: 128, iv: 16, mode: "CBC", type: "block" }, "aes-192-cbc": { cipher: "AES", key: 192, iv: 16, mode: "CBC", type: "block" }, "aes-256-cbc": { cipher: "AES", key: 256, iv: 16, mode: "CBC", type: "block" }, aes128: { cipher: "AES", key: 128, iv: 16, mode: "CBC", type: "block" }, aes192: { cipher: "AES", key: 192, iv: 16, mode: "CBC", type: "block" }, aes256: { cipher: "AES", key: 256, iv: 16, mode: "CBC", type: "block" }, "aes-128-cfb": { cipher: "AES", key: 128, iv: 16, mode: "CFB", type: "stream" }, "aes-192-cfb": { cipher: "AES", key: 192, iv: 16, mode: "CFB", type: "stream" }, "aes-256-cfb": { cipher: "AES", key: 256, iv: 16, mode: "CFB", type: "stream" }, "aes-128-cfb8": { cipher: "AES", key: 128, iv: 16, mode: "CFB8", type: "stream" }, "aes-192-cfb8": { cipher: "AES", key: 192, iv: 16, mode: "CFB8", type: "stream" }, "aes-256-cfb8": { cipher: "AES", key: 256, iv: 16, mode: "CFB8", type: "stream" }, "aes-128-cfb1": { cipher: "AES", key: 128, iv: 16, mode: "CFB1", type: "stream" }, "aes-192-cfb1": { cipher: "AES", key: 192, iv: 16, mode: "CFB1", type: "stream" }, "aes-256-cfb1": { cipher: "AES", key: 256, iv: 16, mode: "CFB1", type: "stream" }, "aes-128-ofb": { cipher: "AES", key: 128, iv: 16, mode: "OFB", type: "stream" }, "aes-192-ofb": { cipher: "AES", key: 192, iv: 16, mode: "OFB", type: "stream" }, "aes-256-ofb": { cipher: "AES", key: 256, iv: 16, mode: "OFB", type: "stream" }, "aes-128-ctr": { cipher: "AES", key: 128, iv: 16, mode: "CTR", type: "stream" }, "aes-192-ctr": { cipher: "AES", key: 192, iv: 16, mode: "CTR", type: "stream" }, "aes-256-ctr": { cipher: "AES", key: 256, iv: 16, mode: "CTR", type: "stream" }, "aes-128-gcm": { cipher: "AES", key: 128, iv: 12, mode: "GCM", type: "auth" }, "aes-192-gcm": { cipher: "AES", key: 192, iv: 12, mode: "GCM", type: "auth" }, "aes-256-gcm": { cipher: "AES", key: 256, iv: 12, mode: "GCM", type: "auth" } }; +var U$3 = { ECB: a$a, CBC: p$8, CFB: i$2, CFB8: y$4, CFB1: l$8, OFB: B$3, CTR: d$7, GCM: d$7 }; +var w$6 = F$2; +for (I$4 in w$6) + w$6[I$4].module = U$3[w$6[I$4].mode]; +var I$4; +var M$2 = w$6; +var a$b = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var h$9 = {}; +var o$b = u4.Buffer; +function s$8(t6) { + o$b.isBuffer(t6) || (t6 = o$b.from(t6)); + for (var e8 = t6.length / 4 | 0, i6 = new Array(e8), r6 = 0; r6 < e8; r6++) + i6[r6] = t6.readUInt32BE(4 * r6); + return i6; +} +function c$8(t6) { + for (; 0 < t6.length; t6++) + t6[0] = 0; +} +function l$9(t6, e8, i6, r6, n6) { + for (var a6, h6, o6, s6, c6 = i6[0], l6 = i6[1], f7 = i6[2], u6 = i6[3], p6 = t6[0] ^ e8[0], _4 = t6[1] ^ e8[1], d5 = t6[2] ^ e8[2], y5 = t6[3] ^ e8[3], B4 = 4, g4 = 1; g4 < n6; g4++) + a6 = c6[p6 >>> 24] ^ l6[_4 >>> 16 & 255] ^ f7[d5 >>> 8 & 255] ^ u6[255 & y5] ^ e8[B4++], h6 = c6[_4 >>> 24] ^ l6[d5 >>> 16 & 255] ^ f7[y5 >>> 8 & 255] ^ u6[255 & p6] ^ e8[B4++], o6 = c6[d5 >>> 24] ^ l6[y5 >>> 16 & 255] ^ f7[p6 >>> 8 & 255] ^ u6[255 & _4] ^ e8[B4++], s6 = c6[y5 >>> 24] ^ l6[p6 >>> 16 & 255] ^ f7[_4 >>> 8 & 255] ^ u6[255 & d5] ^ e8[B4++], p6 = a6, _4 = h6, d5 = o6, y5 = s6; + return a6 = (r6[p6 >>> 24] << 24 | r6[_4 >>> 16 & 255] << 16 | r6[d5 >>> 8 & 255] << 8 | r6[255 & y5]) ^ e8[B4++], h6 = (r6[_4 >>> 24] << 24 | r6[d5 >>> 16 & 255] << 16 | r6[y5 >>> 8 & 255] << 8 | r6[255 & p6]) ^ e8[B4++], o6 = (r6[d5 >>> 24] << 24 | r6[y5 >>> 16 & 255] << 16 | r6[p6 >>> 8 & 255] << 8 | r6[255 & _4]) ^ e8[B4++], s6 = (r6[y5 >>> 24] << 24 | r6[p6 >>> 16 & 255] << 16 | r6[_4 >>> 8 & 255] << 8 | r6[255 & d5]) ^ e8[B4++], [a6 >>>= 0, h6 >>>= 0, o6 >>>= 0, s6 >>>= 0]; +} +var f$d = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; +var u$8 = function() { + for (var t6 = new Array(256), e8 = 0; e8 < 256; e8++) + t6[e8] = e8 < 128 ? e8 << 1 : e8 << 1 ^ 283; + for (var i6 = [], r6 = [], n6 = [[], [], [], []], a6 = [[], [], [], []], h6 = 0, o6 = 0, s6 = 0; s6 < 256; ++s6) { + var c6 = o6 ^ o6 << 1 ^ o6 << 2 ^ o6 << 3 ^ o6 << 4; + c6 = c6 >>> 8 ^ 255 & c6 ^ 99, i6[h6] = c6, r6[c6] = h6; + var l6 = t6[h6], f7 = t6[l6], u6 = t6[f7], p6 = 257 * t6[c6] ^ 16843008 * c6; + n6[0][h6] = p6 << 24 | p6 >>> 8, n6[1][h6] = p6 << 16 | p6 >>> 16, n6[2][h6] = p6 << 8 | p6 >>> 24, n6[3][h6] = p6, p6 = 16843009 * u6 ^ 65537 * f7 ^ 257 * l6 ^ 16843008 * h6, a6[0][c6] = p6 << 24 | p6 >>> 8, a6[1][c6] = p6 << 16 | p6 >>> 16, a6[2][c6] = p6 << 8 | p6 >>> 24, a6[3][c6] = p6, 0 === h6 ? h6 = o6 = 1 : (h6 = l6 ^ t6[t6[t6[u6 ^ l6]]], o6 ^= t6[t6[o6]]); + } + return { SBOX: i6, INV_SBOX: r6, SUB_MIX: n6, INV_SUB_MIX: a6 }; +}(); +function p$9(t6) { + (this || a$b)._key = s$8(t6), this._reset(); +} +p$9.blockSize = 16, p$9.keySize = 32, p$9.prototype.blockSize = p$9.blockSize, p$9.prototype.keySize = p$9.keySize, p$9.prototype._reset = function() { + for (var t6 = (this || a$b)._key, e8 = t6.length, i6 = e8 + 6, r6 = 4 * (i6 + 1), n6 = [], h6 = 0; h6 < e8; h6++) + n6[h6] = t6[h6]; + for (h6 = e8; h6 < r6; h6++) { + var o6 = n6[h6 - 1]; + h6 % e8 == 0 ? (o6 = o6 << 8 | o6 >>> 24, o6 = u$8.SBOX[o6 >>> 24] << 24 | u$8.SBOX[o6 >>> 16 & 255] << 16 | u$8.SBOX[o6 >>> 8 & 255] << 8 | u$8.SBOX[255 & o6], o6 ^= f$d[h6 / e8 | 0] << 24) : e8 > 6 && h6 % e8 == 4 && (o6 = u$8.SBOX[o6 >>> 24] << 24 | u$8.SBOX[o6 >>> 16 & 255] << 16 | u$8.SBOX[o6 >>> 8 & 255] << 8 | u$8.SBOX[255 & o6]), n6[h6] = n6[h6 - e8] ^ o6; + } + for (var s6 = [], c6 = 0; c6 < r6; c6++) { + var l6 = r6 - c6, p6 = n6[l6 - (c6 % 4 ? 0 : 4)]; + s6[c6] = c6 < 4 || l6 <= 4 ? p6 : u$8.INV_SUB_MIX[0][u$8.SBOX[p6 >>> 24]] ^ u$8.INV_SUB_MIX[1][u$8.SBOX[p6 >>> 16 & 255]] ^ u$8.INV_SUB_MIX[2][u$8.SBOX[p6 >>> 8 & 255]] ^ u$8.INV_SUB_MIX[3][u$8.SBOX[255 & p6]]; + } + (this || a$b)._nRounds = i6, (this || a$b)._keySchedule = n6, (this || a$b)._invKeySchedule = s6; +}, p$9.prototype.encryptBlockRaw = function(t6) { + return l$9(t6 = s$8(t6), (this || a$b)._keySchedule, u$8.SUB_MIX, u$8.SBOX, (this || a$b)._nRounds); +}, p$9.prototype.encryptBlock = function(t6) { + var e8 = this.encryptBlockRaw(t6), i6 = o$b.allocUnsafe(16); + return i6.writeUInt32BE(e8[0], 0), i6.writeUInt32BE(e8[1], 4), i6.writeUInt32BE(e8[2], 8), i6.writeUInt32BE(e8[3], 12), i6; +}, p$9.prototype.decryptBlock = function(t6) { + var e8 = (t6 = s$8(t6))[1]; + t6[1] = t6[3], t6[3] = e8; + var i6 = l$9(t6, (this || a$b)._invKeySchedule, u$8.INV_SUB_MIX, u$8.INV_SBOX, (this || a$b)._nRounds), r6 = o$b.allocUnsafe(16); + return r6.writeUInt32BE(i6[0], 0), r6.writeUInt32BE(i6[3], 4), r6.writeUInt32BE(i6[2], 8), r6.writeUInt32BE(i6[1], 12), r6; +}, p$9.prototype.scrub = function() { + c$8((this || a$b)._keySchedule), c$8((this || a$b)._invKeySchedule), c$8((this || a$b)._key); +}, h$9.AES = p$9; +var _$7 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var d$8 = u4.Buffer; +var y$5 = d$8.alloc(16, 0); +function B$4(t6) { + var e8 = d$8.allocUnsafe(16); + return e8.writeUInt32BE(t6[0] >>> 0, 0), e8.writeUInt32BE(t6[1] >>> 0, 4), e8.writeUInt32BE(t6[2] >>> 0, 8), e8.writeUInt32BE(t6[3] >>> 0, 12), e8; +} +function g$5(t6) { + (this || _$7).h = t6, (this || _$7).state = d$8.alloc(16, 0), (this || _$7).cache = d$8.allocUnsafe(0); +} +g$5.prototype.ghash = function(t6) { + for (var e8 = -1; ++e8 < t6.length; ) + (this || _$7).state[e8] ^= t6[e8]; + this._multiply(); +}, g$5.prototype._multiply = function() { + for (var t6, e8, i6, r6 = [(t6 = (this || _$7).h).readUInt32BE(0), t6.readUInt32BE(4), t6.readUInt32BE(8), t6.readUInt32BE(12)], n6 = [0, 0, 0, 0], a6 = -1; ++a6 < 128; ) { + for (0 != ((this || _$7).state[~~(a6 / 8)] & 1 << 7 - a6 % 8) && (n6[0] ^= r6[0], n6[1] ^= r6[1], n6[2] ^= r6[2], n6[3] ^= r6[3]), i6 = 0 != (1 & r6[3]), e8 = 3; e8 > 0; e8--) + r6[e8] = r6[e8] >>> 1 | (1 & r6[e8 - 1]) << 31; + r6[0] = r6[0] >>> 1, i6 && (r6[0] = r6[0] ^ 225 << 24); + } + (this || _$7).state = B$4(n6); +}, g$5.prototype.update = function(t6) { + var e8; + for ((this || _$7).cache = d$8.concat([(this || _$7).cache, t6]); (this || _$7).cache.length >= 16; ) + e8 = (this || _$7).cache.slice(0, 16), (this || _$7).cache = (this || _$7).cache.slice(16), this.ghash(e8); +}, g$5.prototype.final = function(t6, e8) { + return (this || _$7).cache.length && this.ghash(d$8.concat([(this || _$7).cache, y$5], 16)), this.ghash(B$4([0, t6, 0, e8])), (this || _$7).state; +}; +var S$4 = g$5; +var v$5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var I$5 = h$9; +var U$4 = u4.Buffer; +var w$7 = f$6; +var m$6 = S$4; +var E$5 = f$b; +var b$6 = t$12; +function X$1(t6, e8, i6, r6) { + w$7.call(this || v$5); + var n6 = U$4.alloc(4, 0); + (this || v$5)._cipher = new I$5.AES(e8); + var a6 = (this || v$5)._cipher.encryptBlock(n6); + (this || v$5)._ghash = new m$6(a6), i6 = function(t7, e9, i7) { + if (12 === e9.length) + return t7._finID = U$4.concat([e9, U$4.from([0, 0, 0, 1])]), U$4.concat([e9, U$4.from([0, 0, 0, 2])]); + var r7 = new m$6(i7), n7 = e9.length, a7 = n7 % 16; + r7.update(e9), a7 && (a7 = 16 - a7, r7.update(U$4.alloc(a7, 0))), r7.update(U$4.alloc(8, 0)); + var h6 = 8 * n7, o6 = U$4.alloc(8); + o6.writeUIntBE(h6, 0, 8), r7.update(o6), t7._finID = r7.state; + var s6 = U$4.from(t7._finID); + return b$6(s6), s6; + }(this || v$5, i6, a6), (this || v$5)._prev = U$4.from(i6), (this || v$5)._cache = U$4.allocUnsafe(0), (this || v$5)._secCache = U$4.allocUnsafe(0), (this || v$5)._decrypt = r6, (this || v$5)._alen = 0, (this || v$5)._len = 0, (this || v$5)._mode = t6, (this || v$5)._authTag = null, (this || v$5)._called = false; +} +t$2(X$1, w$7), X$1.prototype._update = function(t6) { + if (!(this || v$5)._called && (this || v$5)._alen) { + var e8 = 16 - (this || v$5)._alen % 16; + e8 < 16 && (e8 = U$4.alloc(e8, 0), (this || v$5)._ghash.update(e8)); + } + (this || v$5)._called = true; + var i6 = (this || v$5)._mode.encrypt(this || v$5, t6); + return (this || v$5)._decrypt ? (this || v$5)._ghash.update(t6) : (this || v$5)._ghash.update(i6), (this || v$5)._len += t6.length, i6; +}, X$1.prototype._final = function() { + if ((this || v$5)._decrypt && !(this || v$5)._authTag) + throw new Error("Unsupported state or unable to authenticate data"); + var t6 = E$5((this || v$5)._ghash.final(8 * (this || v$5)._alen, 8 * (this || v$5)._len), (this || v$5)._cipher.encryptBlock((this || v$5)._finID)); + if ((this || v$5)._decrypt && function(t7, e8) { + var i6 = 0; + t7.length !== e8.length && i6++; + for (var r6 = Math.min(t7.length, e8.length), n6 = 0; n6 < r6; ++n6) + i6 += t7[n6] ^ e8[n6]; + return i6; + }(t6, (this || v$5)._authTag)) + throw new Error("Unsupported state or unable to authenticate data"); + (this || v$5)._authTag = t6, (this || v$5)._cipher.scrub(); +}, X$1.prototype.getAuthTag = function() { + if ((this || v$5)._decrypt || !U$4.isBuffer((this || v$5)._authTag)) + throw new Error("Attempting to get auth tag in unsupported state"); + return (this || v$5)._authTag; +}, X$1.prototype.setAuthTag = function(t6) { + if (!(this || v$5)._decrypt) + throw new Error("Attempting to set auth tag in unsupported state"); + (this || v$5)._authTag = t6; +}, X$1.prototype.setAAD = function(t6) { + if ((this || v$5)._called) + throw new Error("Attempting to set AAD in unsupported state"); + (this || v$5)._ghash.update(t6), (this || v$5)._alen += t6.length; +}; +var k$6 = X$1; +var T$2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var O$2 = h$9; +var A$4 = u4.Buffer; +var M$3 = f$6; +function N$1(t6, e8, i6, r6) { + M$3.call(this || T$2), (this || T$2)._cipher = new O$2.AES(e8), (this || T$2)._prev = A$4.from(i6), (this || T$2)._cache = A$4.allocUnsafe(0), (this || T$2)._secCache = A$4.allocUnsafe(0), (this || T$2)._decrypt = r6, (this || T$2)._mode = t6; +} +t$2(N$1, M$3), N$1.prototype._update = function(t6) { + return (this || T$2)._mode.encrypt(this || T$2, t6, (this || T$2)._decrypt); +}, N$1.prototype._final = function() { + (this || T$2)._cipher.scrub(); +}; +var V$1 = N$1; +var t$22 = u4.Buffer; +var f$e = u5; +var a$c = function(r6, e8, a6, l6) { + if (t$22.isBuffer(r6) || (r6 = t$22.from(r6, "binary")), e8 && (t$22.isBuffer(e8) || (e8 = t$22.from(e8, "binary")), 8 !== e8.length)) + throw new RangeError("salt should be Buffer with 8 byte length"); + for (var n6 = a6 / 8, o6 = t$22.alloc(n6), i6 = t$22.alloc(l6 || 0), h6 = t$22.alloc(0); n6 > 0 || l6 > 0; ) { + var u6 = new f$e(); + u6.update(h6), u6.update(r6), e8 && u6.update(e8), h6 = u6.digest(); + var g4 = 0; + if (n6 > 0) { + var m5 = o6.length - n6; + g4 = Math.min(n6, h6.length), h6.copy(o6, m5, 0, g4), n6 -= g4; + } + if (g4 < h6.length && l6 > 0) { + var p6 = i6.length - l6, v5 = Math.min(l6, h6.length - g4); + h6.copy(i6, p6, g4, g4 + v5), l6 -= v5; + } + } + return h6.fill(0), { key: o6, iv: i6 }; +}; +var c$9 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var s$9 = {}; +var f$f = k$6; +var p$a = u4.Buffer; +var u$9 = M$2; +var l$a = V$1; +var d$9 = f$6; +var y$6 = h$9; +var m$7 = a$c; +function g$6(t6, e8, r6) { + d$9.call(this || c$9), (this || c$9)._cache = new v$6(), (this || c$9)._last = void 0, (this || c$9)._cipher = new y$6.AES(e8), (this || c$9)._prev = p$a.from(r6), (this || c$9)._mode = t6, (this || c$9)._autopadding = true; +} +function v$6() { + (this || c$9).cache = p$a.allocUnsafe(0); +} +function w$8(t6, e8, r6) { + var i6 = u$9[t6.toLowerCase()]; + if (!i6) + throw new TypeError("invalid suite type"); + if ("string" == typeof r6 && (r6 = p$a.from(r6)), "GCM" !== i6.mode && r6.length !== i6.iv) + throw new TypeError("invalid iv length " + r6.length); + if ("string" == typeof e8 && (e8 = p$a.from(e8)), e8.length !== i6.key / 8) + throw new TypeError("invalid key length " + e8.length); + return "stream" === i6.type ? new l$a(i6.module, e8, r6, true) : "auth" === i6.type ? new f$f(i6.module, e8, r6, true) : new g$6(i6.module, e8, r6); +} +t$2(g$6, d$9), g$6.prototype._update = function(t6) { + var e8, r6; + (this || c$9)._cache.add(t6); + for (var i6 = []; e8 = (this || c$9)._cache.get((this || c$9)._autopadding); ) + r6 = (this || c$9)._mode.decrypt(this || c$9, e8), i6.push(r6); + return p$a.concat(i6); +}, g$6.prototype._final = function() { + var t6 = (this || c$9)._cache.flush(); + if ((this || c$9)._autopadding) + return function(t7) { + var e8 = t7[15]; + if (e8 < 1 || e8 > 16) + throw new Error("unable to decrypt data"); + var r6 = -1; + for (; ++r6 < e8; ) + if (t7[r6 + (16 - e8)] !== e8) + throw new Error("unable to decrypt data"); + if (16 === e8) + return; + return t7.slice(0, 16 - e8); + }((this || c$9)._mode.decrypt(this || c$9, t6)); + if (t6) + throw new Error("data not multiple of block length"); +}, g$6.prototype.setAutoPadding = function(t6) { + return (this || c$9)._autopadding = !!t6, this || c$9; +}, v$6.prototype.add = function(t6) { + (this || c$9).cache = p$a.concat([(this || c$9).cache, t6]); +}, v$6.prototype.get = function(t6) { + var e8; + if (t6) { + if ((this || c$9).cache.length > 16) + return e8 = (this || c$9).cache.slice(0, 16), (this || c$9).cache = (this || c$9).cache.slice(16), e8; + } else if ((this || c$9).cache.length >= 16) + return e8 = (this || c$9).cache.slice(0, 16), (this || c$9).cache = (this || c$9).cache.slice(16), e8; + return null; +}, v$6.prototype.flush = function() { + if ((this || c$9).cache.length) + return (this || c$9).cache; +}, s$9.createDecipher = function(t6, e8) { + var r6 = u$9[t6.toLowerCase()]; + if (!r6) + throw new TypeError("invalid suite type"); + var i6 = m$7(e8, false, r6.key, r6.iv); + return w$8(t6, i6.key, i6.iv); +}, s$9.createDecipheriv = w$8; +var c$a = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var s$a = {}; +var f$g = M$2; +var p$b = k$6; +var l$b = u4.Buffer; +var u$a = V$1; +var d$a = f$6; +var m$8 = h$9; +var y$7 = a$c; +function v$7(t6, e8, r6) { + d$a.call(this || c$a), (this || c$a)._cache = new g$7(), (this || c$a)._cipher = new m$8.AES(e8), (this || c$a)._prev = l$b.from(r6), (this || c$a)._mode = t6, (this || c$a)._autopadding = true; +} +t$2(v$7, d$a), v$7.prototype._update = function(t6) { + var e8, r6; + (this || c$a)._cache.add(t6); + for (var i6 = []; e8 = (this || c$a)._cache.get(); ) + r6 = (this || c$a)._mode.encrypt(this || c$a, e8), i6.push(r6); + return l$b.concat(i6); +}; +var _$8 = l$b.alloc(16, 16); +function g$7() { + (this || c$a).cache = l$b.allocUnsafe(0); +} +function w$9(t6, e8, r6) { + var i6 = f$g[t6.toLowerCase()]; + if (!i6) + throw new TypeError("invalid suite type"); + if ("string" == typeof e8 && (e8 = l$b.from(e8)), e8.length !== i6.key / 8) + throw new TypeError("invalid key length " + e8.length); + if ("string" == typeof r6 && (r6 = l$b.from(r6)), "GCM" !== i6.mode && r6.length !== i6.iv) + throw new TypeError("invalid iv length " + r6.length); + return "stream" === i6.type ? new u$a(i6.module, e8, r6) : "auth" === i6.type ? new p$b(i6.module, e8, r6) : new v$7(i6.module, e8, r6); +} +v$7.prototype._final = function() { + var t6 = (this || c$a)._cache.flush(); + if ((this || c$a)._autopadding) + return t6 = (this || c$a)._mode.encrypt(this || c$a, t6), (this || c$a)._cipher.scrub(), t6; + if (!t6.equals(_$8)) + throw (this || c$a)._cipher.scrub(), new Error("data not multiple of block length"); +}, v$7.prototype.setAutoPadding = function(t6) { + return (this || c$a)._autopadding = !!t6, this || c$a; +}, g$7.prototype.add = function(t6) { + (this || c$a).cache = l$b.concat([(this || c$a).cache, t6]); +}, g$7.prototype.get = function() { + if ((this || c$a).cache.length > 15) { + var t6 = (this || c$a).cache.slice(0, 16); + return (this || c$a).cache = (this || c$a).cache.slice(16), t6; + } + return null; +}, g$7.prototype.flush = function() { + for (var t6 = 16 - (this || c$a).cache.length, e8 = l$b.allocUnsafe(t6), r6 = -1; ++r6 < t6; ) + e8.writeUInt8(t6, r6); + return l$b.concat([(this || c$a).cache, e8]); +}, s$a.createCipheriv = w$9, s$a.createCipher = function(t6, e8) { + var r6 = f$g[t6.toLowerCase()]; + if (!r6) + throw new TypeError("invalid suite type"); + var i6 = y$7(e8, false, r6.key, r6.iv); + return w$9(t6, i6.key, i6.iv); +}; +var t$3 = {}; +var p$c = s$a; +var c$b = s$9; +var o$c = F$2; +t$3.createCipher = t$3.Cipher = p$c.createCipher, t$3.createCipheriv = t$3.Cipheriv = p$c.createCipheriv, t$3.createDecipher = t$3.Decipher = c$b.createDecipher, t$3.createDecipheriv = t$3.Decipheriv = c$b.createDecipheriv, t$3.listCiphers = t$3.getCiphers = function() { + return Object.keys(o$c); +}; +var e$9 = { "des-ecb": { key: 8, iv: 0 } }; +e$9["des-cbc"] = e$9.des = { key: 8, iv: 8 }, e$9["des-ede3-cbc"] = e$9.des3 = { key: 24, iv: 8 }, e$9["des-ede3"] = { key: 24, iv: 0 }, e$9["des-ede-cbc"] = { key: 16, iv: 8 }, e$9["des-ede"] = { key: 16, iv: 0 }; +var p$d = {}; +var n$b = l$7; +var s$b = t$3; +var v$8 = M$2; +var y$8 = e$9; +var a$d = a$c; +function f$h(e8, r6, i6) { + if (e8 = e8.toLowerCase(), v$8[e8]) + return s$b.createCipheriv(e8, r6, i6); + if (y$8[e8]) + return new n$b({ key: r6, iv: i6, mode: e8 }); + throw new TypeError("invalid suite type"); +} +function c$c(e8, r6, i6) { + if (e8 = e8.toLowerCase(), v$8[e8]) + return s$b.createDecipheriv(e8, r6, i6); + if (y$8[e8]) + return new n$b({ key: r6, iv: i6, mode: e8, decrypt: true }); + throw new TypeError("invalid suite type"); +} +p$d.createCipher = p$d.Cipher = function(e8, r6) { + var i6, t6; + if (e8 = e8.toLowerCase(), v$8[e8]) + i6 = v$8[e8].key, t6 = v$8[e8].iv; + else { + if (!y$8[e8]) + throw new TypeError("invalid suite type"); + i6 = 8 * y$8[e8].key, t6 = y$8[e8].iv; + } + var o6 = a$d(r6, false, i6, t6); + return f$h(e8, o6.key, o6.iv); +}, p$d.createCipheriv = p$d.Cipheriv = f$h, p$d.createDecipher = p$d.Decipher = function(e8, r6) { + var i6, t6; + if (e8 = e8.toLowerCase(), v$8[e8]) + i6 = v$8[e8].key, t6 = v$8[e8].iv; + else { + if (!y$8[e8]) + throw new TypeError("invalid suite type"); + i6 = 8 * y$8[e8].key, t6 = y$8[e8].iv; + } + var o6 = a$d(r6, false, i6, t6); + return c$c(e8, o6.key, o6.iv); +}, p$d.createDecipheriv = p$d.Decipheriv = c$c, p$d.listCiphers = p$d.getCiphers = function() { + return Object.keys(y$8).concat(s$b.getCiphers()); +}; +var t$4 = Object.freeze({}); +var i$3 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var r$7 = {}; +var h$a = { exports: r$7 }; +!function(r6, h6) { + function n6(t6, i6) { + if (!t6) + throw new Error(i6 || "Assertion failed"); + } + function e8(t6, i6) { + t6.super_ = i6; + var r7 = function() { + }; + r7.prototype = i6.prototype, t6.prototype = new r7(), t6.prototype.constructor = t6; + } + function o6(t6, r7, h7) { + if (o6.isBN(t6)) + return t6; + (this || i$3).negative = 0, (this || i$3).words = null, (this || i$3).length = 0, (this || i$3).red = null, null !== t6 && ("le" !== r7 && "be" !== r7 || (h7 = r7, r7 = 10), this._init(t6 || 0, r7 || 10, h7 || "be")); + } + var s6; + "object" == typeof r6 ? r6.exports = o6 : h6.BN = o6, o6.BN = o6, o6.wordSize = 26; + try { + s6 = t$4.Buffer; + } catch (t6) { + } + function u6(t6, i6, r7) { + for (var h7 = 0, n7 = Math.min(t6.length, r7), e9 = i6; e9 < n7; e9++) { + var o7 = t6.charCodeAt(e9) - 48; + h7 <<= 4, h7 |= o7 >= 49 && o7 <= 54 ? o7 - 49 + 10 : o7 >= 17 && o7 <= 22 ? o7 - 17 + 10 : 15 & o7; + } + return h7; + } + function a6(t6, i6, r7, h7) { + for (var n7 = 0, e9 = Math.min(t6.length, r7), o7 = i6; o7 < e9; o7++) { + var s7 = t6.charCodeAt(o7) - 48; + n7 *= h7, n7 += s7 >= 49 ? s7 - 49 + 10 : s7 >= 17 ? s7 - 17 + 10 : s7; + } + return n7; + } + o6.isBN = function(t6) { + return t6 instanceof o6 || null !== t6 && "object" == typeof t6 && t6.constructor.wordSize === o6.wordSize && Array.isArray(t6.words); + }, o6.max = function(t6, i6) { + return t6.cmp(i6) > 0 ? t6 : i6; + }, o6.min = function(t6, i6) { + return t6.cmp(i6) < 0 ? t6 : i6; + }, o6.prototype._init = function(t6, r7, h7) { + if ("number" == typeof t6) + return this._initNumber(t6, r7, h7); + if ("object" == typeof t6) + return this._initArray(t6, r7, h7); + "hex" === r7 && (r7 = 16), n6(r7 === (0 | r7) && r7 >= 2 && r7 <= 36); + var e9 = 0; + "-" === (t6 = t6.toString().replace(/\s+/g, ""))[0] && e9++, 16 === r7 ? this._parseHex(t6, e9) : this._parseBase(t6, r7, e9), "-" === t6[0] && ((this || i$3).negative = 1), this.strip(), "le" === h7 && this._initArray(this.toArray(), r7, h7); + }, o6.prototype._initNumber = function(t6, r7, h7) { + t6 < 0 && ((this || i$3).negative = 1, t6 = -t6), t6 < 67108864 ? ((this || i$3).words = [67108863 & t6], (this || i$3).length = 1) : t6 < 4503599627370496 ? ((this || i$3).words = [67108863 & t6, t6 / 67108864 & 67108863], (this || i$3).length = 2) : (n6(t6 < 9007199254740992), (this || i$3).words = [67108863 & t6, t6 / 67108864 & 67108863, 1], (this || i$3).length = 3), "le" === h7 && this._initArray(this.toArray(), r7, h7); + }, o6.prototype._initArray = function(t6, r7, h7) { + if (n6("number" == typeof t6.length), t6.length <= 0) + return (this || i$3).words = [0], (this || i$3).length = 1, this || i$3; + (this || i$3).length = Math.ceil(t6.length / 3), (this || i$3).words = new Array((this || i$3).length); + for (var e9 = 0; e9 < (this || i$3).length; e9++) + (this || i$3).words[e9] = 0; + var o7, s7, u7 = 0; + if ("be" === h7) + for (e9 = t6.length - 1, o7 = 0; e9 >= 0; e9 -= 3) + s7 = t6[e9] | t6[e9 - 1] << 8 | t6[e9 - 2] << 16, (this || i$3).words[o7] |= s7 << u7 & 67108863, (this || i$3).words[o7 + 1] = s7 >>> 26 - u7 & 67108863, (u7 += 24) >= 26 && (u7 -= 26, o7++); + else if ("le" === h7) + for (e9 = 0, o7 = 0; e9 < t6.length; e9 += 3) + s7 = t6[e9] | t6[e9 + 1] << 8 | t6[e9 + 2] << 16, (this || i$3).words[o7] |= s7 << u7 & 67108863, (this || i$3).words[o7 + 1] = s7 >>> 26 - u7 & 67108863, (u7 += 24) >= 26 && (u7 -= 26, o7++); + return this.strip(); + }, o6.prototype._parseHex = function(t6, r7) { + (this || i$3).length = Math.ceil((t6.length - r7) / 6), (this || i$3).words = new Array((this || i$3).length); + for (var h7 = 0; h7 < (this || i$3).length; h7++) + (this || i$3).words[h7] = 0; + var n7, e9, o7 = 0; + for (h7 = t6.length - 6, n7 = 0; h7 >= r7; h7 -= 6) + e9 = u6(t6, h7, h7 + 6), (this || i$3).words[n7] |= e9 << o7 & 67108863, (this || i$3).words[n7 + 1] |= e9 >>> 26 - o7 & 4194303, (o7 += 24) >= 26 && (o7 -= 26, n7++); + h7 + 6 !== r7 && (e9 = u6(t6, r7, h7 + 6), (this || i$3).words[n7] |= e9 << o7 & 67108863, (this || i$3).words[n7 + 1] |= e9 >>> 26 - o7 & 4194303), this.strip(); + }, o6.prototype._parseBase = function(t6, r7, h7) { + (this || i$3).words = [0], (this || i$3).length = 1; + for (var n7 = 0, e9 = 1; e9 <= 67108863; e9 *= r7) + n7++; + n7--, e9 = e9 / r7 | 0; + for (var o7 = t6.length - h7, s7 = o7 % n7, u7 = Math.min(o7, o7 - s7) + h7, l7 = 0, m6 = h7; m6 < u7; m6 += n7) + l7 = a6(t6, m6, m6 + n7, r7), this.imuln(e9), (this || i$3).words[0] + l7 < 67108864 ? (this || i$3).words[0] += l7 : this._iaddn(l7); + if (0 !== s7) { + var f8 = 1; + for (l7 = a6(t6, m6, t6.length, r7), m6 = 0; m6 < s7; m6++) + f8 *= r7; + this.imuln(f8), (this || i$3).words[0] + l7 < 67108864 ? (this || i$3).words[0] += l7 : this._iaddn(l7); + } + }, o6.prototype.copy = function(t6) { + t6.words = new Array((this || i$3).length); + for (var r7 = 0; r7 < (this || i$3).length; r7++) + t6.words[r7] = (this || i$3).words[r7]; + t6.length = (this || i$3).length, t6.negative = (this || i$3).negative, t6.red = (this || i$3).red; + }, o6.prototype.clone = function() { + var t6 = new o6(null); + return this.copy(t6), t6; + }, o6.prototype._expand = function(t6) { + for (; (this || i$3).length < t6; ) + (this || i$3).words[(this || i$3).length++] = 0; + return this || i$3; + }, o6.prototype.strip = function() { + for (; (this || i$3).length > 1 && 0 === (this || i$3).words[(this || i$3).length - 1]; ) + (this || i$3).length--; + return this._normSign(); + }, o6.prototype._normSign = function() { + return 1 === (this || i$3).length && 0 === (this || i$3).words[0] && ((this || i$3).negative = 0), this || i$3; + }, o6.prototype.inspect = function() { + return ((this || i$3).red ? ""; + }; + var l6 = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"], m5 = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], f7 = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + function d5(t6, i6, r7) { + r7.negative = i6.negative ^ t6.negative; + var h7 = t6.length + i6.length | 0; + r7.length = h7, h7 = h7 - 1 | 0; + var n7 = 0 | t6.words[0], e9 = 0 | i6.words[0], o7 = n7 * e9, s7 = 67108863 & o7, u7 = o7 / 67108864 | 0; + r7.words[0] = s7; + for (var a7 = 1; a7 < h7; a7++) { + for (var l7 = u7 >>> 26, m6 = 67108863 & u7, f8 = Math.min(a7, i6.length - 1), d6 = Math.max(0, a7 - t6.length + 1); d6 <= f8; d6++) { + var p7 = a7 - d6 | 0; + l7 += (o7 = (n7 = 0 | t6.words[p7]) * (e9 = 0 | i6.words[d6]) + m6) / 67108864 | 0, m6 = 67108863 & o7; + } + r7.words[a7] = 0 | m6, u7 = 0 | l7; + } + return 0 !== u7 ? r7.words[a7] = 0 | u7 : r7.length--, r7.strip(); + } + o6.prototype.toString = function(t6, r7) { + var h7; + if (r7 = 0 | r7 || 1, 16 === (t6 = t6 || 10) || "hex" === t6) { + h7 = ""; + for (var e9 = 0, o7 = 0, s7 = 0; s7 < (this || i$3).length; s7++) { + var u7 = (this || i$3).words[s7], a7 = (16777215 & (u7 << e9 | o7)).toString(16); + h7 = 0 !== (o7 = u7 >>> 24 - e9 & 16777215) || s7 !== (this || i$3).length - 1 ? l6[6 - a7.length] + a7 + h7 : a7 + h7, (e9 += 2) >= 26 && (e9 -= 26, s7--); + } + for (0 !== o7 && (h7 = o7.toString(16) + h7); h7.length % r7 != 0; ) + h7 = "0" + h7; + return 0 !== (this || i$3).negative && (h7 = "-" + h7), h7; + } + if (t6 === (0 | t6) && t6 >= 2 && t6 <= 36) { + var d6 = m5[t6], p7 = f7[t6]; + h7 = ""; + var M5 = this.clone(); + for (M5.negative = 0; !M5.isZero(); ) { + var v6 = M5.modn(p7).toString(t6); + h7 = (M5 = M5.idivn(p7)).isZero() ? v6 + h7 : l6[d6 - v6.length] + v6 + h7; + } + for (this.isZero() && (h7 = "0" + h7); h7.length % r7 != 0; ) + h7 = "0" + h7; + return 0 !== (this || i$3).negative && (h7 = "-" + h7), h7; + } + n6(false, "Base should be between 2 and 36"); + }, o6.prototype.toNumber = function() { + var t6 = (this || i$3).words[0]; + return 2 === (this || i$3).length ? t6 += 67108864 * (this || i$3).words[1] : 3 === (this || i$3).length && 1 === (this || i$3).words[2] ? t6 += 4503599627370496 + 67108864 * (this || i$3).words[1] : (this || i$3).length > 2 && n6(false, "Number can only safely store up to 53 bits"), 0 !== (this || i$3).negative ? -t6 : t6; + }, o6.prototype.toJSON = function() { + return this.toString(16); + }, o6.prototype.toBuffer = function(t6, i6) { + return n6(void 0 !== s6), this.toArrayLike(s6, t6, i6); + }, o6.prototype.toArray = function(t6, i6) { + return this.toArrayLike(Array, t6, i6); + }, o6.prototype.toArrayLike = function(t6, i6, r7) { + var h7 = this.byteLength(), e9 = r7 || Math.max(1, h7); + n6(h7 <= e9, "byte array longer than desired length"), n6(e9 > 0, "Requested array length <= 0"), this.strip(); + var o7, s7, u7 = "le" === i6, a7 = new t6(e9), l7 = this.clone(); + if (u7) { + for (s7 = 0; !l7.isZero(); s7++) + o7 = l7.andln(255), l7.iushrn(8), a7[s7] = o7; + for (; s7 < e9; s7++) + a7[s7] = 0; + } else { + for (s7 = 0; s7 < e9 - h7; s7++) + a7[s7] = 0; + for (s7 = 0; !l7.isZero(); s7++) + o7 = l7.andln(255), l7.iushrn(8), a7[e9 - s7 - 1] = o7; + } + return a7; + }, Math.clz32 ? o6.prototype._countBits = function(t6) { + return 32 - Math.clz32(t6); + } : o6.prototype._countBits = function(t6) { + var i6 = t6, r7 = 0; + return i6 >= 4096 && (r7 += 13, i6 >>>= 13), i6 >= 64 && (r7 += 7, i6 >>>= 7), i6 >= 8 && (r7 += 4, i6 >>>= 4), i6 >= 2 && (r7 += 2, i6 >>>= 2), r7 + i6; + }, o6.prototype._zeroBits = function(t6) { + if (0 === t6) + return 26; + var i6 = t6, r7 = 0; + return 0 == (8191 & i6) && (r7 += 13, i6 >>>= 13), 0 == (127 & i6) && (r7 += 7, i6 >>>= 7), 0 == (15 & i6) && (r7 += 4, i6 >>>= 4), 0 == (3 & i6) && (r7 += 2, i6 >>>= 2), 0 == (1 & i6) && r7++, r7; + }, o6.prototype.bitLength = function() { + var t6 = (this || i$3).words[(this || i$3).length - 1], r7 = this._countBits(t6); + return 26 * ((this || i$3).length - 1) + r7; + }, o6.prototype.zeroBits = function() { + if (this.isZero()) + return 0; + for (var t6 = 0, r7 = 0; r7 < (this || i$3).length; r7++) { + var h7 = this._zeroBits((this || i$3).words[r7]); + if (t6 += h7, 26 !== h7) + break; + } + return t6; + }, o6.prototype.byteLength = function() { + return Math.ceil(this.bitLength() / 8); + }, o6.prototype.toTwos = function(t6) { + return 0 !== (this || i$3).negative ? this.abs().inotn(t6).iaddn(1) : this.clone(); + }, o6.prototype.fromTwos = function(t6) { + return this.testn(t6 - 1) ? this.notn(t6).iaddn(1).ineg() : this.clone(); + }, o6.prototype.isNeg = function() { + return 0 !== (this || i$3).negative; + }, o6.prototype.neg = function() { + return this.clone().ineg(); + }, o6.prototype.ineg = function() { + return this.isZero() || ((this || i$3).negative ^= 1), this || i$3; + }, o6.prototype.iuor = function(t6) { + for (; (this || i$3).length < t6.length; ) + (this || i$3).words[(this || i$3).length++] = 0; + for (var r7 = 0; r7 < t6.length; r7++) + (this || i$3).words[r7] = (this || i$3).words[r7] | t6.words[r7]; + return this.strip(); + }, o6.prototype.ior = function(t6) { + return n6(0 == ((this || i$3).negative | t6.negative)), this.iuor(t6); + }, o6.prototype.or = function(t6) { + return (this || i$3).length > t6.length ? this.clone().ior(t6) : t6.clone().ior(this || i$3); + }, o6.prototype.uor = function(t6) { + return (this || i$3).length > t6.length ? this.clone().iuor(t6) : t6.clone().iuor(this || i$3); + }, o6.prototype.iuand = function(t6) { + var r7; + r7 = (this || i$3).length > t6.length ? t6 : this || i$3; + for (var h7 = 0; h7 < r7.length; h7++) + (this || i$3).words[h7] = (this || i$3).words[h7] & t6.words[h7]; + return (this || i$3).length = r7.length, this.strip(); + }, o6.prototype.iand = function(t6) { + return n6(0 == ((this || i$3).negative | t6.negative)), this.iuand(t6); + }, o6.prototype.and = function(t6) { + return (this || i$3).length > t6.length ? this.clone().iand(t6) : t6.clone().iand(this || i$3); + }, o6.prototype.uand = function(t6) { + return (this || i$3).length > t6.length ? this.clone().iuand(t6) : t6.clone().iuand(this || i$3); + }, o6.prototype.iuxor = function(t6) { + var r7, h7; + (this || i$3).length > t6.length ? (r7 = this || i$3, h7 = t6) : (r7 = t6, h7 = this || i$3); + for (var n7 = 0; n7 < h7.length; n7++) + (this || i$3).words[n7] = r7.words[n7] ^ h7.words[n7]; + if ((this || i$3) !== r7) + for (; n7 < r7.length; n7++) + (this || i$3).words[n7] = r7.words[n7]; + return (this || i$3).length = r7.length, this.strip(); + }, o6.prototype.ixor = function(t6) { + return n6(0 == ((this || i$3).negative | t6.negative)), this.iuxor(t6); + }, o6.prototype.xor = function(t6) { + return (this || i$3).length > t6.length ? this.clone().ixor(t6) : t6.clone().ixor(this || i$3); + }, o6.prototype.uxor = function(t6) { + return (this || i$3).length > t6.length ? this.clone().iuxor(t6) : t6.clone().iuxor(this || i$3); + }, o6.prototype.inotn = function(t6) { + n6("number" == typeof t6 && t6 >= 0); + var r7 = 0 | Math.ceil(t6 / 26), h7 = t6 % 26; + this._expand(r7), h7 > 0 && r7--; + for (var e9 = 0; e9 < r7; e9++) + (this || i$3).words[e9] = 67108863 & ~(this || i$3).words[e9]; + return h7 > 0 && ((this || i$3).words[e9] = ~(this || i$3).words[e9] & 67108863 >> 26 - h7), this.strip(); + }, o6.prototype.notn = function(t6) { + return this.clone().inotn(t6); + }, o6.prototype.setn = function(t6, r7) { + n6("number" == typeof t6 && t6 >= 0); + var h7 = t6 / 26 | 0, e9 = t6 % 26; + return this._expand(h7 + 1), (this || i$3).words[h7] = r7 ? (this || i$3).words[h7] | 1 << e9 : (this || i$3).words[h7] & ~(1 << e9), this.strip(); + }, o6.prototype.iadd = function(t6) { + var r7, h7, n7; + if (0 !== (this || i$3).negative && 0 === t6.negative) + return (this || i$3).negative = 0, r7 = this.isub(t6), (this || i$3).negative ^= 1, this._normSign(); + if (0 === (this || i$3).negative && 0 !== t6.negative) + return t6.negative = 0, r7 = this.isub(t6), t6.negative = 1, r7._normSign(); + (this || i$3).length > t6.length ? (h7 = this || i$3, n7 = t6) : (h7 = t6, n7 = this || i$3); + for (var e9 = 0, o7 = 0; o7 < n7.length; o7++) + r7 = (0 | h7.words[o7]) + (0 | n7.words[o7]) + e9, (this || i$3).words[o7] = 67108863 & r7, e9 = r7 >>> 26; + for (; 0 !== e9 && o7 < h7.length; o7++) + r7 = (0 | h7.words[o7]) + e9, (this || i$3).words[o7] = 67108863 & r7, e9 = r7 >>> 26; + if ((this || i$3).length = h7.length, 0 !== e9) + (this || i$3).words[(this || i$3).length] = e9, (this || i$3).length++; + else if (h7 !== (this || i$3)) + for (; o7 < h7.length; o7++) + (this || i$3).words[o7] = h7.words[o7]; + return this || i$3; + }, o6.prototype.add = function(t6) { + var r7; + return 0 !== t6.negative && 0 === (this || i$3).negative ? (t6.negative = 0, r7 = this.sub(t6), t6.negative ^= 1, r7) : 0 === t6.negative && 0 !== (this || i$3).negative ? ((this || i$3).negative = 0, r7 = t6.sub(this || i$3), (this || i$3).negative = 1, r7) : (this || i$3).length > t6.length ? this.clone().iadd(t6) : t6.clone().iadd(this || i$3); + }, o6.prototype.isub = function(t6) { + if (0 !== t6.negative) { + t6.negative = 0; + var r7 = this.iadd(t6); + return t6.negative = 1, r7._normSign(); + } + if (0 !== (this || i$3).negative) + return (this || i$3).negative = 0, this.iadd(t6), (this || i$3).negative = 1, this._normSign(); + var h7, n7, e9 = this.cmp(t6); + if (0 === e9) + return (this || i$3).negative = 0, (this || i$3).length = 1, (this || i$3).words[0] = 0, this || i$3; + e9 > 0 ? (h7 = this || i$3, n7 = t6) : (h7 = t6, n7 = this || i$3); + for (var o7 = 0, s7 = 0; s7 < n7.length; s7++) + o7 = (r7 = (0 | h7.words[s7]) - (0 | n7.words[s7]) + o7) >> 26, (this || i$3).words[s7] = 67108863 & r7; + for (; 0 !== o7 && s7 < h7.length; s7++) + o7 = (r7 = (0 | h7.words[s7]) + o7) >> 26, (this || i$3).words[s7] = 67108863 & r7; + if (0 === o7 && s7 < h7.length && h7 !== (this || i$3)) + for (; s7 < h7.length; s7++) + (this || i$3).words[s7] = h7.words[s7]; + return (this || i$3).length = Math.max((this || i$3).length, s7), h7 !== (this || i$3) && ((this || i$3).negative = 1), this.strip(); + }, o6.prototype.sub = function(t6) { + return this.clone().isub(t6); + }; + var p6 = function(t6, i6, r7) { + var h7, n7, e9, o7 = t6.words, s7 = i6.words, u7 = r7.words, a7 = 0, l7 = 0 | o7[0], m6 = 8191 & l7, f8 = l7 >>> 13, d6 = 0 | o7[1], p7 = 8191 & d6, M5 = d6 >>> 13, v6 = 0 | o7[2], g5 = 8191 & v6, c7 = v6 >>> 13, w5 = 0 | o7[3], y6 = 8191 & w5, b5 = w5 >>> 13, _5 = 0 | o7[4], k5 = 8191 & _5, A5 = _5 >>> 13, x4 = 0 | o7[5], S4 = 8191 & x4, Z3 = x4 >>> 13, R4 = 0 | o7[6], q3 = 8191 & R4, B4 = R4 >>> 13, N4 = 0 | o7[7], L4 = 8191 & N4, I4 = N4 >>> 13, T5 = 0 | o7[8], z4 = 8191 & T5, E4 = T5 >>> 13, O4 = 0 | o7[9], j4 = 8191 & O4, K3 = O4 >>> 13, P4 = 0 | s7[0], F4 = 8191 & P4, C4 = P4 >>> 13, D4 = 0 | s7[1], H3 = 8191 & D4, J3 = D4 >>> 13, U4 = 0 | s7[2], G3 = 8191 & U4, Q3 = U4 >>> 13, V3 = 0 | s7[3], W3 = 8191 & V3, X3 = V3 >>> 13, Y4 = 0 | s7[4], $3 = 8191 & Y4, tt2 = Y4 >>> 13, it2 = 0 | s7[5], rt = 8191 & it2, ht2 = it2 >>> 13, nt2 = 0 | s7[6], et2 = 8191 & nt2, ot = nt2 >>> 13, st2 = 0 | s7[7], ut = 8191 & st2, at = st2 >>> 13, lt = 0 | s7[8], mt = 8191 & lt, ft = lt >>> 13, dt = 0 | s7[9], pt = 8191 & dt, Mt = dt >>> 13; + r7.negative = t6.negative ^ i6.negative, r7.length = 19; + var vt = (a7 + (h7 = Math.imul(m6, F4)) | 0) + ((8191 & (n7 = (n7 = Math.imul(m6, C4)) + Math.imul(f8, F4) | 0)) << 13) | 0; + a7 = ((e9 = Math.imul(f8, C4)) + (n7 >>> 13) | 0) + (vt >>> 26) | 0, vt &= 67108863, h7 = Math.imul(p7, F4), n7 = (n7 = Math.imul(p7, C4)) + Math.imul(M5, F4) | 0, e9 = Math.imul(M5, C4); + var gt = (a7 + (h7 = h7 + Math.imul(m6, H3) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, J3) | 0) + Math.imul(f8, H3) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, J3) | 0) + (n7 >>> 13) | 0) + (gt >>> 26) | 0, gt &= 67108863, h7 = Math.imul(g5, F4), n7 = (n7 = Math.imul(g5, C4)) + Math.imul(c7, F4) | 0, e9 = Math.imul(c7, C4), h7 = h7 + Math.imul(p7, H3) | 0, n7 = (n7 = n7 + Math.imul(p7, J3) | 0) + Math.imul(M5, H3) | 0, e9 = e9 + Math.imul(M5, J3) | 0; + var ct = (a7 + (h7 = h7 + Math.imul(m6, G3) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, Q3) | 0) + Math.imul(f8, G3) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, Q3) | 0) + (n7 >>> 13) | 0) + (ct >>> 26) | 0, ct &= 67108863, h7 = Math.imul(y6, F4), n7 = (n7 = Math.imul(y6, C4)) + Math.imul(b5, F4) | 0, e9 = Math.imul(b5, C4), h7 = h7 + Math.imul(g5, H3) | 0, n7 = (n7 = n7 + Math.imul(g5, J3) | 0) + Math.imul(c7, H3) | 0, e9 = e9 + Math.imul(c7, J3) | 0, h7 = h7 + Math.imul(p7, G3) | 0, n7 = (n7 = n7 + Math.imul(p7, Q3) | 0) + Math.imul(M5, G3) | 0, e9 = e9 + Math.imul(M5, Q3) | 0; + var wt = (a7 + (h7 = h7 + Math.imul(m6, W3) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, X3) | 0) + Math.imul(f8, W3) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, X3) | 0) + (n7 >>> 13) | 0) + (wt >>> 26) | 0, wt &= 67108863, h7 = Math.imul(k5, F4), n7 = (n7 = Math.imul(k5, C4)) + Math.imul(A5, F4) | 0, e9 = Math.imul(A5, C4), h7 = h7 + Math.imul(y6, H3) | 0, n7 = (n7 = n7 + Math.imul(y6, J3) | 0) + Math.imul(b5, H3) | 0, e9 = e9 + Math.imul(b5, J3) | 0, h7 = h7 + Math.imul(g5, G3) | 0, n7 = (n7 = n7 + Math.imul(g5, Q3) | 0) + Math.imul(c7, G3) | 0, e9 = e9 + Math.imul(c7, Q3) | 0, h7 = h7 + Math.imul(p7, W3) | 0, n7 = (n7 = n7 + Math.imul(p7, X3) | 0) + Math.imul(M5, W3) | 0, e9 = e9 + Math.imul(M5, X3) | 0; + var yt = (a7 + (h7 = h7 + Math.imul(m6, $3) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, tt2) | 0) + Math.imul(f8, $3) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, tt2) | 0) + (n7 >>> 13) | 0) + (yt >>> 26) | 0, yt &= 67108863, h7 = Math.imul(S4, F4), n7 = (n7 = Math.imul(S4, C4)) + Math.imul(Z3, F4) | 0, e9 = Math.imul(Z3, C4), h7 = h7 + Math.imul(k5, H3) | 0, n7 = (n7 = n7 + Math.imul(k5, J3) | 0) + Math.imul(A5, H3) | 0, e9 = e9 + Math.imul(A5, J3) | 0, h7 = h7 + Math.imul(y6, G3) | 0, n7 = (n7 = n7 + Math.imul(y6, Q3) | 0) + Math.imul(b5, G3) | 0, e9 = e9 + Math.imul(b5, Q3) | 0, h7 = h7 + Math.imul(g5, W3) | 0, n7 = (n7 = n7 + Math.imul(g5, X3) | 0) + Math.imul(c7, W3) | 0, e9 = e9 + Math.imul(c7, X3) | 0, h7 = h7 + Math.imul(p7, $3) | 0, n7 = (n7 = n7 + Math.imul(p7, tt2) | 0) + Math.imul(M5, $3) | 0, e9 = e9 + Math.imul(M5, tt2) | 0; + var bt = (a7 + (h7 = h7 + Math.imul(m6, rt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, ht2) | 0) + Math.imul(f8, rt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, ht2) | 0) + (n7 >>> 13) | 0) + (bt >>> 26) | 0, bt &= 67108863, h7 = Math.imul(q3, F4), n7 = (n7 = Math.imul(q3, C4)) + Math.imul(B4, F4) | 0, e9 = Math.imul(B4, C4), h7 = h7 + Math.imul(S4, H3) | 0, n7 = (n7 = n7 + Math.imul(S4, J3) | 0) + Math.imul(Z3, H3) | 0, e9 = e9 + Math.imul(Z3, J3) | 0, h7 = h7 + Math.imul(k5, G3) | 0, n7 = (n7 = n7 + Math.imul(k5, Q3) | 0) + Math.imul(A5, G3) | 0, e9 = e9 + Math.imul(A5, Q3) | 0, h7 = h7 + Math.imul(y6, W3) | 0, n7 = (n7 = n7 + Math.imul(y6, X3) | 0) + Math.imul(b5, W3) | 0, e9 = e9 + Math.imul(b5, X3) | 0, h7 = h7 + Math.imul(g5, $3) | 0, n7 = (n7 = n7 + Math.imul(g5, tt2) | 0) + Math.imul(c7, $3) | 0, e9 = e9 + Math.imul(c7, tt2) | 0, h7 = h7 + Math.imul(p7, rt) | 0, n7 = (n7 = n7 + Math.imul(p7, ht2) | 0) + Math.imul(M5, rt) | 0, e9 = e9 + Math.imul(M5, ht2) | 0; + var _t2 = (a7 + (h7 = h7 + Math.imul(m6, et2) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, ot) | 0) + Math.imul(f8, et2) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, ot) | 0) + (n7 >>> 13) | 0) + (_t2 >>> 26) | 0, _t2 &= 67108863, h7 = Math.imul(L4, F4), n7 = (n7 = Math.imul(L4, C4)) + Math.imul(I4, F4) | 0, e9 = Math.imul(I4, C4), h7 = h7 + Math.imul(q3, H3) | 0, n7 = (n7 = n7 + Math.imul(q3, J3) | 0) + Math.imul(B4, H3) | 0, e9 = e9 + Math.imul(B4, J3) | 0, h7 = h7 + Math.imul(S4, G3) | 0, n7 = (n7 = n7 + Math.imul(S4, Q3) | 0) + Math.imul(Z3, G3) | 0, e9 = e9 + Math.imul(Z3, Q3) | 0, h7 = h7 + Math.imul(k5, W3) | 0, n7 = (n7 = n7 + Math.imul(k5, X3) | 0) + Math.imul(A5, W3) | 0, e9 = e9 + Math.imul(A5, X3) | 0, h7 = h7 + Math.imul(y6, $3) | 0, n7 = (n7 = n7 + Math.imul(y6, tt2) | 0) + Math.imul(b5, $3) | 0, e9 = e9 + Math.imul(b5, tt2) | 0, h7 = h7 + Math.imul(g5, rt) | 0, n7 = (n7 = n7 + Math.imul(g5, ht2) | 0) + Math.imul(c7, rt) | 0, e9 = e9 + Math.imul(c7, ht2) | 0, h7 = h7 + Math.imul(p7, et2) | 0, n7 = (n7 = n7 + Math.imul(p7, ot) | 0) + Math.imul(M5, et2) | 0, e9 = e9 + Math.imul(M5, ot) | 0; + var kt = (a7 + (h7 = h7 + Math.imul(m6, ut) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, at) | 0) + Math.imul(f8, ut) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, at) | 0) + (n7 >>> 13) | 0) + (kt >>> 26) | 0, kt &= 67108863, h7 = Math.imul(z4, F4), n7 = (n7 = Math.imul(z4, C4)) + Math.imul(E4, F4) | 0, e9 = Math.imul(E4, C4), h7 = h7 + Math.imul(L4, H3) | 0, n7 = (n7 = n7 + Math.imul(L4, J3) | 0) + Math.imul(I4, H3) | 0, e9 = e9 + Math.imul(I4, J3) | 0, h7 = h7 + Math.imul(q3, G3) | 0, n7 = (n7 = n7 + Math.imul(q3, Q3) | 0) + Math.imul(B4, G3) | 0, e9 = e9 + Math.imul(B4, Q3) | 0, h7 = h7 + Math.imul(S4, W3) | 0, n7 = (n7 = n7 + Math.imul(S4, X3) | 0) + Math.imul(Z3, W3) | 0, e9 = e9 + Math.imul(Z3, X3) | 0, h7 = h7 + Math.imul(k5, $3) | 0, n7 = (n7 = n7 + Math.imul(k5, tt2) | 0) + Math.imul(A5, $3) | 0, e9 = e9 + Math.imul(A5, tt2) | 0, h7 = h7 + Math.imul(y6, rt) | 0, n7 = (n7 = n7 + Math.imul(y6, ht2) | 0) + Math.imul(b5, rt) | 0, e9 = e9 + Math.imul(b5, ht2) | 0, h7 = h7 + Math.imul(g5, et2) | 0, n7 = (n7 = n7 + Math.imul(g5, ot) | 0) + Math.imul(c7, et2) | 0, e9 = e9 + Math.imul(c7, ot) | 0, h7 = h7 + Math.imul(p7, ut) | 0, n7 = (n7 = n7 + Math.imul(p7, at) | 0) + Math.imul(M5, ut) | 0, e9 = e9 + Math.imul(M5, at) | 0; + var At = (a7 + (h7 = h7 + Math.imul(m6, mt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, ft) | 0) + Math.imul(f8, mt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, ft) | 0) + (n7 >>> 13) | 0) + (At >>> 26) | 0, At &= 67108863, h7 = Math.imul(j4, F4), n7 = (n7 = Math.imul(j4, C4)) + Math.imul(K3, F4) | 0, e9 = Math.imul(K3, C4), h7 = h7 + Math.imul(z4, H3) | 0, n7 = (n7 = n7 + Math.imul(z4, J3) | 0) + Math.imul(E4, H3) | 0, e9 = e9 + Math.imul(E4, J3) | 0, h7 = h7 + Math.imul(L4, G3) | 0, n7 = (n7 = n7 + Math.imul(L4, Q3) | 0) + Math.imul(I4, G3) | 0, e9 = e9 + Math.imul(I4, Q3) | 0, h7 = h7 + Math.imul(q3, W3) | 0, n7 = (n7 = n7 + Math.imul(q3, X3) | 0) + Math.imul(B4, W3) | 0, e9 = e9 + Math.imul(B4, X3) | 0, h7 = h7 + Math.imul(S4, $3) | 0, n7 = (n7 = n7 + Math.imul(S4, tt2) | 0) + Math.imul(Z3, $3) | 0, e9 = e9 + Math.imul(Z3, tt2) | 0, h7 = h7 + Math.imul(k5, rt) | 0, n7 = (n7 = n7 + Math.imul(k5, ht2) | 0) + Math.imul(A5, rt) | 0, e9 = e9 + Math.imul(A5, ht2) | 0, h7 = h7 + Math.imul(y6, et2) | 0, n7 = (n7 = n7 + Math.imul(y6, ot) | 0) + Math.imul(b5, et2) | 0, e9 = e9 + Math.imul(b5, ot) | 0, h7 = h7 + Math.imul(g5, ut) | 0, n7 = (n7 = n7 + Math.imul(g5, at) | 0) + Math.imul(c7, ut) | 0, e9 = e9 + Math.imul(c7, at) | 0, h7 = h7 + Math.imul(p7, mt) | 0, n7 = (n7 = n7 + Math.imul(p7, ft) | 0) + Math.imul(M5, mt) | 0, e9 = e9 + Math.imul(M5, ft) | 0; + var xt = (a7 + (h7 = h7 + Math.imul(m6, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(m6, Mt) | 0) + Math.imul(f8, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(f8, Mt) | 0) + (n7 >>> 13) | 0) + (xt >>> 26) | 0, xt &= 67108863, h7 = Math.imul(j4, H3), n7 = (n7 = Math.imul(j4, J3)) + Math.imul(K3, H3) | 0, e9 = Math.imul(K3, J3), h7 = h7 + Math.imul(z4, G3) | 0, n7 = (n7 = n7 + Math.imul(z4, Q3) | 0) + Math.imul(E4, G3) | 0, e9 = e9 + Math.imul(E4, Q3) | 0, h7 = h7 + Math.imul(L4, W3) | 0, n7 = (n7 = n7 + Math.imul(L4, X3) | 0) + Math.imul(I4, W3) | 0, e9 = e9 + Math.imul(I4, X3) | 0, h7 = h7 + Math.imul(q3, $3) | 0, n7 = (n7 = n7 + Math.imul(q3, tt2) | 0) + Math.imul(B4, $3) | 0, e9 = e9 + Math.imul(B4, tt2) | 0, h7 = h7 + Math.imul(S4, rt) | 0, n7 = (n7 = n7 + Math.imul(S4, ht2) | 0) + Math.imul(Z3, rt) | 0, e9 = e9 + Math.imul(Z3, ht2) | 0, h7 = h7 + Math.imul(k5, et2) | 0, n7 = (n7 = n7 + Math.imul(k5, ot) | 0) + Math.imul(A5, et2) | 0, e9 = e9 + Math.imul(A5, ot) | 0, h7 = h7 + Math.imul(y6, ut) | 0, n7 = (n7 = n7 + Math.imul(y6, at) | 0) + Math.imul(b5, ut) | 0, e9 = e9 + Math.imul(b5, at) | 0, h7 = h7 + Math.imul(g5, mt) | 0, n7 = (n7 = n7 + Math.imul(g5, ft) | 0) + Math.imul(c7, mt) | 0, e9 = e9 + Math.imul(c7, ft) | 0; + var St = (a7 + (h7 = h7 + Math.imul(p7, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(p7, Mt) | 0) + Math.imul(M5, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(M5, Mt) | 0) + (n7 >>> 13) | 0) + (St >>> 26) | 0, St &= 67108863, h7 = Math.imul(j4, G3), n7 = (n7 = Math.imul(j4, Q3)) + Math.imul(K3, G3) | 0, e9 = Math.imul(K3, Q3), h7 = h7 + Math.imul(z4, W3) | 0, n7 = (n7 = n7 + Math.imul(z4, X3) | 0) + Math.imul(E4, W3) | 0, e9 = e9 + Math.imul(E4, X3) | 0, h7 = h7 + Math.imul(L4, $3) | 0, n7 = (n7 = n7 + Math.imul(L4, tt2) | 0) + Math.imul(I4, $3) | 0, e9 = e9 + Math.imul(I4, tt2) | 0, h7 = h7 + Math.imul(q3, rt) | 0, n7 = (n7 = n7 + Math.imul(q3, ht2) | 0) + Math.imul(B4, rt) | 0, e9 = e9 + Math.imul(B4, ht2) | 0, h7 = h7 + Math.imul(S4, et2) | 0, n7 = (n7 = n7 + Math.imul(S4, ot) | 0) + Math.imul(Z3, et2) | 0, e9 = e9 + Math.imul(Z3, ot) | 0, h7 = h7 + Math.imul(k5, ut) | 0, n7 = (n7 = n7 + Math.imul(k5, at) | 0) + Math.imul(A5, ut) | 0, e9 = e9 + Math.imul(A5, at) | 0, h7 = h7 + Math.imul(y6, mt) | 0, n7 = (n7 = n7 + Math.imul(y6, ft) | 0) + Math.imul(b5, mt) | 0, e9 = e9 + Math.imul(b5, ft) | 0; + var Zt = (a7 + (h7 = h7 + Math.imul(g5, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(g5, Mt) | 0) + Math.imul(c7, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(c7, Mt) | 0) + (n7 >>> 13) | 0) + (Zt >>> 26) | 0, Zt &= 67108863, h7 = Math.imul(j4, W3), n7 = (n7 = Math.imul(j4, X3)) + Math.imul(K3, W3) | 0, e9 = Math.imul(K3, X3), h7 = h7 + Math.imul(z4, $3) | 0, n7 = (n7 = n7 + Math.imul(z4, tt2) | 0) + Math.imul(E4, $3) | 0, e9 = e9 + Math.imul(E4, tt2) | 0, h7 = h7 + Math.imul(L4, rt) | 0, n7 = (n7 = n7 + Math.imul(L4, ht2) | 0) + Math.imul(I4, rt) | 0, e9 = e9 + Math.imul(I4, ht2) | 0, h7 = h7 + Math.imul(q3, et2) | 0, n7 = (n7 = n7 + Math.imul(q3, ot) | 0) + Math.imul(B4, et2) | 0, e9 = e9 + Math.imul(B4, ot) | 0, h7 = h7 + Math.imul(S4, ut) | 0, n7 = (n7 = n7 + Math.imul(S4, at) | 0) + Math.imul(Z3, ut) | 0, e9 = e9 + Math.imul(Z3, at) | 0, h7 = h7 + Math.imul(k5, mt) | 0, n7 = (n7 = n7 + Math.imul(k5, ft) | 0) + Math.imul(A5, mt) | 0, e9 = e9 + Math.imul(A5, ft) | 0; + var Rt = (a7 + (h7 = h7 + Math.imul(y6, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(y6, Mt) | 0) + Math.imul(b5, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(b5, Mt) | 0) + (n7 >>> 13) | 0) + (Rt >>> 26) | 0, Rt &= 67108863, h7 = Math.imul(j4, $3), n7 = (n7 = Math.imul(j4, tt2)) + Math.imul(K3, $3) | 0, e9 = Math.imul(K3, tt2), h7 = h7 + Math.imul(z4, rt) | 0, n7 = (n7 = n7 + Math.imul(z4, ht2) | 0) + Math.imul(E4, rt) | 0, e9 = e9 + Math.imul(E4, ht2) | 0, h7 = h7 + Math.imul(L4, et2) | 0, n7 = (n7 = n7 + Math.imul(L4, ot) | 0) + Math.imul(I4, et2) | 0, e9 = e9 + Math.imul(I4, ot) | 0, h7 = h7 + Math.imul(q3, ut) | 0, n7 = (n7 = n7 + Math.imul(q3, at) | 0) + Math.imul(B4, ut) | 0, e9 = e9 + Math.imul(B4, at) | 0, h7 = h7 + Math.imul(S4, mt) | 0, n7 = (n7 = n7 + Math.imul(S4, ft) | 0) + Math.imul(Z3, mt) | 0, e9 = e9 + Math.imul(Z3, ft) | 0; + var qt = (a7 + (h7 = h7 + Math.imul(k5, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(k5, Mt) | 0) + Math.imul(A5, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(A5, Mt) | 0) + (n7 >>> 13) | 0) + (qt >>> 26) | 0, qt &= 67108863, h7 = Math.imul(j4, rt), n7 = (n7 = Math.imul(j4, ht2)) + Math.imul(K3, rt) | 0, e9 = Math.imul(K3, ht2), h7 = h7 + Math.imul(z4, et2) | 0, n7 = (n7 = n7 + Math.imul(z4, ot) | 0) + Math.imul(E4, et2) | 0, e9 = e9 + Math.imul(E4, ot) | 0, h7 = h7 + Math.imul(L4, ut) | 0, n7 = (n7 = n7 + Math.imul(L4, at) | 0) + Math.imul(I4, ut) | 0, e9 = e9 + Math.imul(I4, at) | 0, h7 = h7 + Math.imul(q3, mt) | 0, n7 = (n7 = n7 + Math.imul(q3, ft) | 0) + Math.imul(B4, mt) | 0, e9 = e9 + Math.imul(B4, ft) | 0; + var Bt = (a7 + (h7 = h7 + Math.imul(S4, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(S4, Mt) | 0) + Math.imul(Z3, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(Z3, Mt) | 0) + (n7 >>> 13) | 0) + (Bt >>> 26) | 0, Bt &= 67108863, h7 = Math.imul(j4, et2), n7 = (n7 = Math.imul(j4, ot)) + Math.imul(K3, et2) | 0, e9 = Math.imul(K3, ot), h7 = h7 + Math.imul(z4, ut) | 0, n7 = (n7 = n7 + Math.imul(z4, at) | 0) + Math.imul(E4, ut) | 0, e9 = e9 + Math.imul(E4, at) | 0, h7 = h7 + Math.imul(L4, mt) | 0, n7 = (n7 = n7 + Math.imul(L4, ft) | 0) + Math.imul(I4, mt) | 0, e9 = e9 + Math.imul(I4, ft) | 0; + var Nt = (a7 + (h7 = h7 + Math.imul(q3, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(q3, Mt) | 0) + Math.imul(B4, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(B4, Mt) | 0) + (n7 >>> 13) | 0) + (Nt >>> 26) | 0, Nt &= 67108863, h7 = Math.imul(j4, ut), n7 = (n7 = Math.imul(j4, at)) + Math.imul(K3, ut) | 0, e9 = Math.imul(K3, at), h7 = h7 + Math.imul(z4, mt) | 0, n7 = (n7 = n7 + Math.imul(z4, ft) | 0) + Math.imul(E4, mt) | 0, e9 = e9 + Math.imul(E4, ft) | 0; + var Lt = (a7 + (h7 = h7 + Math.imul(L4, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(L4, Mt) | 0) + Math.imul(I4, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(I4, Mt) | 0) + (n7 >>> 13) | 0) + (Lt >>> 26) | 0, Lt &= 67108863, h7 = Math.imul(j4, mt), n7 = (n7 = Math.imul(j4, ft)) + Math.imul(K3, mt) | 0, e9 = Math.imul(K3, ft); + var It = (a7 + (h7 = h7 + Math.imul(z4, pt) | 0) | 0) + ((8191 & (n7 = (n7 = n7 + Math.imul(z4, Mt) | 0) + Math.imul(E4, pt) | 0)) << 13) | 0; + a7 = ((e9 = e9 + Math.imul(E4, Mt) | 0) + (n7 >>> 13) | 0) + (It >>> 26) | 0, It &= 67108863; + var Tt = (a7 + (h7 = Math.imul(j4, pt)) | 0) + ((8191 & (n7 = (n7 = Math.imul(j4, Mt)) + Math.imul(K3, pt) | 0)) << 13) | 0; + return a7 = ((e9 = Math.imul(K3, Mt)) + (n7 >>> 13) | 0) + (Tt >>> 26) | 0, Tt &= 67108863, u7[0] = vt, u7[1] = gt, u7[2] = ct, u7[3] = wt, u7[4] = yt, u7[5] = bt, u7[6] = _t2, u7[7] = kt, u7[8] = At, u7[9] = xt, u7[10] = St, u7[11] = Zt, u7[12] = Rt, u7[13] = qt, u7[14] = Bt, u7[15] = Nt, u7[16] = Lt, u7[17] = It, u7[18] = Tt, 0 !== a7 && (u7[19] = a7, r7.length++), r7; + }; + function M4(t6, i6, r7) { + return new v5().mulp(t6, i6, r7); + } + function v5(t6, r7) { + (this || i$3).x = t6, (this || i$3).y = r7; + } + Math.imul || (p6 = d5), o6.prototype.mulTo = function(t6, r7) { + var h7 = (this || i$3).length + t6.length; + return 10 === (this || i$3).length && 10 === t6.length ? p6(this || i$3, t6, r7) : h7 < 63 ? d5(this || i$3, t6, r7) : h7 < 1024 ? function(t7, i6, r8) { + r8.negative = i6.negative ^ t7.negative, r8.length = t7.length + i6.length; + for (var h8 = 0, n7 = 0, e9 = 0; e9 < r8.length - 1; e9++) { + var o7 = n7; + n7 = 0; + for (var s7 = 67108863 & h8, u7 = Math.min(e9, i6.length - 1), a7 = Math.max(0, e9 - t7.length + 1); a7 <= u7; a7++) { + var l7 = e9 - a7, m6 = (0 | t7.words[l7]) * (0 | i6.words[a7]), f8 = 67108863 & m6; + s7 = 67108863 & (f8 = f8 + s7 | 0), n7 += (o7 = (o7 = o7 + (m6 / 67108864 | 0) | 0) + (f8 >>> 26) | 0) >>> 26, o7 &= 67108863; + } + r8.words[e9] = s7, h8 = o7, o7 = n7; + } + return 0 !== h8 ? r8.words[e9] = h8 : r8.length--, r8.strip(); + }(this || i$3, t6, r7) : M4(this || i$3, t6, r7); + }, v5.prototype.makeRBT = function(t6) { + for (var i6 = new Array(t6), r7 = o6.prototype._countBits(t6) - 1, h7 = 0; h7 < t6; h7++) + i6[h7] = this.revBin(h7, r7, t6); + return i6; + }, v5.prototype.revBin = function(t6, i6, r7) { + if (0 === t6 || t6 === r7 - 1) + return t6; + for (var h7 = 0, n7 = 0; n7 < i6; n7++) + h7 |= (1 & t6) << i6 - n7 - 1, t6 >>= 1; + return h7; + }, v5.prototype.permute = function(t6, i6, r7, h7, n7, e9) { + for (var o7 = 0; o7 < e9; o7++) + h7[o7] = i6[t6[o7]], n7[o7] = r7[t6[o7]]; + }, v5.prototype.transform = function(t6, i6, r7, h7, n7, e9) { + this.permute(e9, t6, i6, r7, h7, n7); + for (var o7 = 1; o7 < n7; o7 <<= 1) + for (var s7 = o7 << 1, u7 = Math.cos(2 * Math.PI / s7), a7 = Math.sin(2 * Math.PI / s7), l7 = 0; l7 < n7; l7 += s7) + for (var m6 = u7, f8 = a7, d6 = 0; d6 < o7; d6++) { + var p7 = r7[l7 + d6], M5 = h7[l7 + d6], v6 = r7[l7 + d6 + o7], g5 = h7[l7 + d6 + o7], c7 = m6 * v6 - f8 * g5; + g5 = m6 * g5 + f8 * v6, v6 = c7, r7[l7 + d6] = p7 + v6, h7[l7 + d6] = M5 + g5, r7[l7 + d6 + o7] = p7 - v6, h7[l7 + d6 + o7] = M5 - g5, d6 !== s7 && (c7 = u7 * m6 - a7 * f8, f8 = u7 * f8 + a7 * m6, m6 = c7); + } + }, v5.prototype.guessLen13b = function(t6, i6) { + var r7 = 1 | Math.max(i6, t6), h7 = 1 & r7, n7 = 0; + for (r7 = r7 / 2 | 0; r7; r7 >>>= 1) + n7++; + return 1 << n7 + 1 + h7; + }, v5.prototype.conjugate = function(t6, i6, r7) { + if (!(r7 <= 1)) + for (var h7 = 0; h7 < r7 / 2; h7++) { + var n7 = t6[h7]; + t6[h7] = t6[r7 - h7 - 1], t6[r7 - h7 - 1] = n7, n7 = i6[h7], i6[h7] = -i6[r7 - h7 - 1], i6[r7 - h7 - 1] = -n7; + } + }, v5.prototype.normalize13b = function(t6, i6) { + for (var r7 = 0, h7 = 0; h7 < i6 / 2; h7++) { + var n7 = 8192 * Math.round(t6[2 * h7 + 1] / i6) + Math.round(t6[2 * h7] / i6) + r7; + t6[h7] = 67108863 & n7, r7 = n7 < 67108864 ? 0 : n7 / 67108864 | 0; + } + return t6; + }, v5.prototype.convert13b = function(t6, i6, r7, h7) { + for (var e9 = 0, o7 = 0; o7 < i6; o7++) + e9 += 0 | t6[o7], r7[2 * o7] = 8191 & e9, e9 >>>= 13, r7[2 * o7 + 1] = 8191 & e9, e9 >>>= 13; + for (o7 = 2 * i6; o7 < h7; ++o7) + r7[o7] = 0; + n6(0 === e9), n6(0 == (-8192 & e9)); + }, v5.prototype.stub = function(t6) { + for (var i6 = new Array(t6), r7 = 0; r7 < t6; r7++) + i6[r7] = 0; + return i6; + }, v5.prototype.mulp = function(t6, i6, r7) { + var h7 = 2 * this.guessLen13b(t6.length, i6.length), n7 = this.makeRBT(h7), e9 = this.stub(h7), o7 = new Array(h7), s7 = new Array(h7), u7 = new Array(h7), a7 = new Array(h7), l7 = new Array(h7), m6 = new Array(h7), f8 = r7.words; + f8.length = h7, this.convert13b(t6.words, t6.length, o7, h7), this.convert13b(i6.words, i6.length, a7, h7), this.transform(o7, e9, s7, u7, h7, n7), this.transform(a7, e9, l7, m6, h7, n7); + for (var d6 = 0; d6 < h7; d6++) { + var p7 = s7[d6] * l7[d6] - u7[d6] * m6[d6]; + u7[d6] = s7[d6] * m6[d6] + u7[d6] * l7[d6], s7[d6] = p7; + } + return this.conjugate(s7, u7, h7), this.transform(s7, u7, f8, e9, h7, n7), this.conjugate(f8, e9, h7), this.normalize13b(f8, h7), r7.negative = t6.negative ^ i6.negative, r7.length = t6.length + i6.length, r7.strip(); + }, o6.prototype.mul = function(t6) { + var r7 = new o6(null); + return r7.words = new Array((this || i$3).length + t6.length), this.mulTo(t6, r7); + }, o6.prototype.mulf = function(t6) { + var r7 = new o6(null); + return r7.words = new Array((this || i$3).length + t6.length), M4(this || i$3, t6, r7); + }, o6.prototype.imul = function(t6) { + return this.clone().mulTo(t6, this || i$3); + }, o6.prototype.imuln = function(t6) { + n6("number" == typeof t6), n6(t6 < 67108864); + for (var r7 = 0, h7 = 0; h7 < (this || i$3).length; h7++) { + var e9 = (0 | (this || i$3).words[h7]) * t6, o7 = (67108863 & e9) + (67108863 & r7); + r7 >>= 26, r7 += e9 / 67108864 | 0, r7 += o7 >>> 26, (this || i$3).words[h7] = 67108863 & o7; + } + return 0 !== r7 && ((this || i$3).words[h7] = r7, (this || i$3).length++), this || i$3; + }, o6.prototype.muln = function(t6) { + return this.clone().imuln(t6); + }, o6.prototype.sqr = function() { + return this.mul(this || i$3); + }, o6.prototype.isqr = function() { + return this.imul(this.clone()); + }, o6.prototype.pow = function(t6) { + var r7 = function(t7) { + for (var i6 = new Array(t7.bitLength()), r8 = 0; r8 < i6.length; r8++) { + var h8 = r8 / 26 | 0, n8 = r8 % 26; + i6[r8] = (t7.words[h8] & 1 << n8) >>> n8; + } + return i6; + }(t6); + if (0 === r7.length) + return new o6(1); + for (var h7 = this || i$3, n7 = 0; n7 < r7.length && 0 === r7[n7]; n7++, h7 = h7.sqr()) + ; + if (++n7 < r7.length) + for (var e9 = h7.sqr(); n7 < r7.length; n7++, e9 = e9.sqr()) + 0 !== r7[n7] && (h7 = h7.mul(e9)); + return h7; + }, o6.prototype.iushln = function(t6) { + n6("number" == typeof t6 && t6 >= 0); + var r7, h7 = t6 % 26, e9 = (t6 - h7) / 26, o7 = 67108863 >>> 26 - h7 << 26 - h7; + if (0 !== h7) { + var s7 = 0; + for (r7 = 0; r7 < (this || i$3).length; r7++) { + var u7 = (this || i$3).words[r7] & o7, a7 = (0 | (this || i$3).words[r7]) - u7 << h7; + (this || i$3).words[r7] = a7 | s7, s7 = u7 >>> 26 - h7; + } + s7 && ((this || i$3).words[r7] = s7, (this || i$3).length++); + } + if (0 !== e9) { + for (r7 = (this || i$3).length - 1; r7 >= 0; r7--) + (this || i$3).words[r7 + e9] = (this || i$3).words[r7]; + for (r7 = 0; r7 < e9; r7++) + (this || i$3).words[r7] = 0; + (this || i$3).length += e9; + } + return this.strip(); + }, o6.prototype.ishln = function(t6) { + return n6(0 === (this || i$3).negative), this.iushln(t6); + }, o6.prototype.iushrn = function(t6, r7, h7) { + var e9; + n6("number" == typeof t6 && t6 >= 0), e9 = r7 ? (r7 - r7 % 26) / 26 : 0; + var o7 = t6 % 26, s7 = Math.min((t6 - o7) / 26, (this || i$3).length), u7 = 67108863 ^ 67108863 >>> o7 << o7, a7 = h7; + if (e9 -= s7, e9 = Math.max(0, e9), a7) { + for (var l7 = 0; l7 < s7; l7++) + a7.words[l7] = (this || i$3).words[l7]; + a7.length = s7; + } + if (0 === s7) + ; + else if ((this || i$3).length > s7) + for ((this || i$3).length -= s7, l7 = 0; l7 < (this || i$3).length; l7++) + (this || i$3).words[l7] = (this || i$3).words[l7 + s7]; + else + (this || i$3).words[0] = 0, (this || i$3).length = 1; + var m6 = 0; + for (l7 = (this || i$3).length - 1; l7 >= 0 && (0 !== m6 || l7 >= e9); l7--) { + var f8 = 0 | (this || i$3).words[l7]; + (this || i$3).words[l7] = m6 << 26 - o7 | f8 >>> o7, m6 = f8 & u7; + } + return a7 && 0 !== m6 && (a7.words[a7.length++] = m6), 0 === (this || i$3).length && ((this || i$3).words[0] = 0, (this || i$3).length = 1), this.strip(); + }, o6.prototype.ishrn = function(t6, r7, h7) { + return n6(0 === (this || i$3).negative), this.iushrn(t6, r7, h7); + }, o6.prototype.shln = function(t6) { + return this.clone().ishln(t6); + }, o6.prototype.ushln = function(t6) { + return this.clone().iushln(t6); + }, o6.prototype.shrn = function(t6) { + return this.clone().ishrn(t6); + }, o6.prototype.ushrn = function(t6) { + return this.clone().iushrn(t6); + }, o6.prototype.testn = function(t6) { + n6("number" == typeof t6 && t6 >= 0); + var r7 = t6 % 26, h7 = (t6 - r7) / 26, e9 = 1 << r7; + return !((this || i$3).length <= h7) && !!((this || i$3).words[h7] & e9); + }, o6.prototype.imaskn = function(t6) { + n6("number" == typeof t6 && t6 >= 0); + var r7 = t6 % 26, h7 = (t6 - r7) / 26; + if (n6(0 === (this || i$3).negative, "imaskn works only with positive numbers"), (this || i$3).length <= h7) + return this || i$3; + if (0 !== r7 && h7++, (this || i$3).length = Math.min(h7, (this || i$3).length), 0 !== r7) { + var e9 = 67108863 ^ 67108863 >>> r7 << r7; + (this || i$3).words[(this || i$3).length - 1] &= e9; + } + return this.strip(); + }, o6.prototype.maskn = function(t6) { + return this.clone().imaskn(t6); + }, o6.prototype.iaddn = function(t6) { + return n6("number" == typeof t6), n6(t6 < 67108864), t6 < 0 ? this.isubn(-t6) : 0 !== (this || i$3).negative ? 1 === (this || i$3).length && (0 | (this || i$3).words[0]) < t6 ? ((this || i$3).words[0] = t6 - (0 | (this || i$3).words[0]), (this || i$3).negative = 0, this || i$3) : ((this || i$3).negative = 0, this.isubn(t6), (this || i$3).negative = 1, this || i$3) : this._iaddn(t6); + }, o6.prototype._iaddn = function(t6) { + (this || i$3).words[0] += t6; + for (var r7 = 0; r7 < (this || i$3).length && (this || i$3).words[r7] >= 67108864; r7++) + (this || i$3).words[r7] -= 67108864, r7 === (this || i$3).length - 1 ? (this || i$3).words[r7 + 1] = 1 : (this || i$3).words[r7 + 1]++; + return (this || i$3).length = Math.max((this || i$3).length, r7 + 1), this || i$3; + }, o6.prototype.isubn = function(t6) { + if (n6("number" == typeof t6), n6(t6 < 67108864), t6 < 0) + return this.iaddn(-t6); + if (0 !== (this || i$3).negative) + return (this || i$3).negative = 0, this.iaddn(t6), (this || i$3).negative = 1, this || i$3; + if ((this || i$3).words[0] -= t6, 1 === (this || i$3).length && (this || i$3).words[0] < 0) + (this || i$3).words[0] = -(this || i$3).words[0], (this || i$3).negative = 1; + else + for (var r7 = 0; r7 < (this || i$3).length && (this || i$3).words[r7] < 0; r7++) + (this || i$3).words[r7] += 67108864, (this || i$3).words[r7 + 1] -= 1; + return this.strip(); + }, o6.prototype.addn = function(t6) { + return this.clone().iaddn(t6); + }, o6.prototype.subn = function(t6) { + return this.clone().isubn(t6); + }, o6.prototype.iabs = function() { + return (this || i$3).negative = 0, this || i$3; + }, o6.prototype.abs = function() { + return this.clone().iabs(); + }, o6.prototype._ishlnsubmul = function(t6, r7, h7) { + var e9, o7, s7 = t6.length + h7; + this._expand(s7); + var u7 = 0; + for (e9 = 0; e9 < t6.length; e9++) { + o7 = (0 | (this || i$3).words[e9 + h7]) + u7; + var a7 = (0 | t6.words[e9]) * r7; + u7 = ((o7 -= 67108863 & a7) >> 26) - (a7 / 67108864 | 0), (this || i$3).words[e9 + h7] = 67108863 & o7; + } + for (; e9 < (this || i$3).length - h7; e9++) + u7 = (o7 = (0 | (this || i$3).words[e9 + h7]) + u7) >> 26, (this || i$3).words[e9 + h7] = 67108863 & o7; + if (0 === u7) + return this.strip(); + for (n6(-1 === u7), u7 = 0, e9 = 0; e9 < (this || i$3).length; e9++) + u7 = (o7 = -(0 | (this || i$3).words[e9]) + u7) >> 26, (this || i$3).words[e9] = 67108863 & o7; + return (this || i$3).negative = 1, this.strip(); + }, o6.prototype._wordDiv = function(t6, r7) { + var h7 = ((this || i$3).length, t6.length), n7 = this.clone(), e9 = t6, s7 = 0 | e9.words[e9.length - 1]; + 0 !== (h7 = 26 - this._countBits(s7)) && (e9 = e9.ushln(h7), n7.iushln(h7), s7 = 0 | e9.words[e9.length - 1]); + var u7, a7 = n7.length - e9.length; + if ("mod" !== r7) { + (u7 = new o6(null)).length = a7 + 1, u7.words = new Array(u7.length); + for (var l7 = 0; l7 < u7.length; l7++) + u7.words[l7] = 0; + } + var m6 = n7.clone()._ishlnsubmul(e9, 1, a7); + 0 === m6.negative && (n7 = m6, u7 && (u7.words[a7] = 1)); + for (var f8 = a7 - 1; f8 >= 0; f8--) { + var d6 = 67108864 * (0 | n7.words[e9.length + f8]) + (0 | n7.words[e9.length + f8 - 1]); + for (d6 = Math.min(d6 / s7 | 0, 67108863), n7._ishlnsubmul(e9, d6, f8); 0 !== n7.negative; ) + d6--, n7.negative = 0, n7._ishlnsubmul(e9, 1, f8), n7.isZero() || (n7.negative ^= 1); + u7 && (u7.words[f8] = d6); + } + return u7 && u7.strip(), n7.strip(), "div" !== r7 && 0 !== h7 && n7.iushrn(h7), { div: u7 || null, mod: n7 }; + }, o6.prototype.divmod = function(t6, r7, h7) { + return n6(!t6.isZero()), this.isZero() ? { div: new o6(0), mod: new o6(0) } : 0 !== (this || i$3).negative && 0 === t6.negative ? (u7 = this.neg().divmod(t6, r7), "mod" !== r7 && (e9 = u7.div.neg()), "div" !== r7 && (s7 = u7.mod.neg(), h7 && 0 !== s7.negative && s7.iadd(t6)), { div: e9, mod: s7 }) : 0 === (this || i$3).negative && 0 !== t6.negative ? (u7 = this.divmod(t6.neg(), r7), "mod" !== r7 && (e9 = u7.div.neg()), { div: e9, mod: u7.mod }) : 0 != ((this || i$3).negative & t6.negative) ? (u7 = this.neg().divmod(t6.neg(), r7), "div" !== r7 && (s7 = u7.mod.neg(), h7 && 0 !== s7.negative && s7.isub(t6)), { div: u7.div, mod: s7 }) : t6.length > (this || i$3).length || this.cmp(t6) < 0 ? { div: new o6(0), mod: this || i$3 } : 1 === t6.length ? "div" === r7 ? { div: this.divn(t6.words[0]), mod: null } : "mod" === r7 ? { div: null, mod: new o6(this.modn(t6.words[0])) } : { div: this.divn(t6.words[0]), mod: new o6(this.modn(t6.words[0])) } : this._wordDiv(t6, r7); + var e9, s7, u7; + }, o6.prototype.div = function(t6) { + return this.divmod(t6, "div", false).div; + }, o6.prototype.mod = function(t6) { + return this.divmod(t6, "mod", false).mod; + }, o6.prototype.umod = function(t6) { + return this.divmod(t6, "mod", true).mod; + }, o6.prototype.divRound = function(t6) { + var i6 = this.divmod(t6); + if (i6.mod.isZero()) + return i6.div; + var r7 = 0 !== i6.div.negative ? i6.mod.isub(t6) : i6.mod, h7 = t6.ushrn(1), n7 = t6.andln(1), e9 = r7.cmp(h7); + return e9 < 0 || 1 === n7 && 0 === e9 ? i6.div : 0 !== i6.div.negative ? i6.div.isubn(1) : i6.div.iaddn(1); + }, o6.prototype.modn = function(t6) { + n6(t6 <= 67108863); + for (var r7 = (1 << 26) % t6, h7 = 0, e9 = (this || i$3).length - 1; e9 >= 0; e9--) + h7 = (r7 * h7 + (0 | (this || i$3).words[e9])) % t6; + return h7; + }, o6.prototype.idivn = function(t6) { + n6(t6 <= 67108863); + for (var r7 = 0, h7 = (this || i$3).length - 1; h7 >= 0; h7--) { + var e9 = (0 | (this || i$3).words[h7]) + 67108864 * r7; + (this || i$3).words[h7] = e9 / t6 | 0, r7 = e9 % t6; + } + return this.strip(); + }, o6.prototype.divn = function(t6) { + return this.clone().idivn(t6); + }, o6.prototype.egcd = function(t6) { + n6(0 === t6.negative), n6(!t6.isZero()); + var r7 = this || i$3, h7 = t6.clone(); + r7 = 0 !== r7.negative ? r7.umod(t6) : r7.clone(); + for (var e9 = new o6(1), s7 = new o6(0), u7 = new o6(0), a7 = new o6(1), l7 = 0; r7.isEven() && h7.isEven(); ) + r7.iushrn(1), h7.iushrn(1), ++l7; + for (var m6 = h7.clone(), f8 = r7.clone(); !r7.isZero(); ) { + for (var d6 = 0, p7 = 1; 0 == (r7.words[0] & p7) && d6 < 26; ++d6, p7 <<= 1) + ; + if (d6 > 0) + for (r7.iushrn(d6); d6-- > 0; ) + (e9.isOdd() || s7.isOdd()) && (e9.iadd(m6), s7.isub(f8)), e9.iushrn(1), s7.iushrn(1); + for (var M5 = 0, v6 = 1; 0 == (h7.words[0] & v6) && M5 < 26; ++M5, v6 <<= 1) + ; + if (M5 > 0) + for (h7.iushrn(M5); M5-- > 0; ) + (u7.isOdd() || a7.isOdd()) && (u7.iadd(m6), a7.isub(f8)), u7.iushrn(1), a7.iushrn(1); + r7.cmp(h7) >= 0 ? (r7.isub(h7), e9.isub(u7), s7.isub(a7)) : (h7.isub(r7), u7.isub(e9), a7.isub(s7)); + } + return { a: u7, b: a7, gcd: h7.iushln(l7) }; + }, o6.prototype._invmp = function(t6) { + n6(0 === t6.negative), n6(!t6.isZero()); + var r7 = this || i$3, h7 = t6.clone(); + r7 = 0 !== r7.negative ? r7.umod(t6) : r7.clone(); + for (var e9, s7 = new o6(1), u7 = new o6(0), a7 = h7.clone(); r7.cmpn(1) > 0 && h7.cmpn(1) > 0; ) { + for (var l7 = 0, m6 = 1; 0 == (r7.words[0] & m6) && l7 < 26; ++l7, m6 <<= 1) + ; + if (l7 > 0) + for (r7.iushrn(l7); l7-- > 0; ) + s7.isOdd() && s7.iadd(a7), s7.iushrn(1); + for (var f8 = 0, d6 = 1; 0 == (h7.words[0] & d6) && f8 < 26; ++f8, d6 <<= 1) + ; + if (f8 > 0) + for (h7.iushrn(f8); f8-- > 0; ) + u7.isOdd() && u7.iadd(a7), u7.iushrn(1); + r7.cmp(h7) >= 0 ? (r7.isub(h7), s7.isub(u7)) : (h7.isub(r7), u7.isub(s7)); + } + return (e9 = 0 === r7.cmpn(1) ? s7 : u7).cmpn(0) < 0 && e9.iadd(t6), e9; + }, o6.prototype.gcd = function(t6) { + if (this.isZero()) + return t6.abs(); + if (t6.isZero()) + return this.abs(); + var i6 = this.clone(), r7 = t6.clone(); + i6.negative = 0, r7.negative = 0; + for (var h7 = 0; i6.isEven() && r7.isEven(); h7++) + i6.iushrn(1), r7.iushrn(1); + for (; ; ) { + for (; i6.isEven(); ) + i6.iushrn(1); + for (; r7.isEven(); ) + r7.iushrn(1); + var n7 = i6.cmp(r7); + if (n7 < 0) { + var e9 = i6; + i6 = r7, r7 = e9; + } else if (0 === n7 || 0 === r7.cmpn(1)) + break; + i6.isub(r7); + } + return r7.iushln(h7); + }, o6.prototype.invm = function(t6) { + return this.egcd(t6).a.umod(t6); + }, o6.prototype.isEven = function() { + return 0 == (1 & (this || i$3).words[0]); + }, o6.prototype.isOdd = function() { + return 1 == (1 & (this || i$3).words[0]); + }, o6.prototype.andln = function(t6) { + return (this || i$3).words[0] & t6; + }, o6.prototype.bincn = function(t6) { + n6("number" == typeof t6); + var r7 = t6 % 26, h7 = (t6 - r7) / 26, e9 = 1 << r7; + if ((this || i$3).length <= h7) + return this._expand(h7 + 1), (this || i$3).words[h7] |= e9, this || i$3; + for (var o7 = e9, s7 = h7; 0 !== o7 && s7 < (this || i$3).length; s7++) { + var u7 = 0 | (this || i$3).words[s7]; + o7 = (u7 += o7) >>> 26, u7 &= 67108863, (this || i$3).words[s7] = u7; + } + return 0 !== o7 && ((this || i$3).words[s7] = o7, (this || i$3).length++), this || i$3; + }, o6.prototype.isZero = function() { + return 1 === (this || i$3).length && 0 === (this || i$3).words[0]; + }, o6.prototype.cmpn = function(t6) { + var r7, h7 = t6 < 0; + if (0 !== (this || i$3).negative && !h7) + return -1; + if (0 === (this || i$3).negative && h7) + return 1; + if (this.strip(), (this || i$3).length > 1) + r7 = 1; + else { + h7 && (t6 = -t6), n6(t6 <= 67108863, "Number is too big"); + var e9 = 0 | (this || i$3).words[0]; + r7 = e9 === t6 ? 0 : e9 < t6 ? -1 : 1; + } + return 0 !== (this || i$3).negative ? 0 | -r7 : r7; + }, o6.prototype.cmp = function(t6) { + if (0 !== (this || i$3).negative && 0 === t6.negative) + return -1; + if (0 === (this || i$3).negative && 0 !== t6.negative) + return 1; + var r7 = this.ucmp(t6); + return 0 !== (this || i$3).negative ? 0 | -r7 : r7; + }, o6.prototype.ucmp = function(t6) { + if ((this || i$3).length > t6.length) + return 1; + if ((this || i$3).length < t6.length) + return -1; + for (var r7 = 0, h7 = (this || i$3).length - 1; h7 >= 0; h7--) { + var n7 = 0 | (this || i$3).words[h7], e9 = 0 | t6.words[h7]; + if (n7 !== e9) { + n7 < e9 ? r7 = -1 : n7 > e9 && (r7 = 1); + break; + } + } + return r7; + }, o6.prototype.gtn = function(t6) { + return 1 === this.cmpn(t6); + }, o6.prototype.gt = function(t6) { + return 1 === this.cmp(t6); + }, o6.prototype.gten = function(t6) { + return this.cmpn(t6) >= 0; + }, o6.prototype.gte = function(t6) { + return this.cmp(t6) >= 0; + }, o6.prototype.ltn = function(t6) { + return -1 === this.cmpn(t6); + }, o6.prototype.lt = function(t6) { + return -1 === this.cmp(t6); + }, o6.prototype.lten = function(t6) { + return this.cmpn(t6) <= 0; + }, o6.prototype.lte = function(t6) { + return this.cmp(t6) <= 0; + }, o6.prototype.eqn = function(t6) { + return 0 === this.cmpn(t6); + }, o6.prototype.eq = function(t6) { + return 0 === this.cmp(t6); + }, o6.red = function(t6) { + return new k4(t6); + }, o6.prototype.toRed = function(t6) { + return n6(!(this || i$3).red, "Already a number in reduction context"), n6(0 === (this || i$3).negative, "red works only with positives"), t6.convertTo(this || i$3)._forceRed(t6); + }, o6.prototype.fromRed = function() { + return n6((this || i$3).red, "fromRed works only with numbers in reduction context"), (this || i$3).red.convertFrom(this || i$3); + }, o6.prototype._forceRed = function(t6) { + return (this || i$3).red = t6, this || i$3; + }, o6.prototype.forceRed = function(t6) { + return n6(!(this || i$3).red, "Already a number in reduction context"), this._forceRed(t6); + }, o6.prototype.redAdd = function(t6) { + return n6((this || i$3).red, "redAdd works only with red numbers"), (this || i$3).red.add(this || i$3, t6); + }, o6.prototype.redIAdd = function(t6) { + return n6((this || i$3).red, "redIAdd works only with red numbers"), (this || i$3).red.iadd(this || i$3, t6); + }, o6.prototype.redSub = function(t6) { + return n6((this || i$3).red, "redSub works only with red numbers"), (this || i$3).red.sub(this || i$3, t6); + }, o6.prototype.redISub = function(t6) { + return n6((this || i$3).red, "redISub works only with red numbers"), (this || i$3).red.isub(this || i$3, t6); + }, o6.prototype.redShl = function(t6) { + return n6((this || i$3).red, "redShl works only with red numbers"), (this || i$3).red.shl(this || i$3, t6); + }, o6.prototype.redMul = function(t6) { + return n6((this || i$3).red, "redMul works only with red numbers"), (this || i$3).red._verify2(this || i$3, t6), (this || i$3).red.mul(this || i$3, t6); + }, o6.prototype.redIMul = function(t6) { + return n6((this || i$3).red, "redMul works only with red numbers"), (this || i$3).red._verify2(this || i$3, t6), (this || i$3).red.imul(this || i$3, t6); + }, o6.prototype.redSqr = function() { + return n6((this || i$3).red, "redSqr works only with red numbers"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.sqr(this || i$3); + }, o6.prototype.redISqr = function() { + return n6((this || i$3).red, "redISqr works only with red numbers"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.isqr(this || i$3); + }, o6.prototype.redSqrt = function() { + return n6((this || i$3).red, "redSqrt works only with red numbers"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.sqrt(this || i$3); + }, o6.prototype.redInvm = function() { + return n6((this || i$3).red, "redInvm works only with red numbers"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.invm(this || i$3); + }, o6.prototype.redNeg = function() { + return n6((this || i$3).red, "redNeg works only with red numbers"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.neg(this || i$3); + }, o6.prototype.redPow = function(t6) { + return n6((this || i$3).red && !t6.red, "redPow(normalNum)"), (this || i$3).red._verify1(this || i$3), (this || i$3).red.pow(this || i$3, t6); + }; + var g4 = { k256: null, p224: null, p192: null, p25519: null }; + function c6(t6, r7) { + (this || i$3).name = t6, (this || i$3).p = new o6(r7, 16), (this || i$3).n = (this || i$3).p.bitLength(), (this || i$3).k = new o6(1).iushln((this || i$3).n).isub((this || i$3).p), (this || i$3).tmp = this._tmp(); + } + function w4() { + c6.call(this || i$3, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + function y5() { + c6.call(this || i$3, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + function b4() { + c6.call(this || i$3, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + function _4() { + c6.call(this || i$3, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + function k4(t6) { + if ("string" == typeof t6) { + var r7 = o6._prime(t6); + (this || i$3).m = r7.p, (this || i$3).prime = r7; + } else + n6(t6.gtn(1), "modulus must be greater than 1"), (this || i$3).m = t6, (this || i$3).prime = null; + } + function A4(t6) { + k4.call(this || i$3, t6), (this || i$3).shift = (this || i$3).m.bitLength(), (this || i$3).shift % 26 != 0 && ((this || i$3).shift += 26 - (this || i$3).shift % 26), (this || i$3).r = new o6(1).iushln((this || i$3).shift), (this || i$3).r2 = this.imod((this || i$3).r.sqr()), (this || i$3).rinv = (this || i$3).r._invmp((this || i$3).m), (this || i$3).minv = (this || i$3).rinv.mul((this || i$3).r).isubn(1).div((this || i$3).m), (this || i$3).minv = (this || i$3).minv.umod((this || i$3).r), (this || i$3).minv = (this || i$3).r.sub((this || i$3).minv); + } + c6.prototype._tmp = function() { + var t6 = new o6(null); + return t6.words = new Array(Math.ceil((this || i$3).n / 13)), t6; + }, c6.prototype.ireduce = function(t6) { + var r7, h7 = t6; + do { + this.split(h7, (this || i$3).tmp), r7 = (h7 = (h7 = this.imulK(h7)).iadd((this || i$3).tmp)).bitLength(); + } while (r7 > (this || i$3).n); + var n7 = r7 < (this || i$3).n ? -1 : h7.ucmp((this || i$3).p); + return 0 === n7 ? (h7.words[0] = 0, h7.length = 1) : n7 > 0 ? h7.isub((this || i$3).p) : h7.strip(), h7; + }, c6.prototype.split = function(t6, r7) { + t6.iushrn((this || i$3).n, 0, r7); + }, c6.prototype.imulK = function(t6) { + return t6.imul((this || i$3).k); + }, e8(w4, c6), w4.prototype.split = function(t6, i6) { + for (var r7 = Math.min(t6.length, 9), h7 = 0; h7 < r7; h7++) + i6.words[h7] = t6.words[h7]; + if (i6.length = r7, t6.length <= 9) + return t6.words[0] = 0, t6.length = 1, void 0; + var n7 = t6.words[9]; + for (i6.words[i6.length++] = 4194303 & n7, h7 = 10; h7 < t6.length; h7++) { + var e9 = 0 | t6.words[h7]; + t6.words[h7 - 10] = (4194303 & e9) << 4 | n7 >>> 22, n7 = e9; + } + n7 >>>= 22, t6.words[h7 - 10] = n7, 0 === n7 && t6.length > 10 ? t6.length -= 10 : t6.length -= 9; + }, w4.prototype.imulK = function(t6) { + t6.words[t6.length] = 0, t6.words[t6.length + 1] = 0, t6.length += 2; + for (var i6 = 0, r7 = 0; r7 < t6.length; r7++) { + var h7 = 0 | t6.words[r7]; + i6 += 977 * h7, t6.words[r7] = 67108863 & i6, i6 = 64 * h7 + (i6 / 67108864 | 0); + } + return 0 === t6.words[t6.length - 1] && (t6.length--, 0 === t6.words[t6.length - 1] && t6.length--), t6; + }, e8(y5, c6), e8(b4, c6), e8(_4, c6), _4.prototype.imulK = function(t6) { + for (var i6 = 0, r7 = 0; r7 < t6.length; r7++) { + var h7 = 19 * (0 | t6.words[r7]) + i6, n7 = 67108863 & h7; + h7 >>>= 26, t6.words[r7] = n7, i6 = h7; + } + return 0 !== i6 && (t6.words[t6.length++] = i6), t6; + }, o6._prime = function(t6) { + if (g4[t6]) + return g4[t6]; + var i6; + if ("k256" === t6) + i6 = new w4(); + else if ("p224" === t6) + i6 = new y5(); + else if ("p192" === t6) + i6 = new b4(); + else { + if ("p25519" !== t6) + throw new Error("Unknown prime " + t6); + i6 = new _4(); + } + return g4[t6] = i6, i6; + }, k4.prototype._verify1 = function(t6) { + n6(0 === t6.negative, "red works only with positives"), n6(t6.red, "red works only with red numbers"); + }, k4.prototype._verify2 = function(t6, i6) { + n6(0 == (t6.negative | i6.negative), "red works only with positives"), n6(t6.red && t6.red === i6.red, "red works only with red numbers"); + }, k4.prototype.imod = function(t6) { + return (this || i$3).prime ? (this || i$3).prime.ireduce(t6)._forceRed(this || i$3) : t6.umod((this || i$3).m)._forceRed(this || i$3); + }, k4.prototype.neg = function(t6) { + return t6.isZero() ? t6.clone() : (this || i$3).m.sub(t6)._forceRed(this || i$3); + }, k4.prototype.add = function(t6, r7) { + this._verify2(t6, r7); + var h7 = t6.add(r7); + return h7.cmp((this || i$3).m) >= 0 && h7.isub((this || i$3).m), h7._forceRed(this || i$3); + }, k4.prototype.iadd = function(t6, r7) { + this._verify2(t6, r7); + var h7 = t6.iadd(r7); + return h7.cmp((this || i$3).m) >= 0 && h7.isub((this || i$3).m), h7; + }, k4.prototype.sub = function(t6, r7) { + this._verify2(t6, r7); + var h7 = t6.sub(r7); + return h7.cmpn(0) < 0 && h7.iadd((this || i$3).m), h7._forceRed(this || i$3); + }, k4.prototype.isub = function(t6, r7) { + this._verify2(t6, r7); + var h7 = t6.isub(r7); + return h7.cmpn(0) < 0 && h7.iadd((this || i$3).m), h7; + }, k4.prototype.shl = function(t6, i6) { + return this._verify1(t6), this.imod(t6.ushln(i6)); + }, k4.prototype.imul = function(t6, i6) { + return this._verify2(t6, i6), this.imod(t6.imul(i6)); + }, k4.prototype.mul = function(t6, i6) { + return this._verify2(t6, i6), this.imod(t6.mul(i6)); + }, k4.prototype.isqr = function(t6) { + return this.imul(t6, t6.clone()); + }, k4.prototype.sqr = function(t6) { + return this.mul(t6, t6); + }, k4.prototype.sqrt = function(t6) { + if (t6.isZero()) + return t6.clone(); + var r7 = (this || i$3).m.andln(3); + if (n6(r7 % 2 == 1), 3 === r7) { + var h7 = (this || i$3).m.add(new o6(1)).iushrn(2); + return this.pow(t6, h7); + } + for (var e9 = (this || i$3).m.subn(1), s7 = 0; !e9.isZero() && 0 === e9.andln(1); ) + s7++, e9.iushrn(1); + n6(!e9.isZero()); + var u7 = new o6(1).toRed(this || i$3), a7 = u7.redNeg(), l7 = (this || i$3).m.subn(1).iushrn(1), m6 = (this || i$3).m.bitLength(); + for (m6 = new o6(2 * m6 * m6).toRed(this || i$3); 0 !== this.pow(m6, l7).cmp(a7); ) + m6.redIAdd(a7); + for (var f8 = this.pow(m6, e9), d6 = this.pow(t6, e9.addn(1).iushrn(1)), p7 = this.pow(t6, e9), M5 = s7; 0 !== p7.cmp(u7); ) { + for (var v6 = p7, g5 = 0; 0 !== v6.cmp(u7); g5++) + v6 = v6.redSqr(); + n6(g5 < M5); + var c7 = this.pow(f8, new o6(1).iushln(M5 - g5 - 1)); + d6 = d6.redMul(c7), f8 = c7.redSqr(), p7 = p7.redMul(f8), M5 = g5; + } + return d6; + }, k4.prototype.invm = function(t6) { + var r7 = t6._invmp((this || i$3).m); + return 0 !== r7.negative ? (r7.negative = 0, this.imod(r7).redNeg()) : this.imod(r7); + }, k4.prototype.pow = function(t6, r7) { + if (r7.isZero()) + return new o6(1).toRed(this || i$3); + if (0 === r7.cmpn(1)) + return t6.clone(); + var h7 = new Array(16); + h7[0] = new o6(1).toRed(this || i$3), h7[1] = t6; + for (var n7 = 2; n7 < h7.length; n7++) + h7[n7] = this.mul(h7[n7 - 1], t6); + var e9 = h7[0], s7 = 0, u7 = 0, a7 = r7.bitLength() % 26; + for (0 === a7 && (a7 = 26), n7 = r7.length - 1; n7 >= 0; n7--) { + for (var l7 = r7.words[n7], m6 = a7 - 1; m6 >= 0; m6--) { + var f8 = l7 >> m6 & 1; + e9 !== h7[0] && (e9 = this.sqr(e9)), 0 !== f8 || 0 !== s7 ? (s7 <<= 1, s7 |= f8, (4 === ++u7 || 0 === n7 && 0 === m6) && (e9 = this.mul(e9, h7[s7]), u7 = 0, s7 = 0)) : u7 = 0; + } + a7 = 26; + } + return e9; + }, k4.prototype.convertTo = function(t6) { + var r7 = t6.umod((this || i$3).m); + return r7 === t6 ? r7.clone() : r7; + }, k4.prototype.convertFrom = function(t6) { + var i6 = t6.clone(); + return i6.red = null, i6; + }, o6.mont = function(t6) { + return new A4(t6); + }, e8(A4, k4), A4.prototype.convertTo = function(t6) { + return this.imod(t6.ushln((this || i$3).shift)); + }, A4.prototype.convertFrom = function(t6) { + var r7 = this.imod(t6.mul((this || i$3).rinv)); + return r7.red = null, r7; + }, A4.prototype.imul = function(t6, r7) { + if (t6.isZero() || r7.isZero()) + return t6.words[0] = 0, t6.length = 1, t6; + var h7 = t6.imul(r7), n7 = h7.maskn((this || i$3).shift).mul((this || i$3).minv).imaskn((this || i$3).shift).mul((this || i$3).m), e9 = h7.isub(n7).iushrn((this || i$3).shift), o7 = e9; + return e9.cmp((this || i$3).m) >= 0 ? o7 = e9.isub((this || i$3).m) : e9.cmpn(0) < 0 && (o7 = e9.iadd((this || i$3).m)), o7._forceRed(this || i$3); + }, A4.prototype.mul = function(t6, r7) { + if (t6.isZero() || r7.isZero()) + return new o6(0)._forceRed(this || i$3); + var h7 = t6.mul(r7), n7 = h7.maskn((this || i$3).shift).mul((this || i$3).minv).imaskn((this || i$3).shift).mul((this || i$3).m), e9 = h7.isub(n7).iushrn((this || i$3).shift), s7 = e9; + return e9.cmp((this || i$3).m) >= 0 ? s7 = e9.isub((this || i$3).m) : e9.cmpn(0) < 0 && (s7 = e9.iadd((this || i$3).m)), s7._forceRed(this || i$3); + }, A4.prototype.invm = function(t6) { + return this.imod(t6._invmp((this || i$3).m).mul((this || i$3).r2))._forceRed(this || i$3); + }; +}(h$a, r$7); +var n$c = h$a.exports; +var t$5; +var e$a; +var r$8 = Object.freeze({}); +var n$d = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function o$d(t6) { + (this || n$d).rand = t6; +} +if ((t$5 = function(t6) { + return e$a || (e$a = new o$d(null)), e$a.generate(t6); +}).Rand = o$d, o$d.prototype.generate = function(t6) { + return this._rand(t6); +}, o$d.prototype._rand = function(t6) { + if ((this || n$d).rand.getBytes) + return (this || n$d).rand.getBytes(t6); + for (var e8 = new Uint8Array(t6), r6 = 0; r6 < e8.length; r6++) + e8[r6] = (this || n$d).rand.getByte(); + return e8; +}, "object" == typeof self) + self.crypto && self.crypto.getRandomValues ? o$d.prototype._rand = function(t6) { + var e8 = new Uint8Array(t6); + return self.crypto.getRandomValues(e8), e8; + } : self.msCrypto && self.msCrypto.getRandomValues ? o$d.prototype._rand = function(t6) { + var e8 = new Uint8Array(t6); + return self.msCrypto.getRandomValues(e8), e8; + } : "object" == typeof window && (o$d.prototype._rand = function() { + throw new Error("Not implemented yet"); + }); +else + try { + a$e = r$8; + if ("function" != typeof a$e.randomBytes) + throw new Error("Not supported"); + o$d.prototype._rand = function(t6) { + return a$e.randomBytes(t6); + }; + } catch (t6) { + } +var a$e; +var f$i = t$5; +var n$e; +var t$6 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var o$e = n$c; +var a$f = f$i; +function d$b(r6) { + (this || t$6).rand = r6 || new a$f.Rand(); +} +n$e = d$b, d$b.create = function(r6) { + return new d$b(r6); +}, d$b.prototype._randbelow = function(r6) { + var e8 = r6.bitLength(), n6 = Math.ceil(e8 / 8); + do { + var a6 = new o$e((this || t$6).rand.generate(n6)); + } while (a6.cmp(r6) >= 0); + return a6; +}, d$b.prototype._randrange = function(r6, e8) { + var n6 = e8.sub(r6); + return r6.add(this._randbelow(n6)); +}, d$b.prototype.test = function(r6, e8, n6) { + var t6 = r6.bitLength(), a6 = o$e.mont(r6), d5 = new o$e(1).toRed(a6); + e8 || (e8 = Math.max(1, t6 / 48 | 0)); + for (var i6 = r6.subn(1), f7 = 0; !i6.testn(f7); f7++) + ; + for (var u6 = r6.shrn(f7), p6 = i6.toRed(a6); e8 > 0; e8--) { + var c6 = this._randrange(new o$e(2), i6); + n6 && n6(c6); + var s6 = c6.toRed(a6).redPow(u6); + if (0 !== s6.cmp(d5) && 0 !== s6.cmp(p6)) { + for (var m5 = 1; m5 < f7; m5++) { + if (0 === (s6 = s6.redSqr()).cmp(d5)) + return false; + if (0 === s6.cmp(p6)) + break; + } + if (m5 === f7) + return false; + } + } + return true; +}, d$b.prototype.getDivisor = function(r6, e8) { + var n6 = r6.bitLength(), t6 = o$e.mont(r6), a6 = new o$e(1).toRed(t6); + e8 || (e8 = Math.max(1, n6 / 48 | 0)); + for (var d5 = r6.subn(1), i6 = 0; !d5.testn(i6); i6++) + ; + for (var f7 = r6.shrn(i6), u6 = d5.toRed(t6); e8 > 0; e8--) { + var p6 = this._randrange(new o$e(2), d5), c6 = r6.gcd(p6); + if (0 !== c6.cmpn(1)) + return c6; + var s6 = p6.toRed(t6).redPow(f7); + if (0 !== s6.cmp(a6) && 0 !== s6.cmp(u6)) { + for (var m5 = 1; m5 < i6; m5++) { + if (0 === (s6 = s6.redSqr()).cmp(a6)) + return s6.fromRed().subn(1).gcd(r6); + if (0 === s6.cmp(u6)) + break; + } + if (m5 === i6) + return (s6 = s6.redSqr()).fromRed().subn(1).gcd(r6); + } + } + return false; +}; +var i$4 = n$e; +var b$7; +var d$c = a5; +b$7 = v$9, v$9.simpleSieve = _$9, v$9.fermatTest = g$8; +var r$9 = n$c; +var t$7 = new r$9(24); +var n$f = new i$4(); +var i$5 = new r$9(1); +var o$f = new r$9(2); +var p$e = new r$9(5); +var s$c = (new r$9(16), new r$9(8), new r$9(10)); +var m$9 = new r$9(3); +var u$b = (new r$9(7), new r$9(11)); +var h$b = new r$9(4); +var w$a = (new r$9(12), null); +function l$c() { + if (null !== w$a) + return w$a; + var f7 = []; + f7[0] = 2; + for (var e8 = 1, c6 = 3; c6 < 1048576; c6 += 2) { + for (var a6 = Math.ceil(Math.sqrt(c6)), b4 = 0; b4 < e8 && f7[b4] <= a6 && c6 % f7[b4] != 0; b4++) + ; + e8 !== b4 && f7[b4] <= a6 || (f7[e8++] = c6); + } + return w$a = f7, f7; +} +function _$9(f7) { + for (var e8 = l$c(), c6 = 0; c6 < e8.length; c6++) + if (0 === f7.modn(e8[c6])) + return 0 === f7.cmpn(e8[c6]); + return true; +} +function g$8(f7) { + var e8 = r$9.mont(f7); + return 0 === o$f.toRed(e8).redPow(f7.subn(1)).fromRed().cmpn(1); +} +function v$9(f7, e8) { + if (f7 < 16) + return new r$9(2 === e8 || 5 === e8 ? [140, 123] : [140, 39]); + var c6, a6; + for (e8 = new r$9(e8); ; ) { + for (c6 = new r$9(d$c(Math.ceil(f7 / 8))); c6.bitLength() > f7; ) + c6.ishrn(1); + if (c6.isEven() && c6.iadd(i$5), c6.testn(1) || c6.iadd(o$f), e8.cmp(o$f)) { + if (!e8.cmp(p$e)) + for (; c6.mod(s$c).cmp(m$9); ) + c6.iadd(h$b); + } else + for (; c6.mod(t$7).cmp(u$b); ) + c6.iadd(h$b); + if (_$9(a6 = c6.shrn(1)) && _$9(c6) && g$8(a6) && g$8(c6) && n$f.test(a6) && n$f.test(c6)) + return c6; + } +} +var y$9; +var P$2 = b$7; +var B$5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var K$2 = e$1$1.Buffer; +var R$1 = n$c; +var S$5 = new i$4(); +var x$2 = new R$1(24); +var C$2 = new R$1(11); +var D$2 = new R$1(10); +var G$1 = new R$1(3); +var H$2 = new R$1(7); +var T$3 = P$2; +var j$1 = a5; +function E$6(f7, e8) { + return e8 = e8 || "utf8", K$2.isBuffer(f7) || (f7 = new K$2(f7, e8)), (this || B$5)._pub = new R$1(f7), this || B$5; +} +function L$1(f7, e8) { + return e8 = e8 || "utf8", K$2.isBuffer(f7) || (f7 = new K$2(f7, e8)), (this || B$5)._priv = new R$1(f7), this || B$5; +} +y$9 = k$7; +var M$4 = {}; +function k$7(f7, e8, c6) { + this.setGenerator(e8), (this || B$5).__prime = new R$1(f7), (this || B$5)._prime = R$1.mont((this || B$5).__prime), (this || B$5)._primeLen = f7.length, (this || B$5)._pub = void 0, (this || B$5)._priv = void 0, (this || B$5)._primeCode = void 0, c6 ? ((this || B$5).setPublicKey = E$6, (this || B$5).setPrivateKey = L$1) : (this || B$5)._primeCode = 8; +} +function A$5(f7, e8) { + var c6 = new K$2(f7.toArray()); + return e8 ? c6.toString(e8) : c6; +} +Object.defineProperty(k$7.prototype, "verifyError", { enumerable: true, get: function() { + return "number" != typeof (this || B$5)._primeCode && ((this || B$5)._primeCode = function(f7, e8) { + var c6 = e8.toString("hex"), a6 = [c6, f7.toString(16)].join("_"); + if (a6 in M$4) + return M$4[a6]; + var b4, d5 = 0; + if (f7.isEven() || !T$3.simpleSieve || !T$3.fermatTest(f7) || !S$5.test(f7)) + return d5 += 1, d5 += "02" === c6 || "05" === c6 ? 8 : 4, M$4[a6] = d5, d5; + switch (S$5.test(f7.shrn(1)) || (d5 += 2), c6) { + case "02": + f7.mod(x$2).cmp(C$2) && (d5 += 8); + break; + case "05": + (b4 = f7.mod(D$2)).cmp(G$1) && b4.cmp(H$2) && (d5 += 8); + break; + default: + d5 += 4; + } + return M$4[a6] = d5, d5; + }((this || B$5).__prime, (this || B$5).__gen)), (this || B$5)._primeCode; +} }), k$7.prototype.generateKeys = function() { + return (this || B$5)._priv || ((this || B$5)._priv = new R$1(j$1((this || B$5)._primeLen))), (this || B$5)._pub = (this || B$5)._gen.toRed((this || B$5)._prime).redPow((this || B$5)._priv).fromRed(), this.getPublicKey(); +}, k$7.prototype.computeSecret = function(f7) { + var e8 = (f7 = (f7 = new R$1(f7)).toRed((this || B$5)._prime)).redPow((this || B$5)._priv).fromRed(), c6 = new K$2(e8.toArray()), a6 = this.getPrime(); + if (c6.length < a6.length) { + var b4 = new K$2(a6.length - c6.length); + b4.fill(0), c6 = K$2.concat([b4, c6]); + } + return c6; +}, k$7.prototype.getPublicKey = function(f7) { + return A$5((this || B$5)._pub, f7); +}, k$7.prototype.getPrivateKey = function(f7) { + return A$5((this || B$5)._priv, f7); +}, k$7.prototype.getPrime = function(f7) { + return A$5((this || B$5).__prime, f7); +}, k$7.prototype.getGenerator = function(f7) { + return A$5((this || B$5)._gen, f7); +}, k$7.prototype.setGenerator = function(f7, e8) { + return e8 = e8 || "utf8", K$2.isBuffer(f7) || (f7 = new K$2(f7, e8)), (this || B$5).__gen = f7, (this || B$5)._gen = new R$1(f7), this || B$5; +}; +var q$1 = y$9; +var O$3 = {}; +var z$3 = e$1$1.Buffer; +var F$3 = P$2; +var I$6 = { modp1: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff" }, modp2: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff" }, modp5: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff" }, modp14: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff" }, modp15: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff" }, modp16: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff" }, modp17: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff" }, modp18: { gen: "02", prime: "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff" } }; +var J$1 = q$1; +var N$2 = { binary: true, hex: true, base64: true }; +O$3.DiffieHellmanGroup = O$3.createDiffieHellmanGroup = O$3.getDiffieHellman = function(f7) { + var e8 = new z$3(I$6[f7].prime, "hex"), c6 = new z$3(I$6[f7].gen, "hex"); + return new J$1(e8, c6); +}, O$3.createDiffieHellman = O$3.DiffieHellman = function f6(e8, c6, a6, b4) { + return z$3.isBuffer(c6) || void 0 === N$2[c6] ? f6(e8, "binary", c6, a6) : (c6 = c6 || "binary", b4 = b4 || "binary", a6 = a6 || new z$3([2]), z$3.isBuffer(a6) || (a6 = new z$3(a6, b4)), "number" == typeof e8 ? new J$1(F$3(e8, a6), a6, true) : (z$3.isBuffer(e8) || (e8 = new z$3(e8, c6)), new J$1(e8, a6, true))); +}; +var m$a; +var u$c = e$1$1.Buffer; +var n$g = n$c; +var d$d = a5; +function t$8(e8, o6) { + var r6 = function(e9) { + var o7 = i$6(e9); + return { blinder: o7.toRed(n$g.mont(e9.modulus)).redPow(new n$g(e9.publicExponent)).fromRed(), unblinder: o7.invm(e9.modulus) }; + }(o6), m5 = o6.modulus.byteLength(), d5 = (n$g.mont(o6.modulus), new n$g(e8).mul(r6.blinder).umod(o6.modulus)), t6 = d5.toRed(n$g.mont(o6.prime1)), l6 = d5.toRed(n$g.mont(o6.prime2)), f7 = o6.coefficient, p6 = o6.prime1, b4 = o6.prime2, s6 = t6.redPow(o6.exponent1), a6 = l6.redPow(o6.exponent2); + s6 = s6.fromRed(), a6 = a6.fromRed(); + var w4 = s6.isub(a6).imul(f7).umod(p6); + return w4.imul(b4), a6.iadd(w4), new u$c(a6.imul(r6.unblinder).umod(o6.modulus).toArray(false, m5)); +} +function i$6(e8) { + for (var o6 = e8.modulus.byteLength(), r6 = new n$g(d$d(o6)); r6.cmp(e8.modulus) >= 0 || !r6.umod(e8.prime1) || !r6.umod(e8.prime2); ) + r6 = new n$g(d$d(o6)); + return r6; +} +m$a = t$8, t$8.getr = i$6; +var l$d = m$a; +var r$a = {}; +var e$b = r$a; +function t$9(r6) { + return 1 === r6.length ? "0" + r6 : r6; +} +function n$h(r6) { + for (var e8 = "", n6 = 0; n6 < r6.length; n6++) + e8 += t$9(r6[n6].toString(16)); + return e8; +} +e$b.toArray = function(r6, e8) { + if (Array.isArray(r6)) + return r6.slice(); + if (!r6) + return []; + var t6 = []; + if ("string" != typeof r6) { + for (var n6 = 0; n6 < r6.length; n6++) + t6[n6] = 0 | r6[n6]; + return t6; + } + if ("hex" === e8) { + (r6 = r6.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (r6 = "0" + r6); + for (n6 = 0; n6 < r6.length; n6 += 2) + t6.push(parseInt(r6[n6] + r6[n6 + 1], 16)); + } else + for (n6 = 0; n6 < r6.length; n6++) { + var o6 = r6.charCodeAt(n6), u6 = o6 >> 8, f7 = 255 & o6; + u6 ? t6.push(u6, f7) : t6.push(f7); + } + return t6; +}, e$b.zero2 = t$9, e$b.toHex = n$h, e$b.encode = function(r6, e8) { + return "hex" === e8 ? n$h(r6) : r6; +}; +var n$i = {}; +var a$g = n$i; +var i$7 = n$c; +var o$g = o$7; +var c$d = r$a; +a$g.assert = o$g, a$g.toArray = c$d.toArray, a$g.zero2 = c$d.zero2, a$g.toHex = c$d.toHex, a$g.encode = c$d.encode, a$g.getNAF = function(r6, t6, e8) { + var n6 = new Array(Math.max(r6.bitLength(), e8) + 1); + n6.fill(0); + for (var a6 = 1 << t6 + 1, i6 = r6.clone(), o6 = 0; o6 < n6.length; o6++) { + var c6, s6 = i6.andln(a6 - 1); + i6.isOdd() ? (c6 = s6 > (a6 >> 1) - 1 ? (a6 >> 1) - s6 : s6, i6.isubn(c6)) : c6 = 0, n6[o6] = c6, i6.iushrn(1); + } + return n6; +}, a$g.getJSF = function(r6, t6) { + var e8 = [[], []]; + r6 = r6.clone(), t6 = t6.clone(); + for (var n6 = 0, a6 = 0; r6.cmpn(-n6) > 0 || t6.cmpn(-a6) > 0; ) { + var i6, o6, c6, s6 = r6.andln(3) + n6 & 3, l6 = t6.andln(3) + a6 & 3; + if (3 === s6 && (s6 = -1), 3 === l6 && (l6 = -1), 0 == (1 & s6)) + i6 = 0; + else + i6 = 3 !== (c6 = r6.andln(7) + n6 & 7) && 5 !== c6 || 2 !== l6 ? s6 : -s6; + if (e8[0].push(i6), 0 == (1 & l6)) + o6 = 0; + else + o6 = 3 !== (c6 = t6.andln(7) + a6 & 7) && 5 !== c6 || 2 !== s6 ? l6 : -l6; + e8[1].push(o6), 2 * n6 === i6 + 1 && (n6 = 1 - n6), 2 * a6 === o6 + 1 && (a6 = 1 - a6), r6.iushrn(1), t6.iushrn(1); + } + return e8; +}, a$g.cachedProperty = function(r6, t6, e8) { + var n6 = "_" + t6; + r6.prototype[t6] = function() { + return void 0 !== this[n6] ? this[n6] : this[n6] = e8.call(this); + }; +}, a$g.parseBytes = function(r6) { + return "string" == typeof r6 ? a$g.toArray(r6, "hex") : r6; +}, a$g.intFromLE = function(r6) { + return new i$7(r6, "hex", "le"); +}; +var s$d; +var l$e = n$c; +var u$d = n$i; +var h$c = u$d.assert; +function p$f(r6, t6) { + if (r6 instanceof p$f) + return r6; + this._importDER(r6, t6) || (h$c(r6.r && r6.s, "Signature without r or s"), this.r = new l$e(r6.r, 16), this.s = new l$e(r6.s, 16), void 0 === r6.recoveryParam ? this.recoveryParam = null : this.recoveryParam = r6.recoveryParam); +} +function f$j() { + this.place = 0; +} +function v$a(r6, t6) { + var e8 = r6[t6.place++]; + if (!(128 & e8)) + return e8; + for (var n6 = 15 & e8, a6 = 0, i6 = 0, o6 = t6.place; i6 < n6; i6++, o6++) + a6 <<= 8, a6 |= r6[o6]; + return t6.place = o6, a6; +} +function m$b(r6) { + for (var t6 = 0, e8 = r6.length - 1; !r6[t6] && !(128 & r6[t6 + 1]) && t6 < e8; ) + t6++; + return 0 === t6 ? r6 : r6.slice(t6); +} +function y$a(r6, t6) { + if (t6 < 128) + return r6.push(t6), void 0; + var e8 = 1 + (Math.log(t6) / Math.LN2 >>> 3); + for (r6.push(128 | e8); --e8; ) + r6.push(t6 >>> (e8 << 3) & 255); + r6.push(t6); +} +s$d = p$f, p$f.prototype._importDER = function(r6, t6) { + r6 = u$d.toArray(r6, t6); + var e8 = new f$j(); + if (48 !== r6[e8.place++]) + return false; + if (v$a(r6, e8) + e8.place !== r6.length) + return false; + if (2 !== r6[e8.place++]) + return false; + var n6 = v$a(r6, e8), a6 = r6.slice(e8.place, n6 + e8.place); + if (e8.place += n6, 2 !== r6[e8.place++]) + return false; + var i6 = v$a(r6, e8); + if (r6.length !== i6 + e8.place) + return false; + var o6 = r6.slice(e8.place, i6 + e8.place); + return 0 === a6[0] && 128 & a6[1] && (a6 = a6.slice(1)), 0 === o6[0] && 128 & o6[1] && (o6 = o6.slice(1)), this.r = new l$e(a6), this.s = new l$e(o6), this.recoveryParam = null, true; +}, p$f.prototype.toDER = function(r6) { + var t6 = this.r.toArray(), e8 = this.s.toArray(); + for (128 & t6[0] && (t6 = [0].concat(t6)), 128 & e8[0] && (e8 = [0].concat(e8)), t6 = m$b(t6), e8 = m$b(e8); !(e8[0] || 128 & e8[1]); ) + e8 = e8.slice(1); + var n6 = [2]; + y$a(n6, t6.length), (n6 = n6.concat(t6)).push(2), y$a(n6, e8.length); + var a6 = n6.concat(e8), i6 = [48]; + return y$a(i6, a6.length), i6 = i6.concat(a6), u$d.encode(i6, r6); +}; +var d$e = s$d; +var r$b = {}; +var i$8 = o$7; +var e$c = t$2; +function h$d(t6, n6) { + return 55296 == (64512 & t6.charCodeAt(n6)) && (!(n6 < 0 || n6 + 1 >= t6.length) && 56320 == (64512 & t6.charCodeAt(n6 + 1))); +} +function o$h(t6) { + return (t6 >>> 24 | t6 >>> 8 & 65280 | t6 << 8 & 16711680 | (255 & t6) << 24) >>> 0; +} +function u$e(t6) { + return 1 === t6.length ? "0" + t6 : t6; +} +function s$e(t6) { + return 7 === t6.length ? "0" + t6 : 6 === t6.length ? "00" + t6 : 5 === t6.length ? "000" + t6 : 4 === t6.length ? "0000" + t6 : 3 === t6.length ? "00000" + t6 : 2 === t6.length ? "000000" + t6 : 1 === t6.length ? "0000000" + t6 : t6; +} +r$b.inherits = e$c, r$b.toArray = function(t6, n6) { + if (Array.isArray(t6)) + return t6.slice(); + if (!t6) + return []; + var r6 = []; + if ("string" == typeof t6) + if (n6) { + if ("hex" === n6) + for ((t6 = t6.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t6 = "0" + t6), e8 = 0; e8 < t6.length; e8 += 2) + r6.push(parseInt(t6[e8] + t6[e8 + 1], 16)); + } else + for (var i6 = 0, e8 = 0; e8 < t6.length; e8++) { + var o6 = t6.charCodeAt(e8); + o6 < 128 ? r6[i6++] = o6 : o6 < 2048 ? (r6[i6++] = o6 >> 6 | 192, r6[i6++] = 63 & o6 | 128) : h$d(t6, e8) ? (o6 = 65536 + ((1023 & o6) << 10) + (1023 & t6.charCodeAt(++e8)), r6[i6++] = o6 >> 18 | 240, r6[i6++] = o6 >> 12 & 63 | 128, r6[i6++] = o6 >> 6 & 63 | 128, r6[i6++] = 63 & o6 | 128) : (r6[i6++] = o6 >> 12 | 224, r6[i6++] = o6 >> 6 & 63 | 128, r6[i6++] = 63 & o6 | 128); + } + else + for (e8 = 0; e8 < t6.length; e8++) + r6[e8] = 0 | t6[e8]; + return r6; +}, r$b.toHex = function(t6) { + for (var n6 = "", r6 = 0; r6 < t6.length; r6++) + n6 += u$e(t6[r6].toString(16)); + return n6; +}, r$b.htonl = o$h, r$b.toHex32 = function(t6, n6) { + for (var r6 = "", i6 = 0; i6 < t6.length; i6++) { + var e8 = t6[i6]; + "little" === n6 && (e8 = o$h(e8)), r6 += s$e(e8.toString(16)); + } + return r6; +}, r$b.zero2 = u$e, r$b.zero8 = s$e, r$b.join32 = function(t6, n6, r6, e8) { + var h6 = r6 - n6; + i$8(h6 % 4 == 0); + for (var o6 = new Array(h6 / 4), u6 = 0, s6 = n6; u6 < o6.length; u6++, s6 += 4) { + var a6; + a6 = "big" === e8 ? t6[s6] << 24 | t6[s6 + 1] << 16 | t6[s6 + 2] << 8 | t6[s6 + 3] : t6[s6 + 3] << 24 | t6[s6 + 2] << 16 | t6[s6 + 1] << 8 | t6[s6], o6[u6] = a6 >>> 0; + } + return o6; +}, r$b.split32 = function(t6, n6) { + for (var r6 = new Array(4 * t6.length), i6 = 0, e8 = 0; i6 < t6.length; i6++, e8 += 4) { + var h6 = t6[i6]; + "big" === n6 ? (r6[e8] = h6 >>> 24, r6[e8 + 1] = h6 >>> 16 & 255, r6[e8 + 2] = h6 >>> 8 & 255, r6[e8 + 3] = 255 & h6) : (r6[e8 + 3] = h6 >>> 24, r6[e8 + 2] = h6 >>> 16 & 255, r6[e8 + 1] = h6 >>> 8 & 255, r6[e8] = 255 & h6); + } + return r6; +}, r$b.rotr32 = function(t6, n6) { + return t6 >>> n6 | t6 << 32 - n6; +}, r$b.rotl32 = function(t6, n6) { + return t6 << n6 | t6 >>> 32 - n6; +}, r$b.sum32 = function(t6, n6) { + return t6 + n6 >>> 0; +}, r$b.sum32_3 = function(t6, n6, r6) { + return t6 + n6 + r6 >>> 0; +}, r$b.sum32_4 = function(t6, n6, r6, i6) { + return t6 + n6 + r6 + i6 >>> 0; +}, r$b.sum32_5 = function(t6, n6, r6, i6, e8) { + return t6 + n6 + r6 + i6 + e8 >>> 0; +}, r$b.sum64 = function(t6, n6, r6, i6) { + var e8 = t6[n6], h6 = i6 + t6[n6 + 1] >>> 0, o6 = (h6 < i6 ? 1 : 0) + r6 + e8; + t6[n6] = o6 >>> 0, t6[n6 + 1] = h6; +}, r$b.sum64_hi = function(t6, n6, r6, i6) { + return (n6 + i6 >>> 0 < n6 ? 1 : 0) + t6 + r6 >>> 0; +}, r$b.sum64_lo = function(t6, n6, r6, i6) { + return n6 + i6 >>> 0; +}, r$b.sum64_4_hi = function(t6, n6, r6, i6, e8, h6, o6, u6) { + var s6 = 0, a6 = n6; + return s6 += (a6 = a6 + i6 >>> 0) < n6 ? 1 : 0, s6 += (a6 = a6 + h6 >>> 0) < h6 ? 1 : 0, t6 + r6 + e8 + o6 + (s6 += (a6 = a6 + u6 >>> 0) < u6 ? 1 : 0) >>> 0; +}, r$b.sum64_4_lo = function(t6, n6, r6, i6, e8, h6, o6, u6) { + return n6 + i6 + h6 + u6 >>> 0; +}, r$b.sum64_5_hi = function(t6, n6, r6, i6, e8, h6, o6, u6, s6, a6) { + var l6 = 0, g4 = n6; + return l6 += (g4 = g4 + i6 >>> 0) < n6 ? 1 : 0, l6 += (g4 = g4 + h6 >>> 0) < h6 ? 1 : 0, l6 += (g4 = g4 + u6 >>> 0) < u6 ? 1 : 0, t6 + r6 + e8 + o6 + s6 + (l6 += (g4 = g4 + a6 >>> 0) < a6 ? 1 : 0) >>> 0; +}, r$b.sum64_5_lo = function(t6, n6, r6, i6, e8, h6, o6, u6, s6, a6) { + return n6 + i6 + h6 + u6 + a6 >>> 0; +}, r$b.rotr64_hi = function(t6, n6, r6) { + return (n6 << 32 - r6 | t6 >>> r6) >>> 0; +}, r$b.rotr64_lo = function(t6, n6, r6) { + return (t6 << 32 - r6 | n6 >>> r6) >>> 0; +}, r$b.shr64_hi = function(t6, n6, r6) { + return t6 >>> r6; +}, r$b.shr64_lo = function(t6, n6, r6) { + return (t6 << 32 - r6 | n6 >>> r6) >>> 0; +}; +var a$h = {}; +var l$f = r$b; +var g$9 = o$7; +function c$e() { + this.pending = null, this.pendingTotal = 0, this.blockSize = this.constructor.blockSize, this.outSize = this.constructor.outSize, this.hmacStrength = this.constructor.hmacStrength, this.padLength = this.constructor.padLength / 8, this.endian = "big", this._delta8 = this.blockSize / 8, this._delta32 = this.blockSize / 32; +} +a$h.BlockHash = c$e, c$e.prototype.update = function(t6, n6) { + if (t6 = l$f.toArray(t6, n6), this.pending ? this.pending = this.pending.concat(t6) : this.pending = t6, this.pendingTotal += t6.length, this.pending.length >= this._delta8) { + var r6 = (t6 = this.pending).length % this._delta8; + this.pending = t6.slice(t6.length - r6, t6.length), 0 === this.pending.length && (this.pending = null), t6 = l$f.join32(t6, 0, t6.length - r6, this.endian); + for (var i6 = 0; i6 < t6.length; i6 += this._delta32) + this._update(t6, i6, i6 + this._delta32); + } + return this; +}, c$e.prototype.digest = function(t6) { + return this.update(this._pad()), g$9(null === this.pending), this._digest(t6); +}, c$e.prototype._pad = function() { + var t6 = this.pendingTotal, n6 = this._delta8, r6 = n6 - (t6 + this.padLength) % n6, i6 = new Array(r6 + this.padLength); + i6[0] = 128; + for (var e8 = 1; e8 < r6; e8++) + i6[e8] = 0; + if (t6 <<= 3, "big" === this.endian) { + for (var h6 = 8; h6 < this.padLength; h6++) + i6[e8++] = 0; + i6[e8++] = 0, i6[e8++] = 0, i6[e8++] = 0, i6[e8++] = 0, i6[e8++] = t6 >>> 24 & 255, i6[e8++] = t6 >>> 16 & 255, i6[e8++] = t6 >>> 8 & 255, i6[e8++] = 255 & t6; + } else + for (i6[e8++] = 255 & t6, i6[e8++] = t6 >>> 8 & 255, i6[e8++] = t6 >>> 16 & 255, i6[e8++] = t6 >>> 24 & 255, i6[e8++] = 0, i6[e8++] = 0, i6[e8++] = 0, i6[e8++] = 0, h6 = 8; h6 < this.padLength; h6++) + i6[e8++] = 0; + return i6; +}; +var r$c; +var n$j = r$b; +var s$f = a$h; +var o$i = o$7; +var e$d = n$j.rotr64_hi; +var u$f = n$j.rotr64_lo; +var a$i = n$j.shr64_hi; +var c$f = n$j.shr64_lo; +var f$k = n$j.sum64; +var v$b = n$j.sum64_hi; +var _$a = n$j.sum64_lo; +var l$g = n$j.sum64_4_hi; +var p$g = n$j.sum64_4_lo; +var m$c = n$j.sum64_5_hi; +var g$a = n$j.sum64_5_lo; +var k$8 = s$f.BlockHash; +var d$f = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591]; +function y$b() { + if (!(this instanceof y$b)) + return new y$b(); + k$8.call(this), this.h = [1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137, 2600822924, 725511199, 528734635, 4215389547, 1541459225, 327033209], this.k = d$f, this.W = new Array(160); +} +function b$8(t6, h6, i6, r6, n6) { + var s6 = t6 & i6 ^ ~t6 & n6; + return s6 < 0 && (s6 += 4294967296), s6; +} +function x$3(t6, h6, i6, r6, n6, s6) { + var o6 = h6 & r6 ^ ~h6 & s6; + return o6 < 0 && (o6 += 4294967296), o6; +} +function B$6(t6, h6, i6, r6, n6) { + var s6 = t6 & i6 ^ t6 & n6 ^ i6 & n6; + return s6 < 0 && (s6 += 4294967296), s6; +} +function S$6(t6, h6, i6, r6, n6, s6) { + var o6 = h6 & r6 ^ h6 & s6 ^ r6 & s6; + return o6 < 0 && (o6 += 4294967296), o6; +} +function W$1(t6, h6) { + var i6 = e$d(t6, h6, 28) ^ e$d(h6, t6, 2) ^ e$d(h6, t6, 7); + return i6 < 0 && (i6 += 4294967296), i6; +} +function w$b(t6, h6) { + var i6 = u$f(t6, h6, 28) ^ u$f(h6, t6, 2) ^ u$f(h6, t6, 7); + return i6 < 0 && (i6 += 4294967296), i6; +} +function z$4(t6, h6) { + var i6 = e$d(t6, h6, 14) ^ e$d(t6, h6, 18) ^ e$d(h6, t6, 9); + return i6 < 0 && (i6 += 4294967296), i6; +} +function H$3(t6, h6) { + var i6 = u$f(t6, h6, 14) ^ u$f(t6, h6, 18) ^ u$f(h6, t6, 9); + return i6 < 0 && (i6 += 4294967296), i6; +} +function j$2(t6, h6) { + var i6 = e$d(t6, h6, 1) ^ e$d(t6, h6, 8) ^ a$i(t6, h6, 7); + return i6 < 0 && (i6 += 4294967296), i6; +} +function A$6(t6, h6) { + var i6 = u$f(t6, h6, 1) ^ u$f(t6, h6, 8) ^ c$f(t6, h6, 7); + return i6 < 0 && (i6 += 4294967296), i6; +} +function L$2(t6, h6) { + var i6 = e$d(t6, h6, 19) ^ e$d(h6, t6, 29) ^ a$i(t6, h6, 6); + return i6 < 0 && (i6 += 4294967296), i6; +} +function q$2(t6, h6) { + var i6 = u$f(t6, h6, 19) ^ u$f(h6, t6, 29) ^ c$f(t6, h6, 6); + return i6 < 0 && (i6 += 4294967296), i6; +} +n$j.inherits(y$b, k$8), r$c = y$b, y$b.blockSize = 1024, y$b.outSize = 512, y$b.hmacStrength = 192, y$b.padLength = 128, y$b.prototype._prepareBlock = function(t6, h6) { + for (var i6 = this.W, r6 = 0; r6 < 32; r6++) + i6[r6] = t6[h6 + r6]; + for (; r6 < i6.length; r6 += 2) { + var n6 = L$2(i6[r6 - 4], i6[r6 - 3]), s6 = q$2(i6[r6 - 4], i6[r6 - 3]), o6 = i6[r6 - 14], e8 = i6[r6 - 13], u6 = j$2(i6[r6 - 30], i6[r6 - 29]), a6 = A$6(i6[r6 - 30], i6[r6 - 29]), c6 = i6[r6 - 32], f7 = i6[r6 - 31]; + i6[r6] = l$g(n6, s6, o6, e8, u6, a6, c6, f7), i6[r6 + 1] = p$g(n6, s6, o6, e8, u6, a6, c6, f7); + } +}, y$b.prototype._update = function(t6, h6) { + this._prepareBlock(t6, h6); + var i6 = this.W, r6 = this.h[0], n6 = this.h[1], s6 = this.h[2], e8 = this.h[3], u6 = this.h[4], a6 = this.h[5], c6 = this.h[6], l6 = this.h[7], p6 = this.h[8], k4 = this.h[9], d5 = this.h[10], y5 = this.h[11], j4 = this.h[12], A4 = this.h[13], L4 = this.h[14], q3 = this.h[15]; + o$i(this.k.length === i6.length); + for (var C4 = 0; C4 < i6.length; C4 += 2) { + var D4 = L4, E4 = q3, F4 = z$4(p6, k4), G3 = H$3(p6, k4), I4 = b$8(p6, k4, d5, y5, j4), J3 = x$3(p6, k4, d5, y5, j4, A4), K3 = this.k[C4], M4 = this.k[C4 + 1], N4 = i6[C4], O4 = i6[C4 + 1], P4 = m$c(D4, E4, F4, G3, I4, J3, K3, M4, N4, O4), Q3 = g$a(D4, E4, F4, G3, I4, J3, K3, M4, N4, O4); + D4 = W$1(r6, n6), E4 = w$b(r6, n6), F4 = B$6(r6, n6, s6, e8, u6), G3 = S$6(r6, n6, s6, e8, u6, a6); + var R4 = v$b(D4, E4, F4, G3), T5 = _$a(D4, E4, F4, G3); + L4 = j4, q3 = A4, j4 = d5, A4 = y5, d5 = p6, y5 = k4, p6 = v$b(c6, l6, P4, Q3), k4 = _$a(l6, l6, P4, Q3), c6 = u6, l6 = a6, u6 = s6, a6 = e8, s6 = r6, e8 = n6, r6 = v$b(P4, Q3, R4, T5), n6 = _$a(P4, Q3, R4, T5); + } + f$k(this.h, 0, r6, n6), f$k(this.h, 2, s6, e8), f$k(this.h, 4, u6, a6), f$k(this.h, 6, c6, l6), f$k(this.h, 8, p6, k4), f$k(this.h, 10, d5, y5), f$k(this.h, 12, j4, A4), f$k(this.h, 14, L4, q3); +}, y$b.prototype._digest = function(t6) { + return "hex" === t6 ? n$j.toHex32(this.h, "big") : n$j.split32(this.h, "big"); +}; +var C$3 = r$c; +var s$g = {}; +var n$k = r$b.rotr32; +function r$d(t6, h6, i6) { + return t6 & h6 ^ ~t6 & i6; +} +function e$e(t6, h6, i6) { + return t6 & h6 ^ t6 & i6 ^ h6 & i6; +} +function o$j(t6, h6, i6) { + return t6 ^ h6 ^ i6; +} +s$g.ft_1 = function(t6, h6, i6, s6) { + return 0 === t6 ? r$d(h6, i6, s6) : 1 === t6 || 3 === t6 ? o$j(h6, i6, s6) : 2 === t6 ? e$e(h6, i6, s6) : void 0; +}, s$g.ch32 = r$d, s$g.maj32 = e$e, s$g.p32 = o$j, s$g.s0_256 = function(t6) { + return n$k(t6, 2) ^ n$k(t6, 13) ^ n$k(t6, 22); +}, s$g.s1_256 = function(t6) { + return n$k(t6, 6) ^ n$k(t6, 11) ^ n$k(t6, 25); +}, s$g.g0_256 = function(t6) { + return n$k(t6, 7) ^ n$k(t6, 18) ^ t6 >>> 3; +}, s$g.g1_256 = function(t6) { + return n$k(t6, 17) ^ n$k(t6, 19) ^ t6 >>> 10; +}; +var u$g; +var a$j = r$b; +var c$g = a$h; +var f$l = s$g; +var _$b = o$7; +var g$b = a$j.sum32; +var m$d = a$j.sum32_4; +var p$h = a$j.sum32_5; +var l$h = f$l.ch32; +var v$c = f$l.maj32; +var d$g = f$l.s0_256; +var k$9 = f$l.s1_256; +var b$9 = f$l.g0_256; +var j$3 = f$l.g1_256; +var x$4 = c$g.BlockHash; +var y$c = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; +function S$7() { + if (!(this instanceof S$7)) + return new S$7(); + x$4.call(this), this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], this.k = y$c, this.W = new Array(64); +} +a$j.inherits(S$7, x$4), u$g = S$7, S$7.blockSize = 512, S$7.outSize = 256, S$7.hmacStrength = 192, S$7.padLength = 64, S$7.prototype._update = function(t6, h6) { + for (var i6 = this.W, s6 = 0; s6 < 16; s6++) + i6[s6] = t6[h6 + s6]; + for (; s6 < i6.length; s6++) + i6[s6] = m$d(j$3(i6[s6 - 2]), i6[s6 - 7], b$9(i6[s6 - 15]), i6[s6 - 16]); + var n6 = this.h[0], r6 = this.h[1], e8 = this.h[2], o6 = this.h[3], u6 = this.h[4], a6 = this.h[5], c6 = this.h[6], f7 = this.h[7]; + for (_$b(this.k.length === i6.length), s6 = 0; s6 < i6.length; s6++) { + var x4 = p$h(f7, k$9(u6), l$h(u6, a6, c6), this.k[s6], i6[s6]), y5 = g$b(d$g(n6), v$c(n6, r6, e8)); + f7 = c6, c6 = a6, a6 = u6, u6 = g$b(o6, x4), o6 = e8, e8 = r6, r6 = n6, n6 = g$b(x4, y5); + } + this.h[0] = g$b(this.h[0], n6), this.h[1] = g$b(this.h[1], r6), this.h[2] = g$b(this.h[2], e8), this.h[3] = g$b(this.h[3], o6), this.h[4] = g$b(this.h[4], u6), this.h[5] = g$b(this.h[5], a6), this.h[6] = g$b(this.h[6], c6), this.h[7] = g$b(this.h[7], f7); +}, S$7.prototype._digest = function(t6) { + return "hex" === t6 ? a$j.toHex32(this.h, "big") : a$j.split32(this.h, "big"); +}; +var w$c = u$g; +var r$e; +var o$k = r$b; +var a$k = a$h; +var u$h = s$g; +var l$i = o$k.rotl32; +var c$h = o$k.sum32; +var p$i = o$k.sum32_5; +var f$m = u$h.ft_1; +var g$c = a$k.BlockHash; +var d$h = [1518500249, 1859775393, 2400959708, 3395469782]; +function m$e() { + if (!(this instanceof m$e)) + return new m$e(); + g$c.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.W = new Array(80); +} +o$k.inherits(m$e, g$c), r$e = m$e, m$e.blockSize = 512, m$e.outSize = 160, m$e.hmacStrength = 80, m$e.padLength = 64, m$e.prototype._update = function(t6, h6) { + for (var i6 = this.W, s6 = 0; s6 < 16; s6++) + i6[s6] = t6[h6 + s6]; + for (; s6 < i6.length; s6++) + i6[s6] = l$i(i6[s6 - 3] ^ i6[s6 - 8] ^ i6[s6 - 14] ^ i6[s6 - 16], 1); + var e8 = this.h[0], n6 = this.h[1], r6 = this.h[2], o6 = this.h[3], a6 = this.h[4]; + for (s6 = 0; s6 < i6.length; s6++) { + var u6 = ~~(s6 / 20), g4 = p$i(l$i(e8, 5), f$m(u6, n6, r6, o6), a6, i6[s6], d$h[u6]); + a6 = o6, o6 = r6, r6 = l$i(n6, 30), n6 = e8, e8 = g4; + } + this.h[0] = c$h(this.h[0], e8), this.h[1] = c$h(this.h[1], n6), this.h[2] = c$h(this.h[2], r6), this.h[3] = c$h(this.h[3], o6), this.h[4] = c$h(this.h[4], a6); +}, m$e.prototype._digest = function(t6) { + return "hex" === t6 ? o$k.toHex32(this.h, "big") : o$k.split32(this.h, "big"); +}; +var S$8; +var _$c = r$e; +var b$a = r$b; +var z$5 = w$c; +function v$d() { + if (!(this instanceof v$d)) + return new v$d(); + z$5.call(this), this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]; +} +b$a.inherits(v$d, z$5), S$8 = v$d, v$d.blockSize = 512, v$d.outSize = 224, v$d.hmacStrength = 192, v$d.padLength = 64, v$d.prototype._digest = function(t6) { + return "hex" === t6 ? b$a.toHex32(this.h.slice(0, 7), "big") : b$a.split32(this.h.slice(0, 7), "big"); +}; +var k$a; +var y$d = S$8; +var H$4 = r$b; +var w$d = C$3; +function x$5() { + if (!(this instanceof x$5)) + return new x$5(); + w$d.call(this), this.h = [3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, 1203062813, 3204075428]; +} +H$4.inherits(x$5, w$d), k$a = x$5, x$5.blockSize = 1024, x$5.outSize = 384, x$5.hmacStrength = 192, x$5.padLength = 128, x$5.prototype._digest = function(t6) { + return "hex" === t6 ? H$4.toHex32(this.h.slice(0, 12), "big") : H$4.split32(this.h.slice(0, 12), "big"); +}; +var L$3 = k$a; +var j$4 = {}; +j$4.sha1 = _$c, j$4.sha224 = y$d, j$4.sha256 = w$c, j$4.sha384 = L$3, j$4.sha512 = C$3; +var A$7 = {}; +var B$7 = r$b; +var W$2 = a$h; +var q$3 = B$7.rotl32; +var C$4 = B$7.sum32; +var D$3 = B$7.sum32_3; +var E$7 = B$7.sum32_4; +var F$4 = W$2.BlockHash; +function G$2() { + if (!(this instanceof G$2)) + return new G$2(); + F$4.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.endian = "little"; +} +function I$7(t6, h6, i6, s6) { + return t6 <= 15 ? h6 ^ i6 ^ s6 : t6 <= 31 ? h6 & i6 | ~h6 & s6 : t6 <= 47 ? (h6 | ~i6) ^ s6 : t6 <= 63 ? h6 & s6 | i6 & ~s6 : h6 ^ (i6 | ~s6); +} +function J$2(t6) { + return t6 <= 15 ? 0 : t6 <= 31 ? 1518500249 : t6 <= 47 ? 1859775393 : t6 <= 63 ? 2400959708 : 2840853838; +} +function K$3(t6) { + return t6 <= 15 ? 1352829926 : t6 <= 31 ? 1548603684 : t6 <= 47 ? 1836072691 : t6 <= 63 ? 2053994217 : 0; +} +B$7.inherits(G$2, F$4), A$7.ripemd160 = G$2, G$2.blockSize = 512, G$2.outSize = 160, G$2.hmacStrength = 192, G$2.padLength = 64, G$2.prototype._update = function(t6, h6) { + for (var i6 = this.h[0], s6 = this.h[1], e8 = this.h[2], n6 = this.h[3], r6 = this.h[4], o6 = i6, a6 = s6, u6 = e8, l6 = n6, c6 = r6, p6 = 0; p6 < 80; p6++) { + var f7 = C$4(q$3(E$7(i6, I$7(p6, s6, e8, n6), t6[N$3[p6] + h6], J$2(p6)), P$3[p6]), r6); + i6 = r6, r6 = n6, n6 = q$3(e8, 10), e8 = s6, s6 = f7, f7 = C$4(q$3(E$7(o6, I$7(79 - p6, a6, u6, l6), t6[O$4[p6] + h6], K$3(p6)), Q$1[p6]), c6), o6 = c6, c6 = l6, l6 = q$3(u6, 10), u6 = a6, a6 = f7; + } + f7 = D$3(this.h[1], e8, l6), this.h[1] = D$3(this.h[2], n6, c6), this.h[2] = D$3(this.h[3], r6, o6), this.h[3] = D$3(this.h[4], i6, a6), this.h[4] = D$3(this.h[0], s6, u6), this.h[0] = f7; +}, G$2.prototype._digest = function(t6) { + return "hex" === t6 ? B$7.toHex32(this.h, "little") : B$7.split32(this.h, "little"); +}; +var M$5; +var N$3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; +var O$4 = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; +var P$3 = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; +var Q$1 = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; +var R$2 = r$b; +var T$4 = o$7; +function U$5(t6, h6, i6) { + if (!(this instanceof U$5)) + return new U$5(t6, h6, i6); + this.Hash = t6, this.blockSize = t6.blockSize / 8, this.outSize = t6.outSize / 8, this.inner = null, this.outer = null, this._init(R$2.toArray(h6, i6)); +} +M$5 = U$5, U$5.prototype._init = function(t6) { + t6.length > this.blockSize && (t6 = new this.Hash().update(t6).digest()), T$4(t6.length <= this.blockSize); + for (var h6 = t6.length; h6 < this.blockSize; h6++) + t6.push(0); + for (h6 = 0; h6 < t6.length; h6++) + t6[h6] ^= 54; + for (this.inner = new this.Hash().update(t6), h6 = 0; h6 < t6.length; h6++) + t6[h6] ^= 106; + this.outer = new this.Hash().update(t6); +}, U$5.prototype.update = function(t6, h6) { + return this.inner.update(t6, h6), this; +}, U$5.prototype.digest = function(t6) { + return this.outer.update(this.inner.digest()), this.outer.digest(t6); +}; +var V$2 = M$5; +var X$2 = {}; +var Y$1 = X$2; +Y$1.utils = r$b, Y$1.common = a$h, Y$1.sha = j$4, Y$1.ripemd = A$7, Y$1.hmac = V$2, Y$1.sha1 = Y$1.sha.sha1, Y$1.sha256 = Y$1.sha.sha256, Y$1.sha224 = Y$1.sha.sha224, Y$1.sha384 = Y$1.sha.sha384, Y$1.sha512 = Y$1.sha.sha512, Y$1.ripemd160 = Y$1.ripemd.ripemd160; +var s$h; +var h$e = X$2; +var r$f = r$a; +var n$l = o$7; +function o$l(t6) { + if (!(this instanceof o$l)) + return new o$l(t6); + this.hash = t6.hash, this.predResist = !!t6.predResist, this.outLen = this.hash.outSize, this.minEntropy = t6.minEntropy || this.hash.hmacStrength, this._reseed = null, this.reseedInterval = null, this.K = null, this.V = null; + var e8 = r$f.toArray(t6.entropy, t6.entropyEnc || "hex"), i6 = r$f.toArray(t6.nonce, t6.nonceEnc || "hex"), s6 = r$f.toArray(t6.pers, t6.persEnc || "hex"); + n$l(e8.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._init(e8, i6, s6); +} +s$h = o$l, o$l.prototype._init = function(t6, e8, i6) { + var s6 = t6.concat(e8).concat(i6); + this.K = new Array(this.outLen / 8), this.V = new Array(this.outLen / 8); + for (var h6 = 0; h6 < this.V.length; h6++) + this.K[h6] = 0, this.V[h6] = 1; + this._update(s6), this._reseed = 1, this.reseedInterval = 281474976710656; +}, o$l.prototype._hmac = function() { + return new h$e.hmac(this.hash, this.K); +}, o$l.prototype._update = function(t6) { + var e8 = this._hmac().update(this.V).update([0]); + t6 && (e8 = e8.update(t6)), this.K = e8.digest(), this.V = this._hmac().update(this.V).digest(), t6 && (this.K = this._hmac().update(this.V).update([1]).update(t6).digest(), this.V = this._hmac().update(this.V).digest()); +}, o$l.prototype.reseed = function(t6, e8, i6, s6) { + "string" != typeof e8 && (s6 = i6, i6 = e8, e8 = null), t6 = r$f.toArray(t6, e8), i6 = r$f.toArray(i6, s6), n$l(t6.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._update(t6.concat(i6 || [])), this._reseed = 1; +}, o$l.prototype.generate = function(t6, e8, i6, s6) { + if (this._reseed > this.reseedInterval) + throw new Error("Reseed is required"); + "string" != typeof e8 && (s6 = i6, i6 = e8, e8 = null), i6 && (i6 = r$f.toArray(i6, s6 || "hex"), this._update(i6)); + for (var h6 = []; h6.length < t6; ) + this.V = this._hmac().update(this.V).digest(), h6 = h6.concat(this.V); + var n6 = h6.slice(0, t6); + return this._update(i6), this._reseed++, r$f.encode(n6, e8); +}; +var a$l = s$h; +var b$b; +var i$9 = n$c; +var n$m = n$i; +var s$i = n$m.getNAF; +var o$m = n$m.getJSF; +var u$i = n$m.assert; +function h$f(e8, f7) { + this.type = e8, this.p = new i$9(f7.p, 16), this.red = f7.prime ? i$9.red(f7.prime) : i$9.mont(this.p), this.zero = new i$9(0).toRed(this.red), this.one = new i$9(1).toRed(this.red), this.two = new i$9(2).toRed(this.red), this.n = f7.n && new i$9(f7.n, 16), this.g = f7.g && this.pointFromJSON(f7.g, f7.gRed), this._wnafT1 = new Array(4), this._wnafT2 = new Array(4), this._wnafT3 = new Array(4), this._wnafT4 = new Array(4), this._bitLength = this.n ? this.n.bitLength() : 0; + var d5 = this.n && this.p.div(this.n); + !d5 || d5.cmpn(100) > 0 ? this.redN = null : (this._maxwellTrick = true, this.redN = this.n.toRed(this.red)); +} +function p$j(e8, f7) { + this.curve = e8, this.type = f7, this.precomputed = null; +} +b$b = h$f, h$f.prototype.point = function() { + throw new Error("Not implemented"); +}, h$f.prototype.validate = function() { + throw new Error("Not implemented"); +}, h$f.prototype._fixedNafMul = function(e8, f7) { + u$i(e8.precomputed); + var d5 = e8._getDoubles(), c6 = s$i(f7, 1, this._bitLength), t6 = (1 << d5.step + 1) - (d5.step % 2 == 0 ? 2 : 1); + t6 /= 3; + for (var a6 = [], r6 = 0; r6 < c6.length; r6 += d5.step) { + var b4 = 0; + for (f7 = r6 + d5.step - 1; f7 >= r6; f7--) + b4 = (b4 << 1) + c6[f7]; + a6.push(b4); + } + for (var i6 = this.jpoint(null, null, null), n6 = this.jpoint(null, null, null), o6 = t6; o6 > 0; o6--) { + for (r6 = 0; r6 < a6.length; r6++) { + (b4 = a6[r6]) === o6 ? n6 = n6.mixedAdd(d5.points[r6]) : b4 === -o6 && (n6 = n6.mixedAdd(d5.points[r6].neg())); + } + i6 = i6.add(n6); + } + return i6.toP(); +}, h$f.prototype._wnafMul = function(e8, f7) { + var d5 = 4, c6 = e8._getNAFPoints(d5); + d5 = c6.wnd; + for (var t6 = c6.points, a6 = s$i(f7, d5, this._bitLength), r6 = this.jpoint(null, null, null), b4 = a6.length - 1; b4 >= 0; b4--) { + for (f7 = 0; b4 >= 0 && 0 === a6[b4]; b4--) + f7++; + if (b4 >= 0 && f7++, r6 = r6.dblp(f7), b4 < 0) + break; + var i6 = a6[b4]; + u$i(0 !== i6), r6 = "affine" === e8.type ? i6 > 0 ? r6.mixedAdd(t6[i6 - 1 >> 1]) : r6.mixedAdd(t6[-i6 - 1 >> 1].neg()) : i6 > 0 ? r6.add(t6[i6 - 1 >> 1]) : r6.add(t6[-i6 - 1 >> 1].neg()); + } + return "affine" === e8.type ? r6.toP() : r6; +}, h$f.prototype._wnafMulAdd = function(e8, f7, d5, c6, t6) { + for (var a6 = this._wnafT1, r6 = this._wnafT2, b4 = this._wnafT3, i6 = 0, n6 = 0; n6 < c6; n6++) { + var u6 = (x4 = f7[n6])._getNAFPoints(e8); + a6[n6] = u6.wnd, r6[n6] = u6.points; + } + for (n6 = c6 - 1; n6 >= 1; n6 -= 2) { + var h6 = n6 - 1, p6 = n6; + if (1 === a6[h6] && 1 === a6[p6]) { + var l6 = [f7[h6], null, null, f7[p6]]; + 0 === f7[h6].y.cmp(f7[p6].y) ? (l6[1] = f7[h6].add(f7[p6]), l6[2] = f7[h6].toJ().mixedAdd(f7[p6].neg())) : 0 === f7[h6].y.cmp(f7[p6].y.redNeg()) ? (l6[1] = f7[h6].toJ().mixedAdd(f7[p6]), l6[2] = f7[h6].add(f7[p6].neg())) : (l6[1] = f7[h6].toJ().mixedAdd(f7[p6]), l6[2] = f7[h6].toJ().mixedAdd(f7[p6].neg())); + var v5 = [-3, -1, -5, -7, 0, 7, 5, 1, 3], y5 = o$m(d5[h6], d5[p6]); + i6 = Math.max(y5[0].length, i6), b4[h6] = new Array(i6), b4[p6] = new Array(i6); + for (var m5 = 0; m5 < i6; m5++) { + var S4 = 0 | y5[0][m5], g4 = 0 | y5[1][m5]; + b4[h6][m5] = v5[3 * (S4 + 1) + (g4 + 1)], b4[p6][m5] = 0, r6[h6] = l6; + } + } else + b4[h6] = s$i(d5[h6], a6[h6], this._bitLength), b4[p6] = s$i(d5[p6], a6[p6], this._bitLength), i6 = Math.max(b4[h6].length, i6), i6 = Math.max(b4[p6].length, i6); + } + var A4 = this.jpoint(null, null, null), I4 = this._wnafT4; + for (n6 = i6; n6 >= 0; n6--) { + for (var w4 = 0; n6 >= 0; ) { + var M4 = true; + for (m5 = 0; m5 < c6; m5++) + I4[m5] = 0 | b4[m5][n6], 0 !== I4[m5] && (M4 = false); + if (!M4) + break; + w4++, n6--; + } + if (n6 >= 0 && w4++, A4 = A4.dblp(w4), n6 < 0) + break; + for (m5 = 0; m5 < c6; m5++) { + var x4, _4 = I4[m5]; + 0 !== _4 && (_4 > 0 ? x4 = r6[m5][_4 - 1 >> 1] : _4 < 0 && (x4 = r6[m5][-_4 - 1 >> 1].neg()), A4 = "affine" === x4.type ? A4.mixedAdd(x4) : A4.add(x4)); + } + } + for (n6 = 0; n6 < c6; n6++) + r6[n6] = null; + return t6 ? A4 : A4.toP(); +}, h$f.BasePoint = p$j, p$j.prototype.eq = function() { + throw new Error("Not implemented"); +}, p$j.prototype.validate = function() { + return this.curve.validate(this); +}, h$f.prototype.decodePoint = function(e8, f7) { + e8 = n$m.toArray(e8, f7); + var d5 = this.p.byteLength(); + if ((4 === e8[0] || 6 === e8[0] || 7 === e8[0]) && e8.length - 1 == 2 * d5) + return 6 === e8[0] ? u$i(e8[e8.length - 1] % 2 == 0) : 7 === e8[0] && u$i(e8[e8.length - 1] % 2 == 1), this.point(e8.slice(1, 1 + d5), e8.slice(1 + d5, 1 + 2 * d5)); + if ((2 === e8[0] || 3 === e8[0]) && e8.length - 1 === d5) + return this.pointFromX(e8.slice(1, 1 + d5), 3 === e8[0]); + throw new Error("Unknown point format"); +}, p$j.prototype.encodeCompressed = function(e8) { + return this.encode(e8, true); +}, p$j.prototype._encode = function(e8) { + var f7 = this.curve.p.byteLength(), d5 = this.getX().toArray("be", f7); + return e8 ? [this.getY().isEven() ? 2 : 3].concat(d5) : [4].concat(d5, this.getY().toArray("be", f7)); +}, p$j.prototype.encode = function(e8, f7) { + return n$m.encode(this._encode(f7), e8); +}, p$j.prototype.precompute = function(e8) { + if (this.precomputed) + return this; + var f7 = { doubles: null, naf: null, beta: null }; + return f7.naf = this._getNAFPoints(8), f7.doubles = this._getDoubles(4, e8), f7.beta = this._getBeta(), this.precomputed = f7, this; +}, p$j.prototype._hasDoubles = function(e8) { + if (!this.precomputed) + return false; + var f7 = this.precomputed.doubles; + return !!f7 && f7.points.length >= Math.ceil((e8.bitLength() + 1) / f7.step); +}, p$j.prototype._getDoubles = function(e8, f7) { + if (this.precomputed && this.precomputed.doubles) + return this.precomputed.doubles; + for (var d5 = [this], c6 = this, t6 = 0; t6 < f7; t6 += e8) { + for (var a6 = 0; a6 < e8; a6++) + c6 = c6.dbl(); + d5.push(c6); + } + return { step: e8, points: d5 }; +}, p$j.prototype._getNAFPoints = function(e8) { + if (this.precomputed && this.precomputed.naf) + return this.precomputed.naf; + for (var f7 = [this], d5 = (1 << e8) - 1, c6 = 1 === d5 ? null : this.dbl(), t6 = 1; t6 < d5; t6++) + f7[t6] = f7[t6 - 1].add(c6); + return { wnd: e8, points: f7 }; +}, p$j.prototype._getBeta = function() { + return null; +}, p$j.prototype.dblp = function(e8) { + for (var f7 = this, d5 = 0; d5 < e8; d5++) + f7 = f7.dbl(); + return f7; +}; +var l$j; +var v$e = b$b; +var y$e = n$c; +var m$f = t$2; +var S$9 = v$e; +var g$d = n$i.assert; +function A$8(e8) { + S$9.call(this, "short", e8), this.a = new y$e(e8.a, 16).toRed(this.red), this.b = new y$e(e8.b, 16).toRed(this.red), this.tinv = this.two.redInvm(), this.zeroA = 0 === this.a.fromRed().cmpn(0), this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3), this.endo = this._getEndomorphism(e8), this._endoWnafT1 = new Array(4), this._endoWnafT2 = new Array(4); +} +function I$8(e8, f7, d5, c6) { + S$9.BasePoint.call(this, e8, "affine"), null === f7 && null === d5 ? (this.x = null, this.y = null, this.inf = true) : (this.x = new y$e(f7, 16), this.y = new y$e(d5, 16), c6 && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.inf = false); +} +function w$e(e8, f7, d5, c6) { + S$9.BasePoint.call(this, e8, "jacobian"), null === f7 && null === d5 && null === c6 ? (this.x = this.curve.one, this.y = this.curve.one, this.z = new y$e(0)) : (this.x = new y$e(f7, 16), this.y = new y$e(d5, 16), this.z = new y$e(c6, 16)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)), this.zOne = this.z === this.curve.one; +} +m$f(A$8, S$9), l$j = A$8, A$8.prototype._getEndomorphism = function(e8) { + if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { + var f7, d5; + if (e8.beta) + f7 = new y$e(e8.beta, 16).toRed(this.red); + else { + var c6 = this._getEndoRoots(this.p); + f7 = (f7 = c6[0].cmp(c6[1]) < 0 ? c6[0] : c6[1]).toRed(this.red); + } + if (e8.lambda) + d5 = new y$e(e8.lambda, 16); + else { + var t6 = this._getEndoRoots(this.n); + 0 === this.g.mul(t6[0]).x.cmp(this.g.x.redMul(f7)) ? d5 = t6[0] : (d5 = t6[1], g$d(0 === this.g.mul(d5).x.cmp(this.g.x.redMul(f7)))); + } + return { beta: f7, lambda: d5, basis: e8.basis ? e8.basis.map(function(e9) { + return { a: new y$e(e9.a, 16), b: new y$e(e9.b, 16) }; + }) : this._getEndoBasis(d5) }; + } +}, A$8.prototype._getEndoRoots = function(e8) { + var f7 = e8 === this.p ? this.red : y$e.mont(e8), d5 = new y$e(2).toRed(f7).redInvm(), c6 = d5.redNeg(), t6 = new y$e(3).toRed(f7).redNeg().redSqrt().redMul(d5); + return [c6.redAdd(t6).fromRed(), c6.redSub(t6).fromRed()]; +}, A$8.prototype._getEndoBasis = function(e8) { + for (var f7, d5, c6, t6, a6, r6, b4, i6, n6, s6 = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), o6 = e8, u6 = this.n.clone(), h6 = new y$e(1), p6 = new y$e(0), l6 = new y$e(0), v5 = new y$e(1), m5 = 0; 0 !== o6.cmpn(0); ) { + var S4 = u6.div(o6); + i6 = u6.sub(S4.mul(o6)), n6 = l6.sub(S4.mul(h6)); + var g4 = v5.sub(S4.mul(p6)); + if (!c6 && i6.cmp(s6) < 0) + f7 = b4.neg(), d5 = h6, c6 = i6.neg(), t6 = n6; + else if (c6 && 2 == ++m5) + break; + b4 = i6, u6 = o6, o6 = i6, l6 = h6, h6 = n6, v5 = p6, p6 = g4; + } + a6 = i6.neg(), r6 = n6; + var A4 = c6.sqr().add(t6.sqr()); + return a6.sqr().add(r6.sqr()).cmp(A4) >= 0 && (a6 = f7, r6 = d5), c6.negative && (c6 = c6.neg(), t6 = t6.neg()), a6.negative && (a6 = a6.neg(), r6 = r6.neg()), [{ a: c6, b: t6 }, { a: a6, b: r6 }]; +}, A$8.prototype._endoSplit = function(e8) { + var f7 = this.endo.basis, d5 = f7[0], c6 = f7[1], t6 = c6.b.mul(e8).divRound(this.n), a6 = d5.b.neg().mul(e8).divRound(this.n), r6 = t6.mul(d5.a), b4 = a6.mul(c6.a), i6 = t6.mul(d5.b), n6 = a6.mul(c6.b); + return { k1: e8.sub(r6).sub(b4), k2: i6.add(n6).neg() }; +}, A$8.prototype.pointFromX = function(e8, f7) { + (e8 = new y$e(e8, 16)).red || (e8 = e8.toRed(this.red)); + var d5 = e8.redSqr().redMul(e8).redIAdd(e8.redMul(this.a)).redIAdd(this.b), c6 = d5.redSqrt(); + if (0 !== c6.redSqr().redSub(d5).cmp(this.zero)) + throw new Error("invalid point"); + var t6 = c6.fromRed().isOdd(); + return (f7 && !t6 || !f7 && t6) && (c6 = c6.redNeg()), this.point(e8, c6); +}, A$8.prototype.validate = function(e8) { + if (e8.inf) + return true; + var f7 = e8.x, d5 = e8.y, c6 = this.a.redMul(f7), t6 = f7.redSqr().redMul(f7).redIAdd(c6).redIAdd(this.b); + return 0 === d5.redSqr().redISub(t6).cmpn(0); +}, A$8.prototype._endoWnafMulAdd = function(e8, f7, d5) { + for (var c6 = this._endoWnafT1, t6 = this._endoWnafT2, a6 = 0; a6 < e8.length; a6++) { + var r6 = this._endoSplit(f7[a6]), b4 = e8[a6], i6 = b4._getBeta(); + r6.k1.negative && (r6.k1.ineg(), b4 = b4.neg(true)), r6.k2.negative && (r6.k2.ineg(), i6 = i6.neg(true)), c6[2 * a6] = b4, c6[2 * a6 + 1] = i6, t6[2 * a6] = r6.k1, t6[2 * a6 + 1] = r6.k2; + } + for (var n6 = this._wnafMulAdd(1, c6, t6, 2 * a6, d5), s6 = 0; s6 < 2 * a6; s6++) + c6[s6] = null, t6[s6] = null; + return n6; +}, m$f(I$8, S$9.BasePoint), A$8.prototype.point = function(e8, f7, d5) { + return new I$8(this, e8, f7, d5); +}, A$8.prototype.pointFromJSON = function(e8, f7) { + return I$8.fromJSON(this, e8, f7); +}, I$8.prototype._getBeta = function() { + if (this.curve.endo) { + var e8 = this.precomputed; + if (e8 && e8.beta) + return e8.beta; + var f7 = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); + if (e8) { + var d5 = this.curve, c6 = function(e9) { + return d5.point(e9.x.redMul(d5.endo.beta), e9.y); + }; + e8.beta = f7, f7.precomputed = { beta: null, naf: e8.naf && { wnd: e8.naf.wnd, points: e8.naf.points.map(c6) }, doubles: e8.doubles && { step: e8.doubles.step, points: e8.doubles.points.map(c6) } }; + } + return f7; + } +}, I$8.prototype.toJSON = function() { + return this.precomputed ? [this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) } }] : [this.x, this.y]; +}, I$8.fromJSON = function(e8, f7, d5) { + "string" == typeof f7 && (f7 = JSON.parse(f7)); + var c6 = e8.point(f7[0], f7[1], d5); + if (!f7[2]) + return c6; + function t6(f8) { + return e8.point(f8[0], f8[1], d5); + } + var a6 = f7[2]; + return c6.precomputed = { beta: null, doubles: a6.doubles && { step: a6.doubles.step, points: [c6].concat(a6.doubles.points.map(t6)) }, naf: a6.naf && { wnd: a6.naf.wnd, points: [c6].concat(a6.naf.points.map(t6)) } }, c6; +}, I$8.prototype.inspect = function() { + return this.isInfinity() ? "" : ""; +}, I$8.prototype.isInfinity = function() { + return this.inf; +}, I$8.prototype.add = function(e8) { + if (this.inf) + return e8; + if (e8.inf) + return this; + if (this.eq(e8)) + return this.dbl(); + if (this.neg().eq(e8)) + return this.curve.point(null, null); + if (0 === this.x.cmp(e8.x)) + return this.curve.point(null, null); + var f7 = this.y.redSub(e8.y); + 0 !== f7.cmpn(0) && (f7 = f7.redMul(this.x.redSub(e8.x).redInvm())); + var d5 = f7.redSqr().redISub(this.x).redISub(e8.x), c6 = f7.redMul(this.x.redSub(d5)).redISub(this.y); + return this.curve.point(d5, c6); +}, I$8.prototype.dbl = function() { + if (this.inf) + return this; + var e8 = this.y.redAdd(this.y); + if (0 === e8.cmpn(0)) + return this.curve.point(null, null); + var f7 = this.curve.a, d5 = this.x.redSqr(), c6 = e8.redInvm(), t6 = d5.redAdd(d5).redIAdd(d5).redIAdd(f7).redMul(c6), a6 = t6.redSqr().redISub(this.x.redAdd(this.x)), r6 = t6.redMul(this.x.redSub(a6)).redISub(this.y); + return this.curve.point(a6, r6); +}, I$8.prototype.getX = function() { + return this.x.fromRed(); +}, I$8.prototype.getY = function() { + return this.y.fromRed(); +}, I$8.prototype.mul = function(e8) { + return e8 = new y$e(e8, 16), this.isInfinity() ? this : this._hasDoubles(e8) ? this.curve._fixedNafMul(this, e8) : this.curve.endo ? this.curve._endoWnafMulAdd([this], [e8]) : this.curve._wnafMul(this, e8); +}, I$8.prototype.mulAdd = function(e8, f7, d5) { + var c6 = [this, f7], t6 = [e8, d5]; + return this.curve.endo ? this.curve._endoWnafMulAdd(c6, t6) : this.curve._wnafMulAdd(1, c6, t6, 2); +}, I$8.prototype.jmulAdd = function(e8, f7, d5) { + var c6 = [this, f7], t6 = [e8, d5]; + return this.curve.endo ? this.curve._endoWnafMulAdd(c6, t6, true) : this.curve._wnafMulAdd(1, c6, t6, 2, true); +}, I$8.prototype.eq = function(e8) { + return this === e8 || this.inf === e8.inf && (this.inf || 0 === this.x.cmp(e8.x) && 0 === this.y.cmp(e8.y)); +}, I$8.prototype.neg = function(e8) { + if (this.inf) + return this; + var f7 = this.curve.point(this.x, this.y.redNeg()); + if (e8 && this.precomputed) { + var d5 = this.precomputed, c6 = function(e9) { + return e9.neg(); + }; + f7.precomputed = { naf: d5.naf && { wnd: d5.naf.wnd, points: d5.naf.points.map(c6) }, doubles: d5.doubles && { step: d5.doubles.step, points: d5.doubles.points.map(c6) } }; + } + return f7; +}, I$8.prototype.toJ = function() { + return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x, this.y, this.curve.one); +}, m$f(w$e, S$9.BasePoint), A$8.prototype.jpoint = function(e8, f7, d5) { + return new w$e(this, e8, f7, d5); +}, w$e.prototype.toP = function() { + if (this.isInfinity()) + return this.curve.point(null, null); + var e8 = this.z.redInvm(), f7 = e8.redSqr(), d5 = this.x.redMul(f7), c6 = this.y.redMul(f7).redMul(e8); + return this.curve.point(d5, c6); +}, w$e.prototype.neg = function() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); +}, w$e.prototype.add = function(e8) { + if (this.isInfinity()) + return e8; + if (e8.isInfinity()) + return this; + var f7 = e8.z.redSqr(), d5 = this.z.redSqr(), c6 = this.x.redMul(f7), t6 = e8.x.redMul(d5), a6 = this.y.redMul(f7.redMul(e8.z)), r6 = e8.y.redMul(d5.redMul(this.z)), b4 = c6.redSub(t6), i6 = a6.redSub(r6); + if (0 === b4.cmpn(0)) + return 0 !== i6.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); + var n6 = b4.redSqr(), s6 = n6.redMul(b4), o6 = c6.redMul(n6), u6 = i6.redSqr().redIAdd(s6).redISub(o6).redISub(o6), h6 = i6.redMul(o6.redISub(u6)).redISub(a6.redMul(s6)), p6 = this.z.redMul(e8.z).redMul(b4); + return this.curve.jpoint(u6, h6, p6); +}, w$e.prototype.mixedAdd = function(e8) { + if (this.isInfinity()) + return e8.toJ(); + if (e8.isInfinity()) + return this; + var f7 = this.z.redSqr(), d5 = this.x, c6 = e8.x.redMul(f7), t6 = this.y, a6 = e8.y.redMul(f7).redMul(this.z), r6 = d5.redSub(c6), b4 = t6.redSub(a6); + if (0 === r6.cmpn(0)) + return 0 !== b4.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); + var i6 = r6.redSqr(), n6 = i6.redMul(r6), s6 = d5.redMul(i6), o6 = b4.redSqr().redIAdd(n6).redISub(s6).redISub(s6), u6 = b4.redMul(s6.redISub(o6)).redISub(t6.redMul(n6)), h6 = this.z.redMul(r6); + return this.curve.jpoint(o6, u6, h6); +}, w$e.prototype.dblp = function(e8) { + if (0 === e8) + return this; + if (this.isInfinity()) + return this; + if (!e8) + return this.dbl(); + if (this.curve.zeroA || this.curve.threeA) { + for (var f7 = this, d5 = 0; d5 < e8; d5++) + f7 = f7.dbl(); + return f7; + } + var c6 = this.curve.a, t6 = this.curve.tinv, a6 = this.x, r6 = this.y, b4 = this.z, i6 = b4.redSqr().redSqr(), n6 = r6.redAdd(r6); + for (d5 = 0; d5 < e8; d5++) { + var s6 = a6.redSqr(), o6 = n6.redSqr(), u6 = o6.redSqr(), h6 = s6.redAdd(s6).redIAdd(s6).redIAdd(c6.redMul(i6)), p6 = a6.redMul(o6), l6 = h6.redSqr().redISub(p6.redAdd(p6)), v5 = p6.redISub(l6), y5 = h6.redMul(v5); + y5 = y5.redIAdd(y5).redISub(u6); + var m5 = n6.redMul(b4); + d5 + 1 < e8 && (i6 = i6.redMul(u6)), a6 = l6, b4 = m5, n6 = y5; + } + return this.curve.jpoint(a6, n6.redMul(t6), b4); +}, w$e.prototype.dbl = function() { + return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve.threeA ? this._threeDbl() : this._dbl(); +}, w$e.prototype._zeroDbl = function() { + var e8, f7, d5; + if (this.zOne) { + var c6 = this.x.redSqr(), t6 = this.y.redSqr(), a6 = t6.redSqr(), r6 = this.x.redAdd(t6).redSqr().redISub(c6).redISub(a6); + r6 = r6.redIAdd(r6); + var b4 = c6.redAdd(c6).redIAdd(c6), i6 = b4.redSqr().redISub(r6).redISub(r6), n6 = a6.redIAdd(a6); + n6 = (n6 = n6.redIAdd(n6)).redIAdd(n6), e8 = i6, f7 = b4.redMul(r6.redISub(i6)).redISub(n6), d5 = this.y.redAdd(this.y); + } else { + var s6 = this.x.redSqr(), o6 = this.y.redSqr(), u6 = o6.redSqr(), h6 = this.x.redAdd(o6).redSqr().redISub(s6).redISub(u6); + h6 = h6.redIAdd(h6); + var p6 = s6.redAdd(s6).redIAdd(s6), l6 = p6.redSqr(), v5 = u6.redIAdd(u6); + v5 = (v5 = v5.redIAdd(v5)).redIAdd(v5), e8 = l6.redISub(h6).redISub(h6), f7 = p6.redMul(h6.redISub(e8)).redISub(v5), d5 = (d5 = this.y.redMul(this.z)).redIAdd(d5); + } + return this.curve.jpoint(e8, f7, d5); +}, w$e.prototype._threeDbl = function() { + var e8, f7, d5; + if (this.zOne) { + var c6 = this.x.redSqr(), t6 = this.y.redSqr(), a6 = t6.redSqr(), r6 = this.x.redAdd(t6).redSqr().redISub(c6).redISub(a6); + r6 = r6.redIAdd(r6); + var b4 = c6.redAdd(c6).redIAdd(c6).redIAdd(this.curve.a), i6 = b4.redSqr().redISub(r6).redISub(r6); + e8 = i6; + var n6 = a6.redIAdd(a6); + n6 = (n6 = n6.redIAdd(n6)).redIAdd(n6), f7 = b4.redMul(r6.redISub(i6)).redISub(n6), d5 = this.y.redAdd(this.y); + } else { + var s6 = this.z.redSqr(), o6 = this.y.redSqr(), u6 = this.x.redMul(o6), h6 = this.x.redSub(s6).redMul(this.x.redAdd(s6)); + h6 = h6.redAdd(h6).redIAdd(h6); + var p6 = u6.redIAdd(u6), l6 = (p6 = p6.redIAdd(p6)).redAdd(p6); + e8 = h6.redSqr().redISub(l6), d5 = this.y.redAdd(this.z).redSqr().redISub(o6).redISub(s6); + var v5 = o6.redSqr(); + v5 = (v5 = (v5 = v5.redIAdd(v5)).redIAdd(v5)).redIAdd(v5), f7 = h6.redMul(p6.redISub(e8)).redISub(v5); + } + return this.curve.jpoint(e8, f7, d5); +}, w$e.prototype._dbl = function() { + var e8 = this.curve.a, f7 = this.x, d5 = this.y, c6 = this.z, t6 = c6.redSqr().redSqr(), a6 = f7.redSqr(), r6 = d5.redSqr(), b4 = a6.redAdd(a6).redIAdd(a6).redIAdd(e8.redMul(t6)), i6 = f7.redAdd(f7), n6 = (i6 = i6.redIAdd(i6)).redMul(r6), s6 = b4.redSqr().redISub(n6.redAdd(n6)), o6 = n6.redISub(s6), u6 = r6.redSqr(); + u6 = (u6 = (u6 = u6.redIAdd(u6)).redIAdd(u6)).redIAdd(u6); + var h6 = b4.redMul(o6).redISub(u6), p6 = d5.redAdd(d5).redMul(c6); + return this.curve.jpoint(s6, h6, p6); +}, w$e.prototype.trpl = function() { + if (!this.curve.zeroA) + return this.dbl().add(this); + var e8 = this.x.redSqr(), f7 = this.y.redSqr(), d5 = this.z.redSqr(), c6 = f7.redSqr(), t6 = e8.redAdd(e8).redIAdd(e8), a6 = t6.redSqr(), r6 = this.x.redAdd(f7).redSqr().redISub(e8).redISub(c6), b4 = (r6 = (r6 = (r6 = r6.redIAdd(r6)).redAdd(r6).redIAdd(r6)).redISub(a6)).redSqr(), i6 = c6.redIAdd(c6); + i6 = (i6 = (i6 = i6.redIAdd(i6)).redIAdd(i6)).redIAdd(i6); + var n6 = t6.redIAdd(r6).redSqr().redISub(a6).redISub(b4).redISub(i6), s6 = f7.redMul(n6); + s6 = (s6 = s6.redIAdd(s6)).redIAdd(s6); + var o6 = this.x.redMul(b4).redISub(s6); + o6 = (o6 = o6.redIAdd(o6)).redIAdd(o6); + var u6 = this.y.redMul(n6.redMul(i6.redISub(n6)).redISub(r6.redMul(b4))); + u6 = (u6 = (u6 = u6.redIAdd(u6)).redIAdd(u6)).redIAdd(u6); + var h6 = this.z.redAdd(r6).redSqr().redISub(d5).redISub(b4); + return this.curve.jpoint(o6, u6, h6); +}, w$e.prototype.mul = function(e8, f7) { + return e8 = new y$e(e8, f7), this.curve._wnafMul(this, e8); +}, w$e.prototype.eq = function(e8) { + if ("affine" === e8.type) + return this.eq(e8.toJ()); + if (this === e8) + return true; + var f7 = this.z.redSqr(), d5 = e8.z.redSqr(); + if (0 !== this.x.redMul(d5).redISub(e8.x.redMul(f7)).cmpn(0)) + return false; + var c6 = f7.redMul(this.z), t6 = d5.redMul(e8.z); + return 0 === this.y.redMul(t6).redISub(e8.y.redMul(c6)).cmpn(0); +}, w$e.prototype.eqXToP = function(e8) { + var f7 = this.z.redSqr(), d5 = e8.toRed(this.curve.red).redMul(f7); + if (0 === this.x.cmp(d5)) + return true; + for (var c6 = e8.clone(), t6 = this.curve.redN.redMul(f7); ; ) { + if (c6.iadd(this.curve.n), c6.cmp(this.curve.p) >= 0) + return false; + if (d5.redIAdd(t6), 0 === this.x.cmp(d5)) + return true; + } +}, w$e.prototype.inspect = function() { + return this.isInfinity() ? "" : ""; +}, w$e.prototype.isInfinity = function() { + return 0 === this.z.cmpn(0); +}; +var M$6; +var x$6 = l$j; +var _$d = n$c; +var z$6 = t$2; +var q$4 = v$e; +var R$3 = n$i; +function P$4(e8) { + q$4.call(this, "mont", e8), this.a = new _$d(e8.a, 16).toRed(this.red), this.b = new _$d(e8.b, 16).toRed(this.red), this.i4 = new _$d(4).toRed(this.red).redInvm(), this.two = new _$d(2).toRed(this.red), this.a24 = this.i4.redMul(this.a.redAdd(this.two)); +} +function j$5(e8, f7, d5) { + q$4.BasePoint.call(this, e8, "projective"), null === f7 && null === d5 ? (this.x = this.curve.one, this.z = this.curve.zero) : (this.x = new _$d(f7, 16), this.z = new _$d(d5, 16), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red))); +} +z$6(P$4, q$4), M$6 = P$4, P$4.prototype.validate = function(e8) { + var f7 = e8.normalize().x, d5 = f7.redSqr(), c6 = d5.redMul(f7).redAdd(d5.redMul(this.a)).redAdd(f7); + return 0 === c6.redSqrt().redSqr().cmp(c6); +}, z$6(j$5, q$4.BasePoint), P$4.prototype.decodePoint = function(e8, f7) { + return this.point(R$3.toArray(e8, f7), 1); +}, P$4.prototype.point = function(e8, f7) { + return new j$5(this, e8, f7); +}, P$4.prototype.pointFromJSON = function(e8) { + return j$5.fromJSON(this, e8); +}, j$5.prototype.precompute = function() { +}, j$5.prototype._encode = function() { + return this.getX().toArray("be", this.curve.p.byteLength()); +}, j$5.fromJSON = function(e8, f7) { + return new j$5(e8, f7[0], f7[1] || e8.one); +}, j$5.prototype.inspect = function() { + return this.isInfinity() ? "" : ""; +}, j$5.prototype.isInfinity = function() { + return 0 === this.z.cmpn(0); +}, j$5.prototype.dbl = function() { + var e8 = this.x.redAdd(this.z).redSqr(), f7 = this.x.redSub(this.z).redSqr(), d5 = e8.redSub(f7), c6 = e8.redMul(f7), t6 = d5.redMul(f7.redAdd(this.curve.a24.redMul(d5))); + return this.curve.point(c6, t6); +}, j$5.prototype.add = function() { + throw new Error("Not supported on Montgomery curve"); +}, j$5.prototype.diffAdd = function(e8, f7) { + var d5 = this.x.redAdd(this.z), c6 = this.x.redSub(this.z), t6 = e8.x.redAdd(e8.z), a6 = e8.x.redSub(e8.z).redMul(d5), r6 = t6.redMul(c6), b4 = f7.z.redMul(a6.redAdd(r6).redSqr()), i6 = f7.x.redMul(a6.redISub(r6).redSqr()); + return this.curve.point(b4, i6); +}, j$5.prototype.mul = function(e8) { + for (var f7 = e8.clone(), d5 = this, c6 = this.curve.point(null, null), t6 = []; 0 !== f7.cmpn(0); f7.iushrn(1)) + t6.push(f7.andln(1)); + for (var a6 = t6.length - 1; a6 >= 0; a6--) + 0 === t6[a6] ? (d5 = d5.diffAdd(c6, this), c6 = c6.dbl()) : (c6 = d5.diffAdd(c6, this), d5 = d5.dbl()); + return c6; +}, j$5.prototype.mulAdd = function() { + throw new Error("Not supported on Montgomery curve"); +}, j$5.prototype.jumlAdd = function() { + throw new Error("Not supported on Montgomery curve"); +}, j$5.prototype.eq = function(e8) { + return 0 === this.getX().cmp(e8.getX()); +}, j$5.prototype.normalize = function() { + return this.x = this.x.redMul(this.z.redInvm()), this.z = this.curve.one, this; +}, j$5.prototype.getX = function() { + return this.normalize(), this.x.fromRed(); +}; +var N$4; +var E$8 = M$6; +var k$b = n$c; +var O$5 = t$2; +var L$4 = v$e; +var B$8 = n$i.assert; +function F$5(e8) { + this.twisted = 1 != (0 | e8.a), this.mOneA = this.twisted && -1 == (0 | e8.a), this.extended = this.mOneA, L$4.call(this, "edwards", e8), this.a = new k$b(e8.a, 16).umod(this.red.m), this.a = this.a.toRed(this.red), this.c = new k$b(e8.c, 16).toRed(this.red), this.c2 = this.c.redSqr(), this.d = new k$b(e8.d, 16).toRed(this.red), this.dd = this.d.redAdd(this.d), B$8(!this.twisted || 0 === this.c.fromRed().cmpn(1)), this.oneC = 1 == (0 | e8.c); +} +function C$5(e8, f7, d5, c6, t6) { + L$4.BasePoint.call(this, e8, "projective"), null === f7 && null === d5 && null === c6 ? (this.x = this.curve.zero, this.y = this.curve.one, this.z = this.curve.one, this.t = this.curve.zero, this.zOne = true) : (this.x = new k$b(f7, 16), this.y = new k$b(d5, 16), this.z = c6 ? new k$b(c6, 16) : this.curve.one, this.t = t6 && new k$b(t6, 16), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)), this.t && !this.t.red && (this.t = this.t.toRed(this.curve.red)), this.zOne = this.z === this.curve.one, this.curve.extended && !this.t && (this.t = this.x.redMul(this.y), this.zOne || (this.t = this.t.redMul(this.z.redInvm())))); +} +O$5(F$5, L$4), N$4 = F$5, F$5.prototype._mulA = function(e8) { + return this.mOneA ? e8.redNeg() : this.a.redMul(e8); +}, F$5.prototype._mulC = function(e8) { + return this.oneC ? e8 : this.c.redMul(e8); +}, F$5.prototype.jpoint = function(e8, f7, d5, c6) { + return this.point(e8, f7, d5, c6); +}, F$5.prototype.pointFromX = function(e8, f7) { + (e8 = new k$b(e8, 16)).red || (e8 = e8.toRed(this.red)); + var d5 = e8.redSqr(), c6 = this.c2.redSub(this.a.redMul(d5)), t6 = this.one.redSub(this.c2.redMul(this.d).redMul(d5)), a6 = c6.redMul(t6.redInvm()), r6 = a6.redSqrt(); + if (0 !== r6.redSqr().redSub(a6).cmp(this.zero)) + throw new Error("invalid point"); + var b4 = r6.fromRed().isOdd(); + return (f7 && !b4 || !f7 && b4) && (r6 = r6.redNeg()), this.point(e8, r6); +}, F$5.prototype.pointFromY = function(e8, f7) { + (e8 = new k$b(e8, 16)).red || (e8 = e8.toRed(this.red)); + var d5 = e8.redSqr(), c6 = d5.redSub(this.c2), t6 = d5.redMul(this.d).redMul(this.c2).redSub(this.a), a6 = c6.redMul(t6.redInvm()); + if (0 === a6.cmp(this.zero)) { + if (f7) + throw new Error("invalid point"); + return this.point(this.zero, e8); + } + var r6 = a6.redSqrt(); + if (0 !== r6.redSqr().redSub(a6).cmp(this.zero)) + throw new Error("invalid point"); + return r6.fromRed().isOdd() !== f7 && (r6 = r6.redNeg()), this.point(r6, e8); +}, F$5.prototype.validate = function(e8) { + if (e8.isInfinity()) + return true; + e8.normalize(); + var f7 = e8.x.redSqr(), d5 = e8.y.redSqr(), c6 = f7.redMul(this.a).redAdd(d5), t6 = this.c2.redMul(this.one.redAdd(this.d.redMul(f7).redMul(d5))); + return 0 === c6.cmp(t6); +}, O$5(C$5, L$4.BasePoint), F$5.prototype.pointFromJSON = function(e8) { + return C$5.fromJSON(this, e8); +}, F$5.prototype.point = function(e8, f7, d5, c6) { + return new C$5(this, e8, f7, d5, c6); +}, C$5.fromJSON = function(e8, f7) { + return new C$5(e8, f7[0], f7[1], f7[2]); +}, C$5.prototype.inspect = function() { + return this.isInfinity() ? "" : ""; +}, C$5.prototype.isInfinity = function() { + return 0 === this.x.cmpn(0) && (0 === this.y.cmp(this.z) || this.zOne && 0 === this.y.cmp(this.curve.c)); +}, C$5.prototype._extDbl = function() { + var e8 = this.x.redSqr(), f7 = this.y.redSqr(), d5 = this.z.redSqr(); + d5 = d5.redIAdd(d5); + var c6 = this.curve._mulA(e8), t6 = this.x.redAdd(this.y).redSqr().redISub(e8).redISub(f7), a6 = c6.redAdd(f7), r6 = a6.redSub(d5), b4 = c6.redSub(f7), i6 = t6.redMul(r6), n6 = a6.redMul(b4), s6 = t6.redMul(b4), o6 = r6.redMul(a6); + return this.curve.point(i6, n6, o6, s6); +}, C$5.prototype._projDbl = function() { + var e8, f7, d5, c6 = this.x.redAdd(this.y).redSqr(), t6 = this.x.redSqr(), a6 = this.y.redSqr(); + if (this.curve.twisted) { + var r6 = (n6 = this.curve._mulA(t6)).redAdd(a6); + if (this.zOne) + e8 = c6.redSub(t6).redSub(a6).redMul(r6.redSub(this.curve.two)), f7 = r6.redMul(n6.redSub(a6)), d5 = r6.redSqr().redSub(r6).redSub(r6); + else { + var b4 = this.z.redSqr(), i6 = r6.redSub(b4).redISub(b4); + e8 = c6.redSub(t6).redISub(a6).redMul(i6), f7 = r6.redMul(n6.redSub(a6)), d5 = r6.redMul(i6); + } + } else { + var n6 = t6.redAdd(a6); + b4 = this.curve._mulC(this.z).redSqr(), i6 = n6.redSub(b4).redSub(b4); + e8 = this.curve._mulC(c6.redISub(n6)).redMul(i6), f7 = this.curve._mulC(n6).redMul(t6.redISub(a6)), d5 = n6.redMul(i6); + } + return this.curve.point(e8, f7, d5); +}, C$5.prototype.dbl = function() { + return this.isInfinity() ? this : this.curve.extended ? this._extDbl() : this._projDbl(); +}, C$5.prototype._extAdd = function(e8) { + var f7 = this.y.redSub(this.x).redMul(e8.y.redSub(e8.x)), d5 = this.y.redAdd(this.x).redMul(e8.y.redAdd(e8.x)), c6 = this.t.redMul(this.curve.dd).redMul(e8.t), t6 = this.z.redMul(e8.z.redAdd(e8.z)), a6 = d5.redSub(f7), r6 = t6.redSub(c6), b4 = t6.redAdd(c6), i6 = d5.redAdd(f7), n6 = a6.redMul(r6), s6 = b4.redMul(i6), o6 = a6.redMul(i6), u6 = r6.redMul(b4); + return this.curve.point(n6, s6, u6, o6); +}, C$5.prototype._projAdd = function(e8) { + var f7, d5, c6 = this.z.redMul(e8.z), t6 = c6.redSqr(), a6 = this.x.redMul(e8.x), r6 = this.y.redMul(e8.y), b4 = this.curve.d.redMul(a6).redMul(r6), i6 = t6.redSub(b4), n6 = t6.redAdd(b4), s6 = this.x.redAdd(this.y).redMul(e8.x.redAdd(e8.y)).redISub(a6).redISub(r6), o6 = c6.redMul(i6).redMul(s6); + return this.curve.twisted ? (f7 = c6.redMul(n6).redMul(r6.redSub(this.curve._mulA(a6))), d5 = i6.redMul(n6)) : (f7 = c6.redMul(n6).redMul(r6.redSub(a6)), d5 = this.curve._mulC(i6).redMul(n6)), this.curve.point(o6, f7, d5); +}, C$5.prototype.add = function(e8) { + return this.isInfinity() ? e8 : e8.isInfinity() ? this : this.curve.extended ? this._extAdd(e8) : this._projAdd(e8); +}, C$5.prototype.mul = function(e8) { + return this._hasDoubles(e8) ? this.curve._fixedNafMul(this, e8) : this.curve._wnafMul(this, e8); +}, C$5.prototype.mulAdd = function(e8, f7, d5) { + return this.curve._wnafMulAdd(1, [this, f7], [e8, d5], 2, false); +}, C$5.prototype.jmulAdd = function(e8, f7, d5) { + return this.curve._wnafMulAdd(1, [this, f7], [e8, d5], 2, true); +}, C$5.prototype.normalize = function() { + if (this.zOne) + return this; + var e8 = this.z.redInvm(); + return this.x = this.x.redMul(e8), this.y = this.y.redMul(e8), this.t && (this.t = this.t.redMul(e8)), this.z = this.curve.one, this.zOne = true, this; +}, C$5.prototype.neg = function() { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()); +}, C$5.prototype.getX = function() { + return this.normalize(), this.x.fromRed(); +}, C$5.prototype.getY = function() { + return this.normalize(), this.y.fromRed(); +}, C$5.prototype.eq = function(e8) { + return this === e8 || 0 === this.getX().cmp(e8.getX()) && 0 === this.getY().cmp(e8.getY()); +}, C$5.prototype.eqXToP = function(e8) { + var f7 = e8.toRed(this.curve.red).redMul(this.z); + if (0 === this.x.cmp(f7)) + return true; + for (var d5 = e8.clone(), c6 = this.curve.redN.redMul(this.z); ; ) { + if (d5.iadd(this.curve.n), d5.cmp(this.curve.p) >= 0) + return false; + if (f7.redIAdd(c6), 0 === this.x.cmp(f7)) + return true; + } +}, C$5.prototype.toP = C$5.prototype.normalize, C$5.prototype.mixedAdd = C$5.prototype.add; +var T$5 = N$4; +var J$3 = {}; +var X$3 = J$3; +X$3.base = v$e, X$3.short = x$6, X$3.mont = E$8, X$3.edwards = T$5; +var D$4; +var Y$2 = { doubles: { step: 4, points: [["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a", "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"], ["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"], ["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739", "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"], ["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"], ["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c", "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"], ["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda", "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"], ["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa", "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"], ["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0", "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"], ["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d", "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"], ["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d", "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"], ["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1", "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"], ["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0", "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"], ["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047", "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"], ["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862", "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"], ["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7", "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"], ["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd", "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"], ["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83", "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"], ["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a", "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"], ["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8", "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"], ["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d", "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"], ["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725", "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"], ["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754", "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"], ["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c", "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"], ["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6", "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"], ["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39", "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"], ["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891", "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"], ["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b", "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"], ["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03", "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"], ["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d", "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"], ["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070", "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"], ["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4", "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"], ["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da", "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"], ["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11", "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"], ["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e", "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"], ["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41", "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"], ["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef", "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"], ["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8", "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"], ["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d", "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"], ["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96", "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"], ["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd", "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"], ["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5", "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"], ["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266", "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"], ["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71", "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"], ["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac", "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"], ["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751", "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"], ["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e", "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"], ["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241", "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"], ["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3", "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"], ["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f", "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"], ["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19", "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"], ["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be", "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"], ["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9", "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"], ["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2", "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"], ["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13", "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"], ["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c", "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"], ["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba", "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"], ["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151", "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"], ["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073", "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"], ["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458", "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"], ["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b", "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"], ["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366", "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"], ["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa", "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"], ["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0", "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"], ["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787", "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"], ["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e", "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]] }, naf: { wnd: 7, points: [["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9", "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"], ["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4", "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"], ["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc", "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"], ["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe", "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"], ["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb", "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"], ["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8", "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"], ["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e", "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"], ["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34", "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"], ["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c", "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"], ["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5", "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"], ["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f", "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"], ["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714", "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"], ["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729", "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"], ["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db", "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"], ["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4", "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"], ["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5", "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"], ["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479", "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"], ["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d", "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"], ["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f", "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"], ["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb", "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"], ["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9", "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"], ["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963", "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"], ["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74", "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"], ["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530", "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"], ["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b", "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"], ["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247", "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"], ["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1", "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"], ["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120", "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"], ["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435", "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"], ["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18", "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"], ["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8", "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"], ["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb", "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"], ["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f", "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"], ["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143", "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"], ["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba", "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"], ["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45", "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"], ["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a", "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"], ["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e", "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"], ["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8", "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"], ["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c", "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"], ["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519", "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"], ["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab", "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"], ["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca", "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"], ["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf", "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"], ["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610", "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"], ["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4", "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"], ["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c", "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"], ["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940", "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"], ["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980", "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"], ["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3", "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"], ["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf", "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"], ["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63", "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"], ["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448", "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"], ["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf", "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"], ["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5", "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"], ["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6", "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"], ["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5", "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"], ["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99", "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"], ["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51", "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"], ["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5", "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"], ["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5", "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"], ["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997", "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"], ["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881", "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"], ["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5", "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"], ["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66", "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"], ["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726", "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"], ["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede", "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"], ["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94", "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"], ["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31", "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"], ["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51", "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"], ["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252", "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"], ["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5", "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"], ["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b", "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"], ["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4", "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"], ["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f", "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"], ["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889", "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"], ["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246", "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"], ["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984", "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"], ["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a", "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"], ["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030", "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"], ["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197", "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"], ["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593", "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"], ["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef", "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"], ["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38", "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"], ["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a", "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"], ["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111", "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"], ["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502", "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"], ["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea", "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"], ["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26", "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"], ["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986", "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"], ["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e", "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"], ["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4", "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"], ["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda", "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"], ["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859", "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"], ["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f", "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"], ["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c", "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"], ["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942", "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"], ["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a", "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"], ["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80", "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"], ["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d", "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"], ["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1", "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"], ["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63", "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"], ["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352", "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"], ["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193", "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"], ["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00", "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"], ["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58", "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"], ["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7", "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"], ["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8", "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"], ["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e", "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"], ["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d", "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"], ["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b", "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"], ["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f", "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"], ["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6", "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"], ["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297", "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"], ["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a", "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"], ["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c", "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"], ["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52", "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"], ["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb", "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"], ["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065", "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"], ["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917", "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"], ["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9", "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"], ["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3", "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"], ["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57", "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"], ["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66", "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"], ["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8", "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"], ["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721", "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"], ["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180", "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]] } }; +var W$3 = {}; +var K$4 = W$3; +var U$6 = X$2; +var G$3 = J$3; +var H$5 = n$i.assert; +function Q$2(e8) { + "short" === e8.type ? this.curve = new G$3.short(e8) : "edwards" === e8.type ? this.curve = new G$3.edwards(e8) : this.curve = new G$3.mont(e8), this.g = this.curve.g, this.n = this.curve.n, this.hash = e8.hash, H$5(this.g.validate(), "Invalid curve"), H$5(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); +} +function V$3(e8, f7) { + Object.defineProperty(K$4, e8, { configurable: true, enumerable: true, get: function() { + var d5 = new Q$2(f7); + return Object.defineProperty(K$4, e8, { configurable: true, enumerable: true, value: d5 }), d5; + } }); +} +K$4.PresetCurve = Q$2, V$3("p192", { type: "short", prime: "p192", p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", hash: U$6.sha256, gRed: false, g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"] }), V$3("p224", { type: "short", prime: "p224", p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", hash: U$6.sha256, gRed: false, g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"] }), V$3("p256", { type: "short", prime: null, p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", hash: U$6.sha256, gRed: false, g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"] }), V$3("p384", { type: "short", prime: null, p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", hash: U$6.sha384, gRed: false, g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"] }), V$3("p521", { type: "short", prime: null, p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", hash: U$6.sha512, gRed: false, g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"] }), V$3("curve25519", { type: "mont", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "76d06", b: "1", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: U$6.sha256, gRed: false, g: ["9"] }), V$3("ed25519", { type: "edwards", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "-1", c: "1", d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: U$6.sha256, gRed: false, g: ["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", "6666666666666666666666666666666666666666666666666666666666666658"] }); +try { + D$4 = Y$2; +} catch (e8) { + D$4 = void 0; +} +V$3("secp256k1", { type: "short", prime: "k256", p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", a: "0", b: "7", n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", h: "1", hash: U$6.sha256, beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", basis: [{ a: "3086d221a7d46bcde86c90e49284eb15", b: "-e4437ed6010e88286f547fa90abfe4c3" }, { a: "114ca50f7a8e2f3f657c1108d9d44cfd8", b: "3086d221a7d46bcde86c90e49284eb15" }], gRed: false, g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", D$4] }); +var Z$1; +var $$1 = n$c; +var ee2 = n$i.assert; +function fe2(e8, f7) { + this.ec = e8, this.priv = null, this.pub = null, f7.priv && this._importPrivate(f7.priv, f7.privEnc), f7.pub && this._importPublic(f7.pub, f7.pubEnc); +} +Z$1 = fe2, fe2.fromPublic = function(e8, f7, d5) { + return f7 instanceof fe2 ? f7 : new fe2(e8, { pub: f7, pubEnc: d5 }); +}, fe2.fromPrivate = function(e8, f7, d5) { + return f7 instanceof fe2 ? f7 : new fe2(e8, { priv: f7, privEnc: d5 }); +}, fe2.prototype.validate = function() { + var e8 = this.getPublic(); + return e8.isInfinity() ? { result: false, reason: "Invalid public key" } : e8.validate() ? e8.mul(this.ec.curve.n).isInfinity() ? { result: true, reason: null } : { result: false, reason: "Public key * N != O" } : { result: false, reason: "Public key is not a point" }; +}, fe2.prototype.getPublic = function(e8, f7) { + return "string" == typeof e8 && (f7 = e8, e8 = null), this.pub || (this.pub = this.ec.g.mul(this.priv)), f7 ? this.pub.encode(f7, e8) : this.pub; +}, fe2.prototype.getPrivate = function(e8) { + return "hex" === e8 ? this.priv.toString(16, 2) : this.priv; +}, fe2.prototype._importPrivate = function(e8, f7) { + this.priv = new $$1(e8, f7 || 16), this.priv = this.priv.umod(this.ec.curve.n); +}, fe2.prototype._importPublic = function(e8, f7) { + if (e8.x || e8.y) + return "mont" === this.ec.curve.type ? ee2(e8.x, "Need x coordinate") : "short" !== this.ec.curve.type && "edwards" !== this.ec.curve.type || ee2(e8.x && e8.y, "Need both x and y coordinate"), this.pub = this.ec.curve.point(e8.x, e8.y), void 0; + this.pub = this.ec.curve.decodePoint(e8, f7); +}, fe2.prototype.derive = function(e8) { + return e8.mul(this.priv).getX(); +}, fe2.prototype.sign = function(e8, f7, d5) { + return this.ec.sign(e8, this, f7, d5); +}, fe2.prototype.verify = function(e8, f7) { + return this.ec.verify(e8, f7, this); +}, fe2.prototype.inspect = function() { + return ""; +}; +var de2; +var ce2 = Z$1; +var te2 = n$c; +var ae2 = a$l; +var re2 = W$3; +var be2 = f$i; +var ie = n$i.assert; +var ne2 = ce2; +var se2 = d$e; +function oe2(e8) { + if (!(this instanceof oe2)) + return new oe2(e8); + "string" == typeof e8 && (ie(re2.hasOwnProperty(e8), "Unknown curve " + e8), e8 = re2[e8]), e8 instanceof re2.PresetCurve && (e8 = { curve: e8 }), this.curve = e8.curve.curve, this.n = this.curve.n, this.nh = this.n.ushrn(1), this.g = this.curve.g, this.g = e8.curve.g, this.g.precompute(e8.curve.n.bitLength() + 1), this.hash = e8.hash || e8.curve.hash; +} +de2 = oe2, oe2.prototype.keyPair = function(e8) { + return new ne2(this, e8); +}, oe2.prototype.keyFromPrivate = function(e8, f7) { + return ne2.fromPrivate(this, e8, f7); +}, oe2.prototype.keyFromPublic = function(e8, f7) { + return ne2.fromPublic(this, e8, f7); +}, oe2.prototype.genKeyPair = function(e8) { + e8 || (e8 = {}); + for (var f7 = new ae2({ hash: this.hash, pers: e8.pers, persEnc: e8.persEnc || "utf8", entropy: e8.entropy || be2(this.hash.hmacStrength), entropyEnc: e8.entropy && e8.entropyEnc || "utf8", nonce: this.n.toArray() }), d5 = this.n.byteLength(), c6 = this.n.sub(new te2(2)); ; ) { + var t6 = new te2(f7.generate(d5)); + if (!(t6.cmp(c6) > 0)) + return t6.iaddn(1), this.keyFromPrivate(t6); + } +}, oe2.prototype._truncateToN = function(e8, f7) { + var d5 = 8 * e8.byteLength() - this.n.bitLength(); + return d5 > 0 && (e8 = e8.ushrn(d5)), !f7 && e8.cmp(this.n) >= 0 ? e8.sub(this.n) : e8; +}, oe2.prototype.sign = function(e8, f7, d5, c6) { + "object" == typeof d5 && (c6 = d5, d5 = null), c6 || (c6 = {}), f7 = this.keyFromPrivate(f7, d5), e8 = this._truncateToN(new te2(e8, 16)); + for (var t6 = this.n.byteLength(), a6 = f7.getPrivate().toArray("be", t6), r6 = e8.toArray("be", t6), b4 = new ae2({ hash: this.hash, entropy: a6, nonce: r6, pers: c6.pers, persEnc: c6.persEnc || "utf8" }), i6 = this.n.sub(new te2(1)), n6 = 0; ; n6++) { + var s6 = c6.k ? c6.k(n6) : new te2(b4.generate(this.n.byteLength())); + if (!((s6 = this._truncateToN(s6, true)).cmpn(1) <= 0 || s6.cmp(i6) >= 0)) { + var o6 = this.g.mul(s6); + if (!o6.isInfinity()) { + var u6 = o6.getX(), h6 = u6.umod(this.n); + if (0 !== h6.cmpn(0)) { + var p6 = s6.invm(this.n).mul(h6.mul(f7.getPrivate()).iadd(e8)); + if (0 !== (p6 = p6.umod(this.n)).cmpn(0)) { + var l6 = (o6.getY().isOdd() ? 1 : 0) | (0 !== u6.cmp(h6) ? 2 : 0); + return c6.canonical && p6.cmp(this.nh) > 0 && (p6 = this.n.sub(p6), l6 ^= 1), new se2({ r: h6, s: p6, recoveryParam: l6 }); + } + } + } + } + } +}, oe2.prototype.verify = function(e8, f7, d5, c6) { + e8 = this._truncateToN(new te2(e8, 16)), d5 = this.keyFromPublic(d5, c6); + var t6 = (f7 = new se2(f7, "hex")).r, a6 = f7.s; + if (t6.cmpn(1) < 0 || t6.cmp(this.n) >= 0) + return false; + if (a6.cmpn(1) < 0 || a6.cmp(this.n) >= 0) + return false; + var r6, b4 = a6.invm(this.n), i6 = b4.mul(e8).umod(this.n), n6 = b4.mul(t6).umod(this.n); + return this.curve._maxwellTrick ? !(r6 = this.g.jmulAdd(i6, d5.getPublic(), n6)).isInfinity() && r6.eqXToP(t6) : !(r6 = this.g.mulAdd(i6, d5.getPublic(), n6)).isInfinity() && 0 === r6.getX().umod(this.n).cmp(t6); +}, oe2.prototype.recoverPubKey = function(e8, f7, d5, c6) { + ie((3 & d5) === d5, "The recovery param is more than two bits"), f7 = new se2(f7, c6); + var t6 = this.n, a6 = new te2(e8), r6 = f7.r, b4 = f7.s, i6 = 1 & d5, n6 = d5 >> 1; + if (r6.cmp(this.curve.p.umod(this.curve.n)) >= 0 && n6) + throw new Error("Unable to find sencond key candinate"); + r6 = n6 ? this.curve.pointFromX(r6.add(this.curve.n), i6) : this.curve.pointFromX(r6, i6); + var s6 = f7.r.invm(t6), o6 = t6.sub(a6).mul(s6).umod(t6), u6 = b4.mul(s6).umod(t6); + return this.g.mulAdd(o6, r6, u6); +}, oe2.prototype.getKeyRecoveryParam = function(e8, f7, d5, c6) { + if (null !== (f7 = new se2(f7, c6)).recoveryParam) + return f7.recoveryParam; + for (var t6 = 0; t6 < 4; t6++) { + var a6; + try { + a6 = this.recoverPubKey(e8, f7, t6); + } catch (e9) { + continue; + } + if (a6.eq(d5)) + return t6; + } + throw new Error("Unable to find valid recovery factor"); +}; +var ue2 = de2; +var he2 = n$i; +var pe2 = he2.assert; +var le2 = he2.parseBytes; +var ve2 = he2.cachedProperty; +function ye2(e8, f7) { + this.eddsa = e8, this._secret = le2(f7.secret), e8.isPoint(f7.pub) ? this._pub = f7.pub : this._pubBytes = le2(f7.pub); +} +ye2.fromPublic = function(e8, f7) { + return f7 instanceof ye2 ? f7 : new ye2(e8, { pub: f7 }); +}, ye2.fromSecret = function(e8, f7) { + return f7 instanceof ye2 ? f7 : new ye2(e8, { secret: f7 }); +}, ye2.prototype.secret = function() { + return this._secret; +}, ve2(ye2, "pubBytes", function() { + return this.eddsa.encodePoint(this.pub()); +}), ve2(ye2, "pub", function() { + return this._pubBytes ? this.eddsa.decodePoint(this._pubBytes) : this.eddsa.g.mul(this.priv()); +}), ve2(ye2, "privBytes", function() { + var e8 = this.eddsa, f7 = this.hash(), d5 = e8.encodingLength - 1, c6 = f7.slice(0, e8.encodingLength); + return c6[0] &= 248, c6[d5] &= 127, c6[d5] |= 64, c6; +}), ve2(ye2, "priv", function() { + return this.eddsa.decodeInt(this.privBytes()); +}), ve2(ye2, "hash", function() { + return this.eddsa.hash().update(this.secret()).digest(); +}), ve2(ye2, "messagePrefix", function() { + return this.hash().slice(this.eddsa.encodingLength); +}), ye2.prototype.sign = function(e8) { + return pe2(this._secret, "KeyPair can only verify"), this.eddsa.sign(e8, this); +}, ye2.prototype.verify = function(e8, f7) { + return this.eddsa.verify(e8, f7, this); +}, ye2.prototype.getSecret = function(e8) { + return pe2(this._secret, "KeyPair is public only"), he2.encode(this.secret(), e8); +}, ye2.prototype.getPublic = function(e8) { + return he2.encode(this.pubBytes(), e8); +}; +var me2 = ye2; +var Se2 = n$c; +var ge2 = n$i; +var Ae2 = ge2.assert; +var Ie = ge2.cachedProperty; +var we2 = ge2.parseBytes; +function Me(e8, f7) { + this.eddsa = e8, "object" != typeof f7 && (f7 = we2(f7)), Array.isArray(f7) && (f7 = { R: f7.slice(0, e8.encodingLength), S: f7.slice(e8.encodingLength) }), Ae2(f7.R && f7.S, "Signature without R or S"), e8.isPoint(f7.R) && (this._R = f7.R), f7.S instanceof Se2 && (this._S = f7.S), this._Rencoded = Array.isArray(f7.R) ? f7.R : f7.Rencoded, this._Sencoded = Array.isArray(f7.S) ? f7.S : f7.Sencoded; +} +Ie(Me, "S", function() { + return this.eddsa.decodeInt(this.Sencoded()); +}), Ie(Me, "R", function() { + return this.eddsa.decodePoint(this.Rencoded()); +}), Ie(Me, "Rencoded", function() { + return this.eddsa.encodePoint(this.R()); +}), Ie(Me, "Sencoded", function() { + return this.eddsa.encodeInt(this.S()); +}), Me.prototype.toBytes = function() { + return this.Rencoded().concat(this.Sencoded()); +}, Me.prototype.toHex = function() { + return ge2.encode(this.toBytes(), "hex").toUpperCase(); +}; +var xe; +var _e = Me; +var ze = X$2; +var qe = W$3; +var Re = n$i; +var Pe = Re.assert; +var je2 = Re.parseBytes; +var Ne = me2; +var Ee2 = _e; +function ke2(e8) { + if (Pe("ed25519" === e8, "only tested with ed25519 so far"), !(this instanceof ke2)) + return new ke2(e8); + e8 = qe[e8].curve; + this.curve = e8, this.g = e8.g, this.g.precompute(e8.n.bitLength() + 1), this.pointClass = e8.point().constructor, this.encodingLength = Math.ceil(e8.n.bitLength() / 8), this.hash = ze.sha512; +} +xe = ke2, ke2.prototype.sign = function(e8, f7) { + e8 = je2(e8); + var d5 = this.keyFromSecret(f7), c6 = this.hashInt(d5.messagePrefix(), e8), t6 = this.g.mul(c6), a6 = this.encodePoint(t6), r6 = this.hashInt(a6, d5.pubBytes(), e8).mul(d5.priv()), b4 = c6.add(r6).umod(this.curve.n); + return this.makeSignature({ R: t6, S: b4, Rencoded: a6 }); +}, ke2.prototype.verify = function(e8, f7, d5) { + e8 = je2(e8), f7 = this.makeSignature(f7); + var c6 = this.keyFromPublic(d5), t6 = this.hashInt(f7.Rencoded(), c6.pubBytes(), e8), a6 = this.g.mul(f7.S()); + return f7.R().add(c6.pub().mul(t6)).eq(a6); +}, ke2.prototype.hashInt = function() { + for (var e8 = this.hash(), f7 = 0; f7 < arguments.length; f7++) + e8.update(arguments[f7]); + return Re.intFromLE(e8.digest()).umod(this.curve.n); +}, ke2.prototype.keyFromPublic = function(e8) { + return Ne.fromPublic(this, e8); +}, ke2.prototype.keyFromSecret = function(e8) { + return Ne.fromSecret(this, e8); +}, ke2.prototype.makeSignature = function(e8) { + return e8 instanceof Ee2 ? e8 : new Ee2(this, e8); +}, ke2.prototype.encodePoint = function(e8) { + var f7 = e8.getY().toArray("le", this.encodingLength); + return f7[this.encodingLength - 1] |= e8.getX().isOdd() ? 128 : 0, f7; +}, ke2.prototype.decodePoint = function(e8) { + var f7 = (e8 = Re.parseBytes(e8)).length - 1, d5 = e8.slice(0, f7).concat(-129 & e8[f7]), c6 = 0 != (128 & e8[f7]), t6 = Re.intFromLE(d5); + return this.curve.pointFromY(t6, c6); +}, ke2.prototype.encodeInt = function(e8) { + return e8.toArray("le", this.encodingLength); +}, ke2.prototype.decodeInt = function(e8) { + return Re.intFromLE(e8); +}, ke2.prototype.isPoint = function(e8) { + return e8 instanceof this.pointClass; +}; +var Oe2 = xe; +var Le = {}; +var Be2 = Le; +Be2.version = ["elliptic", "6.5.2", "EC cryptography", "lib/elliptic.js", ["lib"], { jscs: "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", jshint: "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", lint: "npm run jscs && npm run jshint", unit: "istanbul test _mocha --reporter=spec test/index.js", test: "npm run lint && npm run unit", version: "grunt dist && git add dist/" }, { type: "git", url: "git@github.com:indutny/elliptic" }, ["EC", "Elliptic", "curve", "Cryptography"], "Fedor Indutny ", "MIT", { url: "https://github.com/indutny/elliptic/issues" }, "https://github.com/indutny/elliptic", { brfs: "^1.4.3", coveralls: "^3.0.8", grunt: "^1.0.4", "grunt-browserify": "^5.0.0", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "^1.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-uglify": "^1.0.1", "grunt-mocha-istanbul": "^3.0.1", "grunt-saucelabs": "^9.0.1", istanbul: "^0.4.2", jscs: "^3.0.7", jshint: "^2.10.3", mocha: "^6.2.2" }, { "bn.js": "^4.4.0", brorand: "^1.0.1", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.0", inherits: "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" }][1], Be2.utils = n$i, Be2.rand = f$i, Be2.curve = J$3, Be2.curves = W$3, Be2.ec = ue2, Be2.eddsa = Oe2; +var o$n = {}; +var s$j = false; +var a$m = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var u$j = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var c$i = {}; +var f$n = t$2; +function l$k(e8) { + (this || u$j)._reporterState = { obj: null, path: [], options: e8 || {}, errors: [] }; +} +function h$g(e8, t6) { + (this || u$j).path = e8, this.rethrow(t6); +} +c$i.Reporter = l$k, l$k.prototype.isError = function(e8) { + return e8 instanceof h$g; +}, l$k.prototype.save = function() { + var e8 = (this || u$j)._reporterState; + return { obj: e8.obj, pathLen: e8.path.length }; +}, l$k.prototype.restore = function(e8) { + var t6 = (this || u$j)._reporterState; + t6.obj = e8.obj, t6.path = t6.path.slice(0, e8.pathLen); +}, l$k.prototype.enterKey = function(e8) { + return (this || u$j)._reporterState.path.push(e8); +}, l$k.prototype.exitKey = function(e8) { + var t6 = (this || u$j)._reporterState; + t6.path = t6.path.slice(0, e8 - 1); +}, l$k.prototype.leaveKey = function(e8, t6, r6) { + var n6 = (this || u$j)._reporterState; + this.exitKey(e8), null !== n6.obj && (n6.obj[t6] = r6); +}, l$k.prototype.path = function() { + return (this || u$j)._reporterState.path.join("/"); +}, l$k.prototype.enterObject = function() { + var e8 = (this || u$j)._reporterState, t6 = e8.obj; + return e8.obj = {}, t6; +}, l$k.prototype.leaveObject = function(e8) { + var t6 = (this || u$j)._reporterState, r6 = t6.obj; + return t6.obj = e8, r6; +}, l$k.prototype.error = function(e8) { + var t6, r6 = (this || u$j)._reporterState, n6 = e8 instanceof h$g; + if (t6 = n6 ? e8 : new h$g(r6.path.map(function(e9) { + return "[" + JSON.stringify(e9) + "]"; + }).join(""), e8.message || e8, e8.stack), !r6.options.partial) + throw t6; + return n6 || r6.errors.push(t6), t6; +}, l$k.prototype.wrapResult = function(e8) { + var t6 = (this || u$j)._reporterState; + return t6.options.partial ? { result: this.isError(e8) ? null : e8, errors: t6.errors } : e8; +}, f$n(h$g, Error), h$g.prototype.rethrow = function(e8) { + if ((this || u$j).message = e8 + " at: " + ((this || u$j).path || "(shallow)"), Error.captureStackTrace && Error.captureStackTrace(this || u$j, h$g), !(this || u$j).stack) + try { + throw new Error((this || u$j).message); + } catch (e9) { + (this || u$j).stack = e9.stack; + } + return this || u$j; +}; +var p$k = {}; +var d$i = false; +var g$e = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function y$f() { + if (d$i) + return p$k; + d$i = true; + var e8 = t$2, r6 = E$9().Reporter, i6 = e$1$1.Buffer; + function o6(e9, t6) { + if (r6.call(this || g$e, t6), !i6.isBuffer(e9)) + return this.error("Input not Buffer"), void 0; + (this || g$e).base = e9, (this || g$e).offset = 0, (this || g$e).length = e9.length; + } + function s6(e9, t6) { + if (Array.isArray(e9)) + (this || g$e).length = 0, (this || g$e).value = e9.map(function(e10) { + return e10 instanceof s6 || (e10 = new s6(e10, t6)), (this || g$e).length += e10.length, e10; + }, this || g$e); + else if ("number" == typeof e9) { + if (!(0 <= e9 && e9 <= 255)) + return t6.error("non-byte EncoderBuffer value"); + (this || g$e).value = e9, (this || g$e).length = 1; + } else if ("string" == typeof e9) + (this || g$e).value = e9, (this || g$e).length = i6.byteLength(e9); + else { + if (!i6.isBuffer(e9)) + return t6.error("Unsupported type: " + typeof e9); + (this || g$e).value = e9, (this || g$e).length = e9.length; + } + } + return e8(o6, r6), p$k.DecoderBuffer = o6, o6.prototype.save = function() { + return { offset: (this || g$e).offset, reporter: r6.prototype.save.call(this || g$e) }; + }, o6.prototype.restore = function(e9) { + var t6 = new o6((this || g$e).base); + return t6.offset = e9.offset, t6.length = (this || g$e).offset, (this || g$e).offset = e9.offset, r6.prototype.restore.call(this || g$e, e9.reporter), t6; + }, o6.prototype.isEmpty = function() { + return (this || g$e).offset === (this || g$e).length; + }, o6.prototype.readUInt8 = function(e9) { + return (this || g$e).offset + 1 <= (this || g$e).length ? (this || g$e).base.readUInt8((this || g$e).offset++, true) : this.error(e9 || "DecoderBuffer overrun"); + }, o6.prototype.skip = function(e9, t6) { + if (!((this || g$e).offset + e9 <= (this || g$e).length)) + return this.error(t6 || "DecoderBuffer overrun"); + var r7 = new o6((this || g$e).base); + return r7._reporterState = (this || g$e)._reporterState, r7.offset = (this || g$e).offset, r7.length = (this || g$e).offset + e9, (this || g$e).offset += e9, r7; + }, o6.prototype.raw = function(e9) { + return (this || g$e).base.slice(e9 ? e9.offset : (this || g$e).offset, (this || g$e).length); + }, p$k.EncoderBuffer = s6, s6.prototype.join = function(e9, t6) { + return e9 || (e9 = new i6((this || g$e).length)), t6 || (t6 = 0), 0 === (this || g$e).length || (Array.isArray((this || g$e).value) ? (this || g$e).value.forEach(function(r7) { + r7.join(e9, t6), t6 += r7.length; + }) : ("number" == typeof (this || g$e).value ? e9[t6] = (this || g$e).value : "string" == typeof (this || g$e).value ? e9.write((this || g$e).value, t6) : i6.isBuffer((this || g$e).value) && (this || g$e).value.copy(e9, t6), t6 += (this || g$e).length)), e9; + }, p$k; +} +var _$e = {}; +var v$f = false; +var b$c = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var m$g = {}; +var S$a = false; +function E$9() { + if (S$a) + return m$g; + S$a = true; + var e8 = m$g; + return e8.Reporter = c$i.Reporter, e8.DecoderBuffer = y$f().DecoderBuffer, e8.EncoderBuffer = y$f().EncoderBuffer, e8.Node = function() { + if (v$f) + return _$e; + v$f = true; + var e9 = E$9().Reporter, t6 = E$9().EncoderBuffer, r6 = E$9().DecoderBuffer, n6 = o$7, o6 = ["seq", "seqof", "set", "setof", "objid", "bool", "gentime", "utctime", "null_", "enum", "int", "objDesc", "bitstr", "bmpstr", "charstr", "genstr", "graphstr", "ia5str", "iso646str", "numstr", "octstr", "printstr", "t61str", "unistr", "utf8str", "videostr"], s6 = ["key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains"].concat(o6); + function a6(e10, t7) { + var r7 = {}; + (this || b$c)._baseState = r7, r7.enc = e10, r7.parent = t7 || null, r7.children = null, r7.tag = null, r7.args = null, r7.reverseArgs = null, r7.choice = null, r7.optional = false, r7.any = false, r7.obj = false, r7.use = null, r7.useDecoder = null, r7.key = null, r7.default = null, r7.explicit = null, r7.implicit = null, r7.contains = null, r7.parent || (r7.children = [], this._wrap()); + } + _$e = a6; + var u6 = ["enc", "parent", "children", "tag", "args", "reverseArgs", "choice", "optional", "any", "obj", "use", "alteredUse", "key", "default", "explicit", "implicit", "contains"]; + return a6.prototype.clone = function() { + var e10 = (this || b$c)._baseState, t7 = {}; + u6.forEach(function(r8) { + t7[r8] = e10[r8]; + }); + var r7 = new (this || b$c).constructor(t7.parent); + return r7._baseState = t7, r7; + }, a6.prototype._wrap = function() { + var e10 = (this || b$c)._baseState; + s6.forEach(function(t7) { + (this || b$c)[t7] = function() { + var r7 = new (this || b$c).constructor(this || b$c); + return e10.children.push(r7), r7[t7].apply(r7, arguments); + }; + }, this || b$c); + }, a6.prototype._init = function(e10) { + var t7 = (this || b$c)._baseState; + n6(null === t7.parent), e10.call(this || b$c), t7.children = t7.children.filter(function(e11) { + return e11._baseState.parent === (this || b$c); + }, this || b$c), n6.equal(t7.children.length, 1, "Root node can have only one child"); + }, a6.prototype._useArgs = function(e10) { + var t7 = (this || b$c)._baseState, r7 = e10.filter(function(e11) { + return e11 instanceof (this || b$c).constructor; + }, this || b$c); + e10 = e10.filter(function(e11) { + return !(e11 instanceof (this || b$c).constructor); + }, this || b$c), 0 !== r7.length && (n6(null === t7.children), t7.children = r7, r7.forEach(function(e11) { + e11._baseState.parent = this || b$c; + }, this || b$c)), 0 !== e10.length && (n6(null === t7.args), t7.args = e10, t7.reverseArgs = e10.map(function(e11) { + if ("object" != typeof e11 || e11.constructor !== Object) + return e11; + var t8 = {}; + return Object.keys(e11).forEach(function(r8) { + r8 == (0 | r8) && (r8 |= 0); + var n7 = e11[r8]; + t8[n7] = r8; + }), t8; + })); + }, ["_peekTag", "_decodeTag", "_use", "_decodeStr", "_decodeObjid", "_decodeTime", "_decodeNull", "_decodeInt", "_decodeBool", "_decodeList", "_encodeComposite", "_encodeStr", "_encodeObjid", "_encodeTime", "_encodeNull", "_encodeInt", "_encodeBool"].forEach(function(e10) { + a6.prototype[e10] = function() { + var t7 = (this || b$c)._baseState; + throw new Error(e10 + " not implemented for encoding: " + t7.enc); + }; + }), o6.forEach(function(e10) { + a6.prototype[e10] = function() { + var t7 = (this || b$c)._baseState, r7 = Array.prototype.slice.call(arguments); + return n6(null === t7.tag), t7.tag = e10, this._useArgs(r7), this || b$c; + }; + }), a6.prototype.use = function(e10) { + n6(e10); + var t7 = (this || b$c)._baseState; + return n6(null === t7.use), t7.use = e10, this || b$c; + }, a6.prototype.optional = function() { + return (this || b$c)._baseState.optional = true, this || b$c; + }, a6.prototype.def = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.default), t7.default = e10, t7.optional = true, this || b$c; + }, a6.prototype.explicit = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.explicit && null === t7.implicit), t7.explicit = e10, this || b$c; + }, a6.prototype.implicit = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.explicit && null === t7.implicit), t7.implicit = e10, this || b$c; + }, a6.prototype.obj = function() { + var e10 = (this || b$c)._baseState, t7 = Array.prototype.slice.call(arguments); + return e10.obj = true, 0 !== t7.length && this._useArgs(t7), this || b$c; + }, a6.prototype.key = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.key), t7.key = e10, this || b$c; + }, a6.prototype.any = function() { + return (this || b$c)._baseState.any = true, this || b$c; + }, a6.prototype.choice = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.choice), t7.choice = e10, this._useArgs(Object.keys(e10).map(function(t8) { + return e10[t8]; + })), this || b$c; + }, a6.prototype.contains = function(e10) { + var t7 = (this || b$c)._baseState; + return n6(null === t7.use), t7.contains = e10, this || b$c; + }, a6.prototype._decode = function(e10, t7) { + var n7 = (this || b$c)._baseState; + if (null === n7.parent) + return e10.wrapResult(n7.children[0]._decode(e10, t7)); + var i6, o7 = n7.default, s7 = true, a7 = null; + if (null !== n7.key && (a7 = e10.enterKey(n7.key)), n7.optional) { + var u7 = null; + if (null !== n7.explicit ? u7 = n7.explicit : null !== n7.implicit ? u7 = n7.implicit : null !== n7.tag && (u7 = n7.tag), null !== u7 || n7.any) { + if (s7 = this._peekTag(e10, u7, n7.any), e10.isError(s7)) + return s7; + } else { + var c6 = e10.save(); + try { + null === n7.choice ? this._decodeGeneric(n7.tag, e10, t7) : this._decodeChoice(e10, t7), s7 = true; + } catch (e11) { + s7 = false; + } + e10.restore(c6); + } + } + if (n7.obj && s7 && (i6 = e10.enterObject()), s7) { + if (null !== n7.explicit) { + var f7 = this._decodeTag(e10, n7.explicit); + if (e10.isError(f7)) + return f7; + e10 = f7; + } + var l6 = e10.offset; + if (null === n7.use && null === n7.choice) { + if (n7.any) + c6 = e10.save(); + var h6 = this._decodeTag(e10, null !== n7.implicit ? n7.implicit : n7.tag, n7.any); + if (e10.isError(h6)) + return h6; + n7.any ? o7 = e10.raw(c6) : e10 = h6; + } + if (t7 && t7.track && null !== n7.tag && t7.track(e10.path(), l6, e10.length, "tagged"), t7 && t7.track && null !== n7.tag && t7.track(e10.path(), e10.offset, e10.length, "content"), o7 = n7.any ? o7 : null === n7.choice ? this._decodeGeneric(n7.tag, e10, t7) : this._decodeChoice(e10, t7), e10.isError(o7)) + return o7; + if (n7.any || null !== n7.choice || null === n7.children || n7.children.forEach(function(r7) { + r7._decode(e10, t7); + }), n7.contains && ("octstr" === n7.tag || "bitstr" === n7.tag)) { + var p6 = new r6(o7); + o7 = this._getUse(n7.contains, e10._reporterState.obj)._decode(p6, t7); + } + } + return n7.obj && s7 && (o7 = e10.leaveObject(i6)), null === n7.key || null === o7 && true !== s7 ? null !== a7 && e10.exitKey(a7) : e10.leaveKey(a7, n7.key, o7), o7; + }, a6.prototype._decodeGeneric = function(e10, t7, r7) { + var n7 = (this || b$c)._baseState; + return "seq" === e10 || "set" === e10 ? null : "seqof" === e10 || "setof" === e10 ? this._decodeList(t7, e10, n7.args[0], r7) : /str$/.test(e10) ? this._decodeStr(t7, e10, r7) : "objid" === e10 && n7.args ? this._decodeObjid(t7, n7.args[0], n7.args[1], r7) : "objid" === e10 ? this._decodeObjid(t7, null, null, r7) : "gentime" === e10 || "utctime" === e10 ? this._decodeTime(t7, e10, r7) : "null_" === e10 ? this._decodeNull(t7, r7) : "bool" === e10 ? this._decodeBool(t7, r7) : "objDesc" === e10 ? this._decodeStr(t7, e10, r7) : "int" === e10 || "enum" === e10 ? this._decodeInt(t7, n7.args && n7.args[0], r7) : null !== n7.use ? this._getUse(n7.use, t7._reporterState.obj)._decode(t7, r7) : t7.error("unknown tag: " + e10); + }, a6.prototype._getUse = function(e10, t7) { + var r7 = (this || b$c)._baseState; + return r7.useDecoder = this._use(e10, t7), n6(null === r7.useDecoder._baseState.parent), r7.useDecoder = r7.useDecoder._baseState.children[0], r7.implicit !== r7.useDecoder._baseState.implicit && (r7.useDecoder = r7.useDecoder.clone(), r7.useDecoder._baseState.implicit = r7.implicit), r7.useDecoder; + }, a6.prototype._decodeChoice = function(e10, t7) { + var r7 = (this || b$c)._baseState, n7 = null, i6 = false; + return Object.keys(r7.choice).some(function(o7) { + var s7 = e10.save(), a7 = r7.choice[o7]; + try { + var u7 = a7._decode(e10, t7); + if (e10.isError(u7)) + return false; + n7 = { type: o7, value: u7 }, i6 = true; + } catch (t8) { + return e10.restore(s7), false; + } + return true; + }, this || b$c), i6 ? n7 : e10.error("Choice not matched"); + }, a6.prototype._createEncoderBuffer = function(e10) { + return new t6(e10, (this || b$c).reporter); + }, a6.prototype._encode = function(e10, t7, r7) { + var n7 = (this || b$c)._baseState; + if (null === n7.default || n7.default !== e10) { + var i6 = this._encodeValue(e10, t7, r7); + if (void 0 !== i6 && !this._skipDefault(i6, t7, r7)) + return i6; + } + }, a6.prototype._encodeValue = function(t7, r7, n7) { + var i6 = (this || b$c)._baseState; + if (null === i6.parent) + return i6.children[0]._encode(t7, r7 || new e9()); + var o7 = null; + if ((this || b$c).reporter = r7, i6.optional && void 0 === t7) { + if (null === i6.default) + return; + t7 = i6.default; + } + var s7 = null, a7 = false; + if (i6.any) + o7 = this._createEncoderBuffer(t7); + else if (i6.choice) + o7 = this._encodeChoice(t7, r7); + else if (i6.contains) + s7 = this._getUse(i6.contains, n7)._encode(t7, r7), a7 = true; + else if (i6.children) + s7 = i6.children.map(function(e10) { + if ("null_" === e10._baseState.tag) + return e10._encode(null, r7, t7); + if (null === e10._baseState.key) + return r7.error("Child should have a key"); + var n8 = r7.enterKey(e10._baseState.key); + if ("object" != typeof t7) + return r7.error("Child expected, but input is not object"); + var i7 = e10._encode(t7[e10._baseState.key], r7, t7); + return r7.leaveKey(n8), i7; + }, this || b$c).filter(function(e10) { + return e10; + }), s7 = this._createEncoderBuffer(s7); + else if ("seqof" === i6.tag || "setof" === i6.tag) { + if (!i6.args || 1 !== i6.args.length) + return r7.error("Too many args for : " + i6.tag); + if (!Array.isArray(t7)) + return r7.error("seqof/setof, but data is not Array"); + var u7 = this.clone(); + u7._baseState.implicit = null, s7 = this._createEncoderBuffer(t7.map(function(e10) { + var n8 = (this || b$c)._baseState; + return this._getUse(n8.args[0], t7)._encode(e10, r7); + }, u7)); + } else + null !== i6.use ? o7 = this._getUse(i6.use, n7)._encode(t7, r7) : (s7 = this._encodePrimitive(i6.tag, t7), a7 = true); + if (!i6.any && null === i6.choice) { + var c6 = null !== i6.implicit ? i6.implicit : i6.tag, f7 = null === i6.implicit ? "universal" : "context"; + null === c6 ? null === i6.use && r7.error("Tag could be omitted only for .use()") : null === i6.use && (o7 = this._encodeComposite(c6, a7, f7, s7)); + } + return null !== i6.explicit && (o7 = this._encodeComposite(i6.explicit, false, "context", o7)), o7; + }, a6.prototype._encodeChoice = function(e10, t7) { + var r7 = (this || b$c)._baseState, i6 = r7.choice[e10.type]; + return i6 || n6(false, e10.type + " not found in " + JSON.stringify(Object.keys(r7.choice))), i6._encode(e10.value, t7); + }, a6.prototype._encodePrimitive = function(e10, t7) { + var r7 = (this || b$c)._baseState; + if (/str$/.test(e10)) + return this._encodeStr(t7, e10); + if ("objid" === e10 && r7.args) + return this._encodeObjid(t7, r7.reverseArgs[0], r7.args[1]); + if ("objid" === e10) + return this._encodeObjid(t7, null, null); + if ("gentime" === e10 || "utctime" === e10) + return this._encodeTime(t7, e10); + if ("null_" === e10) + return this._encodeNull(); + if ("int" === e10 || "enum" === e10) + return this._encodeInt(t7, r7.args && r7.reverseArgs[0]); + if ("bool" === e10) + return this._encodeBool(t7); + if ("objDesc" === e10) + return this._encodeStr(t7, e10); + throw new Error("Unsupported tag: " + e10); + }, a6.prototype._isNumstr = function(e10) { + return /^[0-9 ]*$/.test(e10); + }, a6.prototype._isPrintstr = function(e10) { + return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e10); + }, _$e; + }(), m$g; +} +var j$6 = {}; +var w$f = false; +var B$9 = {}; +var k$c = false; +function T$6() { + if (k$c) + return B$9; + k$c = true; + var e8 = B$9; + return e8._reverse = function(e9) { + var t6 = {}; + return Object.keys(e9).forEach(function(r6) { + (0 | r6) == r6 && (r6 |= 0); + var n6 = e9[r6]; + t6[n6] = r6; + }), t6; + }, e8.der = function() { + if (w$f) + return j$6; + w$f = true; + var e9 = T$6(); + return j$6.tagClass = { 0: "universal", 1: "application", 2: "context", 3: "private" }, j$6.tagClassByName = e9._reverse(j$6.tagClass), j$6.tag = { 0: "end", 1: "bool", 2: "int", 3: "bitstr", 4: "octstr", 5: "null_", 6: "objid", 7: "objDesc", 8: "external", 9: "real", 10: "enum", 11: "embed", 12: "utf8str", 13: "relativeOid", 16: "seq", 17: "set", 18: "numstr", 19: "printstr", 20: "t61str", 21: "videostr", 22: "ia5str", 23: "utctime", 24: "gentime", 25: "graphstr", 26: "iso646str", 27: "genstr", 28: "unistr", 29: "charstr", 30: "bmpstr" }, j$6.tagByName = e9._reverse(j$6.tag), j$6; + }(), B$9; +} +var D$5 = {}; +var U$7 = false; +var N$5 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function C$6() { + if (U$7) + return D$5; + U$7 = true; + var e8 = t$2, r6 = Y$3(), n6 = r6.base, i6 = r6.bignum, o6 = r6.constants.der; + function s6(e9) { + (this || N$5).enc = "der", (this || N$5).name = e9.name, (this || N$5).entity = e9, (this || N$5).tree = new a6(), (this || N$5).tree._init(e9.body); + } + function a6(e9) { + n6.Node.call(this || N$5, "der", e9); + } + function u6(e9, t6) { + var r7 = e9.readUInt8(t6); + if (e9.isError(r7)) + return r7; + var n7 = o6.tagClass[r7 >> 6], i7 = 0 == (32 & r7); + if (31 == (31 & r7)) { + var s7 = r7; + for (r7 = 0; 128 == (128 & s7); ) { + if (s7 = e9.readUInt8(t6), e9.isError(s7)) + return s7; + r7 <<= 7, r7 |= 127 & s7; + } + } else + r7 &= 31; + return { cls: n7, primitive: i7, tag: r7, tagStr: o6.tag[r7] }; + } + function c6(e9, t6, r7) { + var n7 = e9.readUInt8(r7); + if (e9.isError(n7)) + return n7; + if (!t6 && 128 === n7) + return null; + if (0 == (128 & n7)) + return n7; + var i7 = 127 & n7; + if (i7 > 4) + return e9.error("length octect is too long"); + n7 = 0; + for (var o7 = 0; o7 < i7; o7++) { + n7 <<= 8; + var s7 = e9.readUInt8(r7); + if (e9.isError(s7)) + return s7; + n7 |= s7; + } + return n7; + } + return D$5 = s6, s6.prototype.decode = function(e9, t6) { + return e9 instanceof n6.DecoderBuffer || (e9 = new n6.DecoderBuffer(e9, t6)), (this || N$5).tree._decode(e9, t6); + }, e8(a6, n6.Node), a6.prototype._peekTag = function(e9, t6, r7) { + if (e9.isEmpty()) + return false; + var n7 = e9.save(), i7 = u6(e9, 'Failed to peek tag: "' + t6 + '"'); + return e9.isError(i7) ? i7 : (e9.restore(n7), i7.tag === t6 || i7.tagStr === t6 || i7.tagStr + "of" === t6 || r7); + }, a6.prototype._decodeTag = function(e9, t6, r7) { + var n7 = u6(e9, 'Failed to decode tag of "' + t6 + '"'); + if (e9.isError(n7)) + return n7; + var i7 = c6(e9, n7.primitive, 'Failed to get length of "' + t6 + '"'); + if (e9.isError(i7)) + return i7; + if (!r7 && n7.tag !== t6 && n7.tagStr !== t6 && n7.tagStr + "of" !== t6) + return e9.error('Failed to match tag: "' + t6 + '"'); + if (n7.primitive || null !== i7) + return e9.skip(i7, 'Failed to match body of: "' + t6 + '"'); + var o7 = e9.save(), s7 = this._skipUntilEnd(e9, 'Failed to skip indefinite length body: "' + (this || N$5).tag + '"'); + return e9.isError(s7) ? s7 : (i7 = e9.offset - o7.offset, e9.restore(o7), e9.skip(i7, 'Failed to match body of: "' + t6 + '"')); + }, a6.prototype._skipUntilEnd = function(e9, t6) { + for (; ; ) { + var r7 = u6(e9, t6); + if (e9.isError(r7)) + return r7; + var n7, i7 = c6(e9, r7.primitive, t6); + if (e9.isError(i7)) + return i7; + if (n7 = r7.primitive || null !== i7 ? e9.skip(i7) : this._skipUntilEnd(e9, t6), e9.isError(n7)) + return n7; + if ("end" === r7.tagStr) + break; + } + }, a6.prototype._decodeList = function(e9, t6, r7, n7) { + for (var i7 = []; !e9.isEmpty(); ) { + var o7 = this._peekTag(e9, "end"); + if (e9.isError(o7)) + return o7; + var s7 = r7.decode(e9, "der", n7); + if (e9.isError(s7) && o7) + break; + i7.push(s7); + } + return i7; + }, a6.prototype._decodeStr = function(e9, t6) { + if ("bitstr" === t6) { + var r7 = e9.readUInt8(); + return e9.isError(r7) ? r7 : { unused: r7, data: e9.raw() }; + } + if ("bmpstr" === t6) { + var n7 = e9.raw(); + if (n7.length % 2 == 1) + return e9.error("Decoding of string type: bmpstr length mismatch"); + for (var i7 = "", o7 = 0; o7 < n7.length / 2; o7++) + i7 += String.fromCharCode(n7.readUInt16BE(2 * o7)); + return i7; + } + if ("numstr" === t6) { + var s7 = e9.raw().toString("ascii"); + return this._isNumstr(s7) ? s7 : e9.error("Decoding of string type: numstr unsupported characters"); + } + if ("octstr" === t6) + return e9.raw(); + if ("objDesc" === t6) + return e9.raw(); + if ("printstr" === t6) { + var a7 = e9.raw().toString("ascii"); + return this._isPrintstr(a7) ? a7 : e9.error("Decoding of string type: printstr unsupported characters"); + } + return /str$/.test(t6) ? e9.raw().toString() : e9.error("Decoding of string type: " + t6 + " unsupported"); + }, a6.prototype._decodeObjid = function(e9, t6, r7) { + for (var n7, i7 = [], o7 = 0; !e9.isEmpty(); ) { + var s7 = e9.readUInt8(); + o7 <<= 7, o7 |= 127 & s7, 0 == (128 & s7) && (i7.push(o7), o7 = 0); + } + 128 & s7 && i7.push(o7); + var a7 = i7[0] / 40 | 0, u7 = i7[0] % 40; + if (n7 = r7 ? i7 : [a7, u7].concat(i7.slice(1)), t6) { + var c7 = t6[n7.join(" ")]; + void 0 === c7 && (c7 = t6[n7.join(".")]), void 0 !== c7 && (n7 = c7); + } + return n7; + }, a6.prototype._decodeTime = function(e9, t6) { + var r7 = e9.raw().toString(); + if ("gentime" === t6) + var n7 = 0 | r7.slice(0, 4), i7 = 0 | r7.slice(4, 6), o7 = 0 | r7.slice(6, 8), s7 = 0 | r7.slice(8, 10), a7 = 0 | r7.slice(10, 12), u7 = 0 | r7.slice(12, 14); + else { + if ("utctime" !== t6) + return e9.error("Decoding " + t6 + " time is not supported yet"); + n7 = 0 | r7.slice(0, 2), i7 = 0 | r7.slice(2, 4), o7 = 0 | r7.slice(4, 6), s7 = 0 | r7.slice(6, 8), a7 = 0 | r7.slice(8, 10), u7 = 0 | r7.slice(10, 12); + n7 = n7 < 70 ? 2e3 + n7 : 1900 + n7; + } + return Date.UTC(n7, i7 - 1, o7, s7, a7, u7, 0); + }, a6.prototype._decodeNull = function(e9) { + return null; + }, a6.prototype._decodeBool = function(e9) { + var t6 = e9.readUInt8(); + return e9.isError(t6) ? t6 : 0 !== t6; + }, a6.prototype._decodeInt = function(e9, t6) { + var r7 = e9.raw(), n7 = new i6(r7); + return t6 && (n7 = t6[n7.toString(10)] || n7), n7; + }, a6.prototype._use = function(e9, t6) { + return "function" == typeof e9 && (e9 = e9(t6)), e9._getDecoder("der").tree; + }, D$5; +} +var O$6 = {}; +var A$9 = false; +var x$7 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var I$9 = {}; +var q$5 = false; +function P$5() { + if (q$5) + return I$9; + q$5 = true; + var e8 = I$9; + return e8.der = C$6(), e8.pem = function() { + if (A$9) + return O$6; + A$9 = true; + var e9 = t$2, r6 = e$1$1.Buffer, i6 = C$6(); + function o6(e10) { + i6.call(this || x$7, e10), (this || x$7).enc = "pem"; + } + return e9(o6, i6), O$6 = o6, o6.prototype.decode = function(e10, t6) { + for (var n6 = e10.toString().split(/[\r\n]+/g), o7 = t6.label.toUpperCase(), s6 = /^-----(BEGIN|END) ([^-]+)-----$/, a6 = -1, u6 = -1, c6 = 0; c6 < n6.length; c6++) { + var f7 = n6[c6].match(s6); + if (null !== f7 && f7[2] === o7) { + if (-1 !== a6) { + if ("END" !== f7[1]) + break; + u6 = c6; + break; + } + if ("BEGIN" !== f7[1]) + break; + a6 = c6; + } + } + if (-1 === a6 || -1 === u6) + throw new Error("PEM section not found for: " + o7); + var l6 = n6.slice(a6 + 1, u6).join(""); + l6.replace(/[^a-z0-9\+\/=]+/gi, ""); + var h6 = new r6(l6, "base64"); + return i6.prototype.decode.call(this || x$7, h6, t6); + }, O$6; + }(), I$9; +} +var F$6 = {}; +var K$5 = false; +var R$4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +function $$2() { + if (K$5) + return F$6; + K$5 = true; + var e8 = t$2, r6 = e$1$1.Buffer, i6 = Y$3(), o6 = i6.base, s6 = i6.constants.der; + function a6(e9) { + (this || R$4).enc = "der", (this || R$4).name = e9.name, (this || R$4).entity = e9, (this || R$4).tree = new u6(), (this || R$4).tree._init(e9.body); + } + function u6(e9) { + o6.Node.call(this || R$4, "der", e9); + } + function c6(e9) { + return e9 < 10 ? "0" + e9 : e9; + } + return F$6 = a6, a6.prototype.encode = function(e9, t6) { + return (this || R$4).tree._encode(e9, t6).join(); + }, e8(u6, o6.Node), u6.prototype._encodeComposite = function(e9, t6, n6, i7) { + var o7, a7 = function(e10, t7, r7, n7) { + var i8; + "seqof" === e10 ? e10 = "seq" : "setof" === e10 && (e10 = "set"); + if (s6.tagByName.hasOwnProperty(e10)) + i8 = s6.tagByName[e10]; + else { + if ("number" != typeof e10 || (0 | e10) !== e10) + return n7.error("Unknown tag: " + e10); + i8 = e10; + } + if (i8 >= 31) + return n7.error("Multi-octet tag encoding unsupported"); + t7 || (i8 |= 32); + return i8 |= s6.tagClassByName[r7 || "universal"] << 6; + }(e9, t6, n6, (this || R$4).reporter); + if (i7.length < 128) + return (o7 = new r6(2))[0] = a7, o7[1] = i7.length, this._createEncoderBuffer([o7, i7]); + for (var u7 = 1, c7 = i7.length; c7 >= 256; c7 >>= 8) + u7++; + (o7 = new r6(2 + u7))[0] = a7, o7[1] = 128 | u7; + c7 = 1 + u7; + for (var f7 = i7.length; f7 > 0; c7--, f7 >>= 8) + o7[c7] = 255 & f7; + return this._createEncoderBuffer([o7, i7]); + }, u6.prototype._encodeStr = function(e9, t6) { + if ("bitstr" === t6) + return this._createEncoderBuffer([0 | e9.unused, e9.data]); + if ("bmpstr" === t6) { + for (var n6 = new r6(2 * e9.length), i7 = 0; i7 < e9.length; i7++) + n6.writeUInt16BE(e9.charCodeAt(i7), 2 * i7); + return this._createEncoderBuffer(n6); + } + return "numstr" === t6 ? this._isNumstr(e9) ? this._createEncoderBuffer(e9) : (this || R$4).reporter.error("Encoding of string type: numstr supports only digits and space") : "printstr" === t6 ? this._isPrintstr(e9) ? this._createEncoderBuffer(e9) : (this || R$4).reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark") : /str$/.test(t6) || "objDesc" === t6 ? this._createEncoderBuffer(e9) : (this || R$4).reporter.error("Encoding of string type: " + t6 + " unsupported"); + }, u6.prototype._encodeObjid = function(e9, t6, n6) { + if ("string" == typeof e9) { + if (!t6) + return (this || R$4).reporter.error("string objid given, but no values map found"); + if (!t6.hasOwnProperty(e9)) + return (this || R$4).reporter.error("objid not found in values map"); + e9 = t6[e9].split(/[\s\.]+/g); + for (var i7 = 0; i7 < e9.length; i7++) + e9[i7] |= 0; + } else if (Array.isArray(e9)) { + e9 = e9.slice(); + for (i7 = 0; i7 < e9.length; i7++) + e9[i7] |= 0; + } + if (!Array.isArray(e9)) + return (this || R$4).reporter.error("objid() should be either array or string, got: " + JSON.stringify(e9)); + if (!n6) { + if (e9[1] >= 40) + return (this || R$4).reporter.error("Second objid identifier OOB"); + e9.splice(0, 2, 40 * e9[0] + e9[1]); + } + var o7 = 0; + for (i7 = 0; i7 < e9.length; i7++) { + var s7 = e9[i7]; + for (o7++; s7 >= 128; s7 >>= 7) + o7++; + } + var a7 = new r6(o7), u7 = a7.length - 1; + for (i7 = e9.length - 1; i7 >= 0; i7--) { + s7 = e9[i7]; + for (a7[u7--] = 127 & s7; (s7 >>= 7) > 0; ) + a7[u7--] = 128 | 127 & s7; + } + return this._createEncoderBuffer(a7); + }, u6.prototype._encodeTime = function(e9, t6) { + var r7, n6 = new Date(e9); + return "gentime" === t6 ? r7 = [c6(n6.getFullYear()), c6(n6.getUTCMonth() + 1), c6(n6.getUTCDate()), c6(n6.getUTCHours()), c6(n6.getUTCMinutes()), c6(n6.getUTCSeconds()), "Z"].join("") : "utctime" === t6 ? r7 = [c6(n6.getFullYear() % 100), c6(n6.getUTCMonth() + 1), c6(n6.getUTCDate()), c6(n6.getUTCHours()), c6(n6.getUTCMinutes()), c6(n6.getUTCSeconds()), "Z"].join("") : (this || R$4).reporter.error("Encoding " + t6 + " time is not supported yet"), this._encodeStr(r7, "octstr"); + }, u6.prototype._encodeNull = function() { + return this._createEncoderBuffer(""); + }, u6.prototype._encodeInt = function(e9, t6) { + if ("string" == typeof e9) { + if (!t6) + return (this || R$4).reporter.error("String int or enum given, but no values map"); + if (!t6.hasOwnProperty(e9)) + return (this || R$4).reporter.error("Values map doesn't contain: " + JSON.stringify(e9)); + e9 = t6[e9]; + } + if ("number" != typeof e9 && !r6.isBuffer(e9)) { + var n6 = e9.toArray(); + !e9.sign && 128 & n6[0] && n6.unshift(0), e9 = new r6(n6); + } + if (r6.isBuffer(e9)) { + var i7 = e9.length; + 0 === e9.length && i7++; + var o7 = new r6(i7); + return e9.copy(o7), 0 === e9.length && (o7[0] = 0), this._createEncoderBuffer(o7); + } + if (e9 < 128) + return this._createEncoderBuffer(e9); + if (e9 < 256) + return this._createEncoderBuffer([0, e9]); + i7 = 1; + for (var s7 = e9; s7 >= 256; s7 >>= 8) + i7++; + for (s7 = (o7 = new Array(i7)).length - 1; s7 >= 0; s7--) + o7[s7] = 255 & e9, e9 >>= 8; + return 128 & o7[0] && o7.unshift(0), this._createEncoderBuffer(new r6(o7)); + }, u6.prototype._encodeBool = function(e9) { + return this._createEncoderBuffer(e9 ? 255 : 0); + }, u6.prototype._use = function(e9, t6) { + return "function" == typeof e9 && (e9 = e9(t6)), e9._getEncoder("der").tree; + }, u6.prototype._skipDefault = function(e9, t6, r7) { + var n6, i7 = (this || R$4)._baseState; + if (null === i7.default) + return false; + var o7 = e9.join(); + if (void 0 === i7.defaultBuffer && (i7.defaultBuffer = this._encodeValue(i7.default, t6, r7).join()), o7.length !== i7.defaultBuffer.length) + return false; + for (n6 = 0; n6 < o7.length; n6++) + if (o7[n6] !== i7.defaultBuffer[n6]) + return false; + return true; + }, F$6; +} +var G$4 = {}; +var L$5 = false; +var M$7 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var J$4 = {}; +var V$4 = false; +function Z$2() { + if (V$4) + return J$4; + V$4 = true; + var e8 = J$4; + return e8.der = $$2(), e8.pem = function() { + if (L$5) + return G$4; + L$5 = true; + var e9 = t$2, r6 = $$2(); + function n6(e10) { + r6.call(this || M$7, e10), (this || M$7).enc = "pem"; + } + return e9(n6, r6), G$4 = n6, n6.prototype.encode = function(e10, t6) { + for (var n7 = r6.prototype.encode.call(this || M$7, e10).toString("base64"), i6 = ["-----BEGIN " + t6.label + "-----"], o6 = 0; o6 < n7.length; o6 += 64) + i6.push(n7.slice(o6, o6 + 64)); + return i6.push("-----END " + t6.label + "-----"), i6.join("\n"); + }, G$4; + }(), J$4; +} +var z$7 = {}; +var H$6 = false; +function Y$3() { + if (H$6) + return z$7; + H$6 = true; + var n6 = z$7; + return n6.bignum = n$c, n6.define = function() { + if (s$j) + return o$n; + s$j = true; + var e8 = Y$3(), n7 = t$2; + function i6(e9, t6) { + (this || a$m).name = e9, (this || a$m).body = t6, (this || a$m).decoders = {}, (this || a$m).encoders = {}; + } + return o$n.define = function(e9, t6) { + return new i6(e9, t6); + }, i6.prototype._createNamed = function(e9) { + var t6; + try { + t6 = exports$11$1.runInThisContext("(function " + (this || a$m).name + "(entity) {\n this._initNamed(entity);\n})"); + } catch (e10) { + t6 = function(e11) { + this._initNamed(e11); + }; + } + return n7(t6, e9), t6.prototype._initNamed = function(t7) { + e9.call(this || a$m, t7); + }, new t6(this || a$m); + }, i6.prototype._getDecoder = function(t6) { + return t6 = t6 || "der", (this || a$m).decoders.hasOwnProperty(t6) || ((this || a$m).decoders[t6] = this._createNamed(e8.decoders[t6])), (this || a$m).decoders[t6]; + }, i6.prototype.decode = function(e9, t6, r6) { + return this._getDecoder(t6).decode(e9, r6); + }, i6.prototype._getEncoder = function(t6) { + return t6 = t6 || "der", (this || a$m).encoders.hasOwnProperty(t6) || ((this || a$m).encoders[t6] = this._createNamed(e8.encoders[t6])), (this || a$m).encoders[t6]; + }, i6.prototype.encode = function(e9, t6, r6) { + return this._getEncoder(t6).encode(e9, r6); + }, o$n; + }().define, n6.base = E$9(), n6.constants = T$6(), n6.decoders = P$5(), n6.encoders = Z$2(), z$7; +} +var Q$3 = Y$3(); +var e$f = Q$3; +var t$a = e$f.define("Time", function() { + this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }); +}); +var s$k = e$f.define("AttributeTypeValue", function() { + this.seq().obj(this.key("type").objid(), this.key("value").any()); +}); +var n$n = e$f.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional(), this.key("curve").objid().optional()); +}); +var o$o = e$f.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(n$n), this.key("subjectPublicKey").bitstr()); +}); +var h$h = e$f.define("RelativeDistinguishedName", function() { + this.setof(s$k); +}); +var y$g = e$f.define("RDNSequence", function() { + this.seqof(h$h); +}); +var r$g = e$f.define("Name", function() { + this.choice({ rdnSequence: this.use(y$g) }); +}); +var u$k = e$f.define("Validity", function() { + this.seq().obj(this.key("notBefore").use(t$a), this.key("notAfter").use(t$a)); +}); +var a$n = e$f.define("Extension", function() { + this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(false), this.key("extnValue").octstr()); +}); +var c$j = e$f.define("TBSCertificate", function() { + this.seq().obj(this.key("version").explicit(0).int().optional(), this.key("serialNumber").int(), this.key("signature").use(n$n), this.key("issuer").use(r$g), this.key("validity").use(u$k), this.key("subject").use(r$g), this.key("subjectPublicKeyInfo").use(o$o), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(a$n).optional()); +}); +var k$d = e$f.define("X509Certificate", function() { + this.seq().obj(this.key("tbsCertificate").use(c$j), this.key("signatureAlgorithm").use(n$n), this.key("signatureValue").bitstr()); +}); +var f$o = {}; +var b$d = Q$3; +f$o.certificate = k$d; +var l$l = b$d.define("RSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("modulus").int(), this.key("publicExponent").int(), this.key("privateExponent").int(), this.key("prime1").int(), this.key("prime2").int(), this.key("exponent1").int(), this.key("exponent2").int(), this.key("coefficient").int()); +}); +f$o.RSAPrivateKey = l$l; +var d$j = b$d.define("RSAPublicKey", function() { + this.seq().obj(this.key("modulus").int(), this.key("publicExponent").int()); +}); +f$o.RSAPublicKey = d$j; +var p$l = b$d.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(j$7), this.key("subjectPublicKey").bitstr()); +}); +f$o.PublicKey = p$l; +var j$7 = b$d.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params").seq().obj(this.key("p").int(), this.key("q").int(), this.key("g").int()).optional()); +}); +var v$g = b$d.define("PrivateKeyInfo", function() { + this.seq().obj(this.key("version").int(), this.key("algorithm").use(j$7), this.key("subjectPrivateKey").octstr()); +}); +f$o.PrivateKey = v$g; +var m$h = b$d.define("EncryptedPrivateKeyInfo", function() { + this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(), this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(), this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters").int())), this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()))), this.key("subjectPrivateKey").octstr()); +}); +f$o.EncryptedPrivateKey = m$h; +var q$6 = b$d.define("DSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("p").int(), this.key("q").int(), this.key("g").int(), this.key("pub_key").int(), this.key("priv_key").int()); +}); +f$o.DSAPrivateKey = q$6, f$o.DSAparam = b$d.define("DSAparam", function() { + this.int(); +}); +var K$6 = b$d.define("ECPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(P$6), this.key("publicKey").optional().explicit(1).bitstr()); +}); +f$o.ECPrivateKey = K$6; +var P$6 = b$d.define("ECParameters", function() { + this.choice({ namedCurve: this.objid() }); +}); +f$o.signature = b$d.define("signature", function() { + this.seq().obj(this.key("r").int(), this.key("s").int()); +}); +var s$l; +var i$a = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m; +var o$p = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m; +var d$k = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m; +var n$o = a$c; +var p$m = t$3; +var u$l = u4.Buffer; +var y$h = f$o; +var m$i = { "2.16.840.1.101.3.4.1.1": "aes-128-ecb", "2.16.840.1.101.3.4.1.2": "aes-128-cbc", "2.16.840.1.101.3.4.1.3": "aes-128-ofb", "2.16.840.1.101.3.4.1.4": "aes-128-cfb", "2.16.840.1.101.3.4.1.21": "aes-192-ecb", "2.16.840.1.101.3.4.1.22": "aes-192-cbc", "2.16.840.1.101.3.4.1.23": "aes-192-ofb", "2.16.840.1.101.3.4.1.24": "aes-192-cfb", "2.16.840.1.101.3.4.1.41": "aes-256-ecb", "2.16.840.1.101.3.4.1.42": "aes-256-cbc", "2.16.840.1.101.3.4.1.43": "aes-256-ofb", "2.16.840.1.101.3.4.1.44": "aes-256-cfb" }; +var f$p = function(e8, r6) { + var a6, t6 = e8.toString(), c6 = t6.match(i$a); + if (c6) { + var s6 = "aes" + c6[1], y5 = u$l.from(c6[2], "hex"), m5 = u$l.from(c6[3].replace(/[\r\n]/g, ""), "base64"), f7 = n$o(r6, y5.slice(0, 8), parseInt(c6[1], 10)).key, b4 = [], E4 = p$m.createDecipheriv(s6, f7, y5); + b4.push(E4.update(m5)), b4.push(E4.final()), a6 = u$l.concat(b4); + } else { + var h6 = t6.match(d$k); + a6 = new u$l(h6[2].replace(/[\r\n]/g, ""), "base64"); + } + return { tag: t6.match(o$p)[1], data: a6 }; +}; +var b$e = t$3; +var E$a = M$1; +var h$i = u4.Buffer; +function l$m(e8) { + var r6; + "object" != typeof e8 || h$i.isBuffer(e8) || (r6 = e8.passphrase, e8 = e8.key), "string" == typeof e8 && (e8 = h$i.from(e8)); + var a6, t6, c6 = f$p(e8, r6), s6 = c6.tag, i6 = c6.data; + switch (s6) { + case "CERTIFICATE": + t6 = y$h.certificate.decode(i6, "der").tbsCertificate.subjectPublicKeyInfo; + case "PUBLIC KEY": + switch (t6 || (t6 = y$h.PublicKey.decode(i6, "der")), a6 = t6.algorithm.algorithm.join(".")) { + case "1.2.840.113549.1.1.1": + return y$h.RSAPublicKey.decode(t6.subjectPublicKey.data, "der"); + case "1.2.840.10045.2.1": + return t6.subjectPrivateKey = t6.subjectPublicKey, { type: "ec", data: t6 }; + case "1.2.840.10040.4.1": + return t6.algorithm.params.pub_key = y$h.DSAparam.decode(t6.subjectPublicKey.data, "der"), { type: "dsa", data: t6.algorithm.params }; + default: + throw new Error("unknown key id " + a6); + } + case "ENCRYPTED PRIVATE KEY": + i6 = function(e9, r7) { + var a7 = e9.algorithm.decrypt.kde.kdeparams.salt, t7 = parseInt(e9.algorithm.decrypt.kde.kdeparams.iters.toString(), 10), c7 = m$i[e9.algorithm.decrypt.cipher.algo.join(".")], s7 = e9.algorithm.decrypt.cipher.iv, i7 = e9.subjectPrivateKey, o6 = parseInt(c7.split("-")[1], 10) / 8, d5 = E$a.pbkdf2Sync(r7, a7, t7, o6, "sha1"), n6 = b$e.createDecipheriv(c7, d5, s7), p6 = []; + return p6.push(n6.update(i7)), p6.push(n6.final()), h$i.concat(p6); + }(i6 = y$h.EncryptedPrivateKey.decode(i6, "der"), r6); + case "PRIVATE KEY": + switch (a6 = (t6 = y$h.PrivateKey.decode(i6, "der")).algorithm.algorithm.join(".")) { + case "1.2.840.113549.1.1.1": + return y$h.RSAPrivateKey.decode(t6.subjectPrivateKey, "der"); + case "1.2.840.10045.2.1": + return { curve: t6.algorithm.curve, privateKey: y$h.ECPrivateKey.decode(t6.subjectPrivateKey, "der").privateKey }; + case "1.2.840.10040.4.1": + return t6.algorithm.params.priv_key = y$h.DSAparam.decode(t6.subjectPrivateKey, "der"), { type: "dsa", params: t6.algorithm.params }; + default: + throw new Error("unknown key id " + a6); + } + case "RSA PUBLIC KEY": + return y$h.RSAPublicKey.decode(i6, "der"); + case "RSA PRIVATE KEY": + return y$h.RSAPrivateKey.decode(i6, "der"); + case "DSA PRIVATE KEY": + return { type: "dsa", params: y$h.DSAPrivateKey.decode(i6, "der") }; + case "EC PRIVATE KEY": + return { curve: (i6 = y$h.ECPrivateKey.decode(i6, "der")).parameters.value, privateKey: i6.privateKey }; + default: + throw new Error("unknown key type " + s6); + } +} +s$l = l$m, l$m.signature = y$h.signature; +var v$h = s$l; +var p$n = { "1.3.132.0.10": "secp256k1", "1.3.132.0.33": "p224", "1.2.840.10045.3.1.1": "p192", "1.2.840.10045.3.1.7": "p256", "1.3.132.0.34": "p384", "1.3.132.0.35": "p521" }; +var d$l = {}; +var f$q = e$1$1.Buffer; +var c$k = w$3; +var g$f = l$d; +var w$g = Le.ec; +var l$n = n$c; +var m$j = v$h; +var v$i = p$n; +function y$i(e8, t6, r6, n6) { + if ((e8 = new f$q(e8.toArray())).length < t6.byteLength()) { + var a6 = new f$q(t6.byteLength() - e8.length); + a6.fill(0), e8 = f$q.concat([a6, e8]); + } + var o6 = r6.length, i6 = function(e9, t7) { + e9 = (e9 = b$f(e9, t7)).mod(t7); + var r7 = new f$q(e9.toArray()); + if (r7.length < t7.byteLength()) { + var n7 = new f$q(t7.byteLength() - r7.length); + n7.fill(0), r7 = f$q.concat([n7, r7]); + } + return r7; + }(r6, t6), s6 = new f$q(o6); + s6.fill(1); + var h6 = new f$q(o6); + return h6.fill(0), h6 = c$k(n6, h6).update(s6).update(new f$q([0])).update(e8).update(i6).digest(), s6 = c$k(n6, h6).update(s6).digest(), { k: h6 = c$k(n6, h6).update(s6).update(new f$q([1])).update(e8).update(i6).digest(), v: s6 = c$k(n6, h6).update(s6).digest() }; +} +function b$f(e8, t6) { + var r6 = new l$n(e8), n6 = (e8.length << 3) - t6.bitLength(); + return n6 > 0 && r6.ishrn(n6), r6; +} +function _$f(e8, t6, r6) { + var n6, a6; + do { + for (n6 = new f$q(0); 8 * n6.length < e8.bitLength(); ) + t6.v = c$k(r6, t6.k).update(t6.v).digest(), n6 = f$q.concat([n6, t6.v]); + a6 = b$f(n6, e8), t6.k = c$k(r6, t6.k).update(t6.v).update(new f$q([0])).digest(), t6.v = c$k(r6, t6.k).update(t6.v).digest(); + } while (-1 !== a6.cmp(e8)); + return a6; +} +function k$e(e8, t6, r6, n6) { + return e8.toRed(l$n.mont(r6)).redPow(t6).fromRed().mod(n6); +} +(d$l = function(e8, t6, r6, n6, a6) { + var o6 = m$j(t6); + if (o6.curve) { + if ("ecdsa" !== n6 && "ecdsa/rsa" !== n6) + throw new Error("wrong private key type"); + return function(e9, t7) { + var r7 = v$i[t7.curve.join(".")]; + if (!r7) + throw new Error("unknown curve " + t7.curve.join(".")); + var n7 = new w$g(r7).keyFromPrivate(t7.privateKey).sign(e9); + return new f$q(n7.toDER()); + }(e8, o6); + } + if ("dsa" === o6.type) { + if ("dsa" !== n6) + throw new Error("wrong private key type"); + return function(e9, t7, r7) { + var n7, a7 = t7.params.priv_key, o7 = t7.params.p, i7 = t7.params.q, s7 = t7.params.g, h7 = new l$n(0), u6 = b$f(e9, i7).mod(i7), p6 = false, d5 = y$i(a7, i7, e9, r7); + for (; false === p6; ) + n7 = _$f(i7, d5, r7), h7 = k$e(s7, n7, o7, i7), 0 === (p6 = n7.invm(i7).imul(u6.add(a7.mul(h7))).mod(i7)).cmpn(0) && (p6 = false, h7 = new l$n(0)); + return function(e10, t8) { + e10 = e10.toArray(), t8 = t8.toArray(), 128 & e10[0] && (e10 = [0].concat(e10)); + 128 & t8[0] && (t8 = [0].concat(t8)); + var r8 = [48, e10.length + t8.length + 4, 2, e10.length]; + return r8 = r8.concat(e10, [2, t8.length], t8), new f$q(r8); + }(h7, p6); + }(e8, o6, r6); + } + if ("rsa" !== n6 && "ecdsa/rsa" !== n6) + throw new Error("wrong private key type"); + e8 = f$q.concat([a6, e8]); + for (var i6 = o6.modulus.byteLength(), s6 = [0, 1]; e8.length + s6.length + 1 < i6; ) + s6.push(255); + s6.push(0); + for (var h6 = -1; ++h6 < e8.length; ) + s6.push(e8[h6]); + return g$f(s6, o6); +}).getKey = y$i, d$l.makeKey = _$f; +var E$b = d$l; +var L$6 = e$1$1.Buffer; +var R$5 = n$c; +var j$8 = Le.ec; +var T$7 = v$h; +var P$7 = p$n; +function A$a(e8, t6) { + if (e8.cmpn(0) <= 0) + throw new Error("invalid sig"); + if (e8.cmp(t6) >= t6) + throw new Error("invalid sig"); +} +var K$7 = function(e8, t6, r6, n6, a6) { + var o6 = T$7(r6); + if ("ec" === o6.type) { + if ("ecdsa" !== n6 && "ecdsa/rsa" !== n6) + throw new Error("wrong public key type"); + return function(e9, t7, r7) { + var n7 = P$7[r7.data.algorithm.curve.join(".")]; + if (!n7) + throw new Error("unknown curve " + r7.data.algorithm.curve.join(".")); + var a7 = new j$8(n7), o7 = r7.data.subjectPrivateKey.data; + return a7.verify(t7, e9, o7); + }(e8, t6, o6); + } + if ("dsa" === o6.type) { + if ("dsa" !== n6) + throw new Error("wrong public key type"); + return function(e9, t7, r7) { + var n7 = r7.data.p, a7 = r7.data.q, o7 = r7.data.g, i7 = r7.data.pub_key, s7 = T$7.signature.decode(e9, "der"), h7 = s7.s, u7 = s7.r; + A$a(h7, a7), A$a(u7, a7); + var p7 = R$5.mont(n7), d6 = h7.invm(a7); + return 0 === o7.toRed(p7).redPow(new R$5(t7).mul(d6).mod(a7)).fromRed().mul(i7.toRed(p7).redPow(u7.mul(d6).mod(a7)).fromRed()).mod(n7).mod(a7).cmp(u7); + }(e8, t6, o6); + } + if ("rsa" !== n6 && "ecdsa/rsa" !== n6) + throw new Error("wrong public key type"); + t6 = L$6.concat([a6, t6]); + for (var i6 = o6.modulus.byteLength(), s6 = [1], h6 = 0; t6.length + s6.length + 2 < i6; ) + s6.push(255), h6++; + s6.push(0); + for (var u6 = -1; ++u6 < t6.length; ) + s6.push(t6[u6]); + s6 = new L$6(s6); + var p6 = R$5.mont(o6.modulus); + e8 = (e8 = new R$5(e8).toRed(p6)).redPow(new R$5(o6.publicExponent)), e8 = new L$6(e8.fromRed().toArray()); + var d5 = h6 < 8 ? 1 : 0; + for (i6 = Math.min(e8.length, s6.length), e8.length !== s6.length && (d5 = 1), u6 = -1; ++u6 < i6; ) + d5 |= e8[u6] ^ s6[u6]; + return 0 === d5; +}; +var W$4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var x$8 = e$1$1.Buffer; +var B$a = h$4; +var S$b = b$i; +var q$7 = t$2; +var U$8 = E$b; +var V$5 = K$7; +var C$7 = s$4; +function D$6(e8) { + S$b.Writable.call(this || W$4); + var t6 = C$7[e8]; + if (!t6) + throw new Error("Unknown message digest"); + (this || W$4)._hashType = t6.hash, (this || W$4)._hash = B$a(t6.hash), (this || W$4)._tag = t6.id, (this || W$4)._signType = t6.sign; +} +function F$7(e8) { + S$b.Writable.call(this || W$4); + var t6 = C$7[e8]; + if (!t6) + throw new Error("Unknown message digest"); + (this || W$4)._hash = B$a(t6.hash), (this || W$4)._tag = t6.id, (this || W$4)._signType = t6.sign; +} +function M$8(e8) { + return new D$6(e8); +} +function O$7(e8) { + return new F$7(e8); +} +Object.keys(C$7).forEach(function(e8) { + C$7[e8].id = new x$8(C$7[e8].id, "hex"), C$7[e8.toLowerCase()] = C$7[e8]; +}), q$7(D$6, S$b.Writable), D$6.prototype._write = function(e8, t6, r6) { + (this || W$4)._hash.update(e8), r6(); +}, D$6.prototype.update = function(e8, t6) { + return "string" == typeof e8 && (e8 = new x$8(e8, t6)), (this || W$4)._hash.update(e8), this || W$4; +}, D$6.prototype.sign = function(e8, t6) { + this.end(); + var r6 = (this || W$4)._hash.digest(), n6 = U$8(r6, e8, (this || W$4)._hashType, (this || W$4)._signType, (this || W$4)._tag); + return t6 ? n6.toString(t6) : n6; +}, q$7(F$7, S$b.Writable), F$7.prototype._write = function(e8, t6, r6) { + (this || W$4)._hash.update(e8), r6(); +}, F$7.prototype.update = function(e8, t6) { + return "string" == typeof e8 && (e8 = new x$8(e8, t6)), (this || W$4)._hash.update(e8), this || W$4; +}, F$7.prototype.verify = function(e8, t6, r6) { + "string" == typeof t6 && (t6 = new x$8(t6, r6)), this.end(); + var n6 = (this || W$4)._hash.digest(); + return V$5(t6, n6, e8, (this || W$4)._signType, (this || W$4)._tag); +}; +var z$8 = { Sign: M$8, Verify: O$7, createSign: M$8, createVerify: O$7 }; +var i$b; +var n$p = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var p$o = e$1$1.Buffer; +var s$m = Le; +var u$m = n$c; +i$b = function(e8) { + return new c$l(e8); +}; +var o$q = { secp256k1: { name: "secp256k1", byteLength: 32 }, secp224r1: { name: "p224", byteLength: 28 }, prime256v1: { name: "p256", byteLength: 32 }, prime192v1: { name: "p192", byteLength: 24 }, ed25519: { name: "ed25519", byteLength: 32 }, secp384r1: { name: "p384", byteLength: 48 }, secp521r1: { name: "p521", byteLength: 66 } }; +function c$l(e8) { + (this || n$p).curveType = o$q[e8], (this || n$p).curveType || ((this || n$p).curveType = { name: e8 }), (this || n$p).curve = new s$m.ec((this || n$p).curveType.name), (this || n$p).keys = void 0; +} +function y$j(e8, t6, r6) { + Array.isArray(e8) || (e8 = e8.toArray()); + var i6 = new p$o(e8); + if (r6 && i6.length < r6) { + var n6 = new p$o(r6 - i6.length); + n6.fill(0), i6 = p$o.concat([n6, i6]); + } + return t6 ? i6.toString(t6) : i6; +} +o$q.p224 = o$q.secp224r1, o$q.p256 = o$q.secp256r1 = o$q.prime256v1, o$q.p192 = o$q.secp192r1 = o$q.prime192v1, o$q.p384 = o$q.secp384r1, o$q.p521 = o$q.secp521r1, c$l.prototype.generateKeys = function(e8, t6) { + return (this || n$p).keys = (this || n$p).curve.genKeyPair(), this.getPublicKey(e8, t6); +}, c$l.prototype.computeSecret = function(e8, t6, r6) { + return t6 = t6 || "utf8", p$o.isBuffer(e8) || (e8 = new p$o(e8, t6)), y$j((this || n$p).curve.keyFromPublic(e8).getPublic().mul((this || n$p).keys.getPrivate()).getX(), r6, (this || n$p).curveType.byteLength); +}, c$l.prototype.getPublicKey = function(e8, t6) { + var r6 = (this || n$p).keys.getPublic("compressed" === t6, true); + return "hybrid" === t6 && (r6[r6.length - 1] % 2 ? r6[0] = 7 : r6[0] = 6), y$j(r6, e8); +}, c$l.prototype.getPrivateKey = function(e8) { + return y$j((this || n$p).keys.getPrivate(), e8); +}, c$l.prototype.setPublicKey = function(e8, t6) { + return t6 = t6 || "utf8", p$o.isBuffer(e8) || (e8 = new p$o(e8, t6)), (this || n$p).keys._importPublic(e8), this || n$p; +}, c$l.prototype.setPrivateKey = function(e8, t6) { + t6 = t6 || "utf8", p$o.isBuffer(e8) || (e8 = new p$o(e8, t6)); + var r6 = new u$m(e8); + return r6 = r6.toString(16), (this || n$p).keys = (this || n$p).curve.genKeyPair(), (this || n$p).keys._importPrivate(r6), this || n$p; +}; +var f$r = i$b; +var i$c = h$4; +var l$o = u4.Buffer; +function f$s(r6) { + var n6 = l$o.allocUnsafe(4); + return n6.writeUInt32BE(r6, 0), n6; +} +var u$n = function(r6, n6) { + for (var e8, t6 = l$o.alloc(0), o6 = 0; t6.length < n6; ) + e8 = f$s(o6++), t6 = l$o.concat([t6, i$c("sha1").update(r6).update(e8).digest()]); + return t6.slice(0, n6); +}; +var c$m = function(r6, n6) { + for (var e8 = r6.length, t6 = -1; ++t6 < e8; ) + r6[t6] ^= n6[t6]; + return r6; +}; +var p$p = n$c; +var d$m = u4.Buffer; +var h$j = function(r6, n6) { + return d$m.from(r6.toRed(p$p.mont(n6.modulus)).redPow(new p$p(n6.publicExponent)).fromRed().toArray()); +}; +var s$n = v$h; +var g$g = a5; +var m$k = h$4; +var w$h = u$n; +var v$j = c$m; +var y$k = n$c; +var E$c = h$j; +var b$g = l$d; +var B$b = u4.Buffer; +var x$9 = function(r6, n6, e8) { + var t6; + t6 = r6.padding ? r6.padding : e8 ? 1 : 4; + var o6, a6 = s$n(r6); + if (4 === t6) + o6 = function(r7, n7) { + var e9 = r7.modulus.byteLength(), t7 = n7.length, o7 = m$k("sha1").update(B$b.alloc(0)).digest(), a7 = o7.length, i6 = 2 * a7; + if (t7 > e9 - i6 - 2) + throw new Error("message too long"); + var l6 = B$b.alloc(e9 - t7 - i6 - 2), f7 = e9 - a7 - 1, u6 = g$g(a7), c6 = v$j(B$b.concat([o7, l6, B$b.alloc(1, 1), n7], f7), w$h(u6, f7)), p6 = v$j(u6, w$h(c6, a7)); + return new y$k(B$b.concat([B$b.alloc(1), p6, c6], e9)); + }(a6, n6); + else if (1 === t6) + o6 = function(r7, n7, e9) { + var t7, o7 = n7.length, a7 = r7.modulus.byteLength(); + if (o7 > a7 - 11) + throw new Error("message too long"); + t7 = e9 ? B$b.alloc(a7 - o7 - 3, 255) : function(r8) { + var n8, e10 = B$b.allocUnsafe(r8), t8 = 0, o8 = g$g(2 * r8), a8 = 0; + for (; t8 < r8; ) + a8 === o8.length && (o8 = g$g(2 * r8), a8 = 0), (n8 = o8[a8++]) && (e10[t8++] = n8); + return e10; + }(a7 - o7 - 3); + return new y$k(B$b.concat([B$b.from([0, e9 ? 1 : 2]), t7, B$b.alloc(1), n7], a7)); + }(a6, n6, e8); + else { + if (3 !== t6) + throw new Error("unknown padding"); + if ((o6 = new y$k(n6)).cmp(a6.modulus) >= 0) + throw new Error("data too long for modulus"); + } + return e8 ? b$g(o6, a6) : E$c(o6, a6); +}; +var L$7 = v$h; +var k$f = u$n; +var D$7 = c$m; +var U$9 = n$c; +var R$6 = l$d; +var S$c = h$4; +var j$9 = h$j; +var A$b = u4.Buffer; +var I$a = function(r6, n6, e8) { + var t6; + t6 = r6.padding ? r6.padding : e8 ? 1 : 4; + var o6, a6 = L$7(r6), i6 = a6.modulus.byteLength(); + if (n6.length > i6 || new U$9(n6).cmp(a6.modulus) >= 0) + throw new Error("decryption error"); + o6 = e8 ? j$9(new U$9(n6), a6) : R$6(n6, a6); + var l6 = A$b.alloc(i6 - o6.length); + if (o6 = A$b.concat([l6, o6], i6), 4 === t6) + return function(r7, n7) { + var e9 = r7.modulus.byteLength(), t7 = S$c("sha1").update(A$b.alloc(0)).digest(), o7 = t7.length; + if (0 !== n7[0]) + throw new Error("decryption error"); + var a7 = n7.slice(1, o7 + 1), i7 = n7.slice(o7 + 1), l7 = D$7(a7, k$f(i7, o7)), f7 = D$7(i7, k$f(l7, e9 - o7 - 1)); + if (function(r8, n8) { + r8 = A$b.from(r8), n8 = A$b.from(n8); + var e10 = 0, t8 = r8.length; + r8.length !== n8.length && (e10++, t8 = Math.min(r8.length, n8.length)); + var o8 = -1; + for (; ++o8 < t8; ) + e10 += r8[o8] ^ n8[o8]; + return e10; + }(t7, f7.slice(0, o7))) + throw new Error("decryption error"); + var u6 = o7; + for (; 0 === f7[u6]; ) + u6++; + if (1 !== f7[u6++]) + throw new Error("decryption error"); + return f7.slice(u6); + }(a6, o6); + if (1 === t6) + return function(r7, n7, e9) { + var t7 = n7.slice(0, 2), o7 = 2, a7 = 0; + for (; 0 !== n7[o7++]; ) + if (o7 >= n7.length) { + a7++; + break; + } + var i7 = n7.slice(2, o7 - 1); + ("0002" !== t7.toString("hex") && !e9 || "0001" !== t7.toString("hex") && e9) && a7++; + i7.length < 8 && a7++; + if (a7) + throw new Error("decryption error"); + return n7.slice(o7); + }(0, o6, e8); + if (3 === t6) + return o6; + throw new Error("unknown padding"); +}; +var M$9 = {}; +M$9.publicEncrypt = x$9, M$9.privateDecrypt = I$a, M$9.privateEncrypt = function(r6, n6) { + return M$9.publicEncrypt(r6, n6, true); +}, M$9.publicDecrypt = function(r6, n6) { + return M$9.privateDecrypt(r6, n6, true); +}; +var o$r = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis; +var t$b = {}; +var f$t = T; +function i$d() { + throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11"); +} +var u$o = u4; +var a$o = a5; +var s$o = u$o.Buffer; +var l$p = u$o.kMaxLength; +var m$l = o$r.crypto || o$r.msCrypto; +var p$q = Math.pow(2, 32) - 1; +function y$l(r6, e8) { + if ("number" != typeof r6 || r6 != r6) + throw new TypeError("offset must be a number"); + if (r6 > p$q || r6 < 0) + throw new TypeError("offset must be a uint32"); + if (r6 > l$p || r6 > e8) + throw new RangeError("offset out of range"); +} +function b$h(r6, e8, n6) { + if ("number" != typeof r6 || r6 != r6) + throw new TypeError("size must be a number"); + if (r6 > p$q || r6 < 0) + throw new TypeError("size must be a uint32"); + if (r6 + e8 > n6 || r6 > l$p) + throw new RangeError("buffer too small"); +} +function w$i(r6, e8, n6, o6) { + if (f$t.browser) { + var t6 = r6.buffer, i6 = new Uint8Array(t6, e8, n6); + return m$l.getRandomValues(i6), o6 ? (f$t.nextTick(function() { + o6(null, r6); + }), void 0) : r6; + } + return o6 ? (a$o(n6, function(n7, t7) { + if (n7) + return o6(n7); + t7.copy(r6, e8), o6(null, r6); + }), void 0) : (a$o(n6).copy(r6, e8), r6); +} +m$l && m$l.getRandomValues || !f$t.browser ? (t$b.randomFill = function(r6, e8, n6, t6) { + if (!(s$o.isBuffer(r6) || r6 instanceof o$r.Uint8Array)) + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + if ("function" == typeof e8) + t6 = e8, e8 = 0, n6 = r6.length; + else if ("function" == typeof n6) + t6 = n6, n6 = r6.length - e8; + else if ("function" != typeof t6) + throw new TypeError('"cb" argument must be a function'); + return y$l(e8, r6.length), b$h(n6, e8, r6.length), w$i(r6, e8, n6, t6); +}, t$b.randomFillSync = function(r6, e8, n6) { + void 0 === e8 && (e8 = 0); + if (!(s$o.isBuffer(r6) || r6 instanceof o$r.Uint8Array)) + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + y$l(e8, r6.length), void 0 === n6 && (n6 = r6.length - e8); + return b$h(n6, e8, r6.length), w$i(r6, e8, n6); +}) : (t$b.randomFill = i$d, t$b.randomFillSync = i$d); +var l$q = {}; +l$q.randomBytes = l$q.rng = l$q.pseudoRandomBytes = l$q.prng = a5, l$q.createHash = l$q.Hash = h$4, l$q.createHmac = l$q.Hmac = w$3; +var D$8 = s$4; +var s$p = Object.keys(D$8); +var _$g = ["sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160"].concat(s$p); +l$q.getHashes = function() { + return _$g; +}; +var h$k = M$1; +l$q.pbkdf2 = h$k.pbkdf2, l$q.pbkdf2Sync = h$k.pbkdf2Sync; +var y$m = p$d; +l$q.Cipher = y$m.Cipher, l$q.createCipher = y$m.createCipher, l$q.Cipheriv = y$m.Cipheriv, l$q.createCipheriv = y$m.createCipheriv, l$q.Decipher = y$m.Decipher, l$q.createDecipher = y$m.createDecipher, l$q.Decipheriv = y$m.Decipheriv, l$q.createDecipheriv = y$m.createDecipheriv, l$q.getCiphers = y$m.getCiphers, l$q.listCiphers = y$m.listCiphers; +var E$d = O$3; +l$q.DiffieHellmanGroup = E$d.DiffieHellmanGroup, l$q.createDiffieHellmanGroup = E$d.createDiffieHellmanGroup, l$q.getDiffieHellman = E$d.getDiffieHellman, l$q.createDiffieHellman = E$d.createDiffieHellman, l$q.DiffieHellman = E$d.DiffieHellman; +var S$d = z$8; +l$q.createSign = S$d.createSign, l$q.Sign = S$d.Sign, l$q.createVerify = S$d.createVerify, l$q.Verify = S$d.Verify, l$q.createECDH = f$r; +var C$8 = M$9; +l$q.publicEncrypt = C$8.publicEncrypt, l$q.privateEncrypt = C$8.privateEncrypt, l$q.publicDecrypt = C$8.publicDecrypt, l$q.privateDecrypt = C$8.privateDecrypt; +var N$6 = t$b; +l$q.randomFill = N$6.randomFill, l$q.randomFillSync = N$6.randomFillSync, l$q.createCredentials = function() { + throw new Error(["sorry, createCredentials is not implemented yet", "we accept pull requests", "https://github.com/crypto-browserify/crypto-browserify"].join("\n")); +}, l$q.constants = { DH_CHECK_P_NOT_SAFE_PRIME: 2, DH_CHECK_P_NOT_PRIME: 1, DH_UNABLE_TO_CHECK_GENERATOR: 4, DH_NOT_SUITABLE_GENERATOR: 8, NPN_ENABLED: 1, ALPN_ENABLED: 1, RSA_PKCS1_PADDING: 1, RSA_SSLV23_PADDING: 2, RSA_NO_PADDING: 3, RSA_PKCS1_OAEP_PADDING: 4, RSA_X931_PADDING: 5, RSA_PKCS1_PSS_PADDING: 6, POINT_CONVERSION_COMPRESSED: 2, POINT_CONVERSION_UNCOMPRESSED: 4, POINT_CONVERSION_HYBRID: 6 }; +var exports$10$1 = {}; +var _dewExec$10$1 = false; +var _global$a$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$10$1() { + if (_dewExec$10$1) + return exports$10$1; + _dewExec$10$1 = true; + var r6; + exports$10$1 = function rand(len) { + if (!r6) + r6 = new Rand(null); + return r6.generate(len); + }; + function Rand(rand) { + (this || _global$a$1).rand = rand; + } + exports$10$1.Rand = Rand; + Rand.prototype.generate = function generate(len) { + return this._rand(len); + }; + Rand.prototype._rand = function _rand(n6) { + if ((this || _global$a$1).rand.getBytes) + return (this || _global$a$1).rand.getBytes(n6); + var res = new Uint8Array(n6); + for (var i6 = 0; i6 < res.length; i6++) + res[i6] = (this || _global$a$1).rand.getByte(); + return res; + }; + if (typeof self === "object") { + if (self.crypto && self.crypto.getRandomValues) { + Rand.prototype._rand = function _rand(n6) { + var arr = new Uint8Array(n6); + self.crypto.getRandomValues(arr); + return arr; + }; + } else if (self.msCrypto && self.msCrypto.getRandomValues) { + Rand.prototype._rand = function _rand(n6) { + var arr = new Uint8Array(n6); + self.msCrypto.getRandomValues(arr); + return arr; + }; + } else if (typeof window === "object") { + Rand.prototype._rand = function() { + throw new Error("Not implemented yet"); + }; + } + } else { + try { + var crypto2 = l$q; + if (typeof crypto2.randomBytes !== "function") + throw new Error("Not supported"); + Rand.prototype._rand = function _rand(n6) { + return crypto2.randomBytes(n6); + }; + } catch (e8) { + } + } + return exports$10$1; +} +var exports$$$1 = {}; +var _dewExec$$$1 = false; +var _global$9$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$$$1() { + if (_dewExec$$$1) + return exports$$$1; + _dewExec$$$1 = true; + var bn = dew$11$1(); + var brorand = dew$10$1(); + function MillerRabin(rand) { + (this || _global$9$1).rand = rand || new brorand.Rand(); + } + exports$$$1 = MillerRabin; + MillerRabin.create = function create(rand) { + return new MillerRabin(rand); + }; + MillerRabin.prototype._randbelow = function _randbelow(n6) { + var len = n6.bitLength(); + var min_bytes = Math.ceil(len / 8); + do + var a6 = new bn((this || _global$9$1).rand.generate(min_bytes)); + while (a6.cmp(n6) >= 0); + return a6; + }; + MillerRabin.prototype._randrange = function _randrange(start, stop) { + var size = stop.sub(start); + return start.add(this._randbelow(size)); + }; + MillerRabin.prototype.test = function test(n6, k4, cb) { + var len = n6.bitLength(); + var red = bn.mont(n6); + var rone = new bn(1).toRed(red); + if (!k4) + k4 = Math.max(1, len / 48 | 0); + var n1 = n6.subn(1); + for (var s6 = 0; !n1.testn(s6); s6++) { + } + var d5 = n6.shrn(s6); + var rn1 = n1.toRed(red); + var prime = true; + for (; k4 > 0; k4--) { + var a6 = this._randrange(new bn(2), n1); + if (cb) + cb(a6); + var x4 = a6.toRed(red).redPow(d5); + if (x4.cmp(rone) === 0 || x4.cmp(rn1) === 0) + continue; + for (var i6 = 1; i6 < s6; i6++) { + x4 = x4.redSqr(); + if (x4.cmp(rone) === 0) + return false; + if (x4.cmp(rn1) === 0) + break; + } + if (i6 === s6) + return false; + } + return prime; + }; + MillerRabin.prototype.getDivisor = function getDivisor(n6, k4) { + var len = n6.bitLength(); + var red = bn.mont(n6); + var rone = new bn(1).toRed(red); + if (!k4) + k4 = Math.max(1, len / 48 | 0); + var n1 = n6.subn(1); + for (var s6 = 0; !n1.testn(s6); s6++) { + } + var d5 = n6.shrn(s6); + var rn1 = n1.toRed(red); + for (; k4 > 0; k4--) { + var a6 = this._randrange(new bn(2), n1); + var g4 = n6.gcd(a6); + if (g4.cmpn(1) !== 0) + return g4; + var x4 = a6.toRed(red).redPow(d5); + if (x4.cmp(rone) === 0 || x4.cmp(rn1) === 0) + continue; + for (var i6 = 1; i6 < s6; i6++) { + x4 = x4.redSqr(); + if (x4.cmp(rone) === 0) + return x4.fromRed().subn(1).gcd(n6); + if (x4.cmp(rn1) === 0) + break; + } + if (i6 === s6) { + x4 = x4.redSqr(); + return x4.fromRed().subn(1).gcd(n6); + } + } + return false; + }; + return exports$$$1; +} +var exports$_$1 = {}; +var _dewExec$_$1 = false; +function dew$_$1() { + if (_dewExec$_$1) + return exports$_$1; + _dewExec$_$1 = true; + var randomBytes2 = dew$1S(); + exports$_$1 = findPrime; + findPrime.simpleSieve = simpleSieve; + findPrime.fermatTest = fermatTest; + var BN = dew$12(); + var TWENTYFOUR = new BN(24); + var MillerRabin = dew$$$1(); + var millerRabin = new MillerRabin(); + var ONE = new BN(1); + var TWO = new BN(2); + var FIVE = new BN(5); + new BN(16); + new BN(8); + var TEN = new BN(10); + var THREE = new BN(3); + new BN(7); + var ELEVEN = new BN(11); + var FOUR = new BN(4); + new BN(12); + var primes = null; + function _getPrimes() { + if (primes !== null) + return primes; + var limit = 1048576; + var res = []; + res[0] = 2; + for (var i6 = 1, k4 = 3; k4 < limit; k4 += 2) { + var sqrt = Math.ceil(Math.sqrt(k4)); + for (var j4 = 0; j4 < i6 && res[j4] <= sqrt; j4++) + if (k4 % res[j4] === 0) + break; + if (i6 !== j4 && res[j4] <= sqrt) + continue; + res[i6++] = k4; + } + primes = res; + return res; + } + function simpleSieve(p6) { + var primes2 = _getPrimes(); + for (var i6 = 0; i6 < primes2.length; i6++) + if (p6.modn(primes2[i6]) === 0) { + if (p6.cmpn(primes2[i6]) === 0) { + return true; + } else { + return false; + } + } + return true; + } + function fermatTest(p6) { + var red = BN.mont(p6); + return TWO.toRed(red).redPow(p6.subn(1)).fromRed().cmpn(1) === 0; + } + function findPrime(bits, gen) { + if (bits < 16) { + if (gen === 2 || gen === 5) { + return new BN([140, 123]); + } else { + return new BN([140, 39]); + } + } + gen = new BN(gen); + var num, n22; + while (true) { + num = new BN(randomBytes2(Math.ceil(bits / 8))); + while (num.bitLength() > bits) { + num.ishrn(1); + } + if (num.isEven()) { + num.iadd(ONE); + } + if (!num.testn(1)) { + num.iadd(TWO); + } + if (!gen.cmp(TWO)) { + while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { + num.iadd(FOUR); + } + } else if (!gen.cmp(FIVE)) { + while (num.mod(TEN).cmp(THREE)) { + num.iadd(FOUR); + } + } + n22 = num.shrn(1); + if (simpleSieve(n22) && simpleSieve(num) && fermatTest(n22) && fermatTest(num) && millerRabin.test(n22) && millerRabin.test(num)) { + return num; + } + } + } + return exports$_$1; +} +var _primes$1 = { + "modp1": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff" + }, + "modp2": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff" + }, + "modp5": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff" + }, + "modp14": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff" + }, + "modp15": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff" + }, + "modp16": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff" + }, + "modp17": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff" + }, + "modp18": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff" + } +}; +var exports$Z$1 = {}; +var _dewExec$Z$1 = false; +var _global$8$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$Z$1() { + if (_dewExec$Z$1) + return exports$Z$1; + _dewExec$Z$1 = true; + var Buffer2 = e$1$1.Buffer; + var BN = dew$12(); + var MillerRabin = dew$$$1(); + var millerRabin = new MillerRabin(); + var TWENTYFOUR = new BN(24); + var ELEVEN = new BN(11); + var TEN = new BN(10); + var THREE = new BN(3); + var SEVEN = new BN(7); + var primes = dew$_$1(); + var randomBytes2 = dew$1S(); + exports$Z$1 = DH; + function setPublicKey(pub, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(pub)) { + pub = new Buffer2(pub, enc); + } + (this || _global$8$1)._pub = new BN(pub); + return this || _global$8$1; + } + function setPrivateKey(priv, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(priv)) { + priv = new Buffer2(priv, enc); + } + (this || _global$8$1)._priv = new BN(priv); + return this || _global$8$1; + } + var primeCache = {}; + function checkPrime(prime, generator) { + var gen = generator.toString("hex"); + var hex = [gen, prime.toString(16)].join("_"); + if (hex in primeCache) { + return primeCache[hex]; + } + var error = 0; + if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) { + error += 1; + if (gen === "02" || gen === "05") { + error += 8; + } else { + error += 4; + } + primeCache[hex] = error; + return error; + } + if (!millerRabin.test(prime.shrn(1))) { + error += 2; + } + var rem; + switch (gen) { + case "02": + if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { + error += 8; + } + break; + case "05": + rem = prime.mod(TEN); + if (rem.cmp(THREE) && rem.cmp(SEVEN)) { + error += 8; + } + break; + default: + error += 4; + } + primeCache[hex] = error; + return error; + } + function DH(prime, generator, malleable) { + this.setGenerator(generator); + (this || _global$8$1).__prime = new BN(prime); + (this || _global$8$1)._prime = BN.mont((this || _global$8$1).__prime); + (this || _global$8$1)._primeLen = prime.length; + (this || _global$8$1)._pub = void 0; + (this || _global$8$1)._priv = void 0; + (this || _global$8$1)._primeCode = void 0; + if (malleable) { + (this || _global$8$1).setPublicKey = setPublicKey; + (this || _global$8$1).setPrivateKey = setPrivateKey; + } else { + (this || _global$8$1)._primeCode = 8; + } + } + Object.defineProperty(DH.prototype, "verifyError", { + enumerable: true, + get: function() { + if (typeof (this || _global$8$1)._primeCode !== "number") { + (this || _global$8$1)._primeCode = checkPrime((this || _global$8$1).__prime, (this || _global$8$1).__gen); + } + return (this || _global$8$1)._primeCode; + } + }); + DH.prototype.generateKeys = function() { + if (!(this || _global$8$1)._priv) { + (this || _global$8$1)._priv = new BN(randomBytes2((this || _global$8$1)._primeLen)); + } + (this || _global$8$1)._pub = (this || _global$8$1)._gen.toRed((this || _global$8$1)._prime).redPow((this || _global$8$1)._priv).fromRed(); + return this.getPublicKey(); + }; + DH.prototype.computeSecret = function(other) { + other = new BN(other); + other = other.toRed((this || _global$8$1)._prime); + var secret = other.redPow((this || _global$8$1)._priv).fromRed(); + var out = new Buffer2(secret.toArray()); + var prime = this.getPrime(); + if (out.length < prime.length) { + var front = new Buffer2(prime.length - out.length); + front.fill(0); + out = Buffer2.concat([front, out]); + } + return out; + }; + DH.prototype.getPublicKey = function getPublicKey(enc) { + return formatReturnValue((this || _global$8$1)._pub, enc); + }; + DH.prototype.getPrivateKey = function getPrivateKey(enc) { + return formatReturnValue((this || _global$8$1)._priv, enc); + }; + DH.prototype.getPrime = function(enc) { + return formatReturnValue((this || _global$8$1).__prime, enc); + }; + DH.prototype.getGenerator = function(enc) { + return formatReturnValue((this || _global$8$1)._gen, enc); + }; + DH.prototype.setGenerator = function(gen, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(gen)) { + gen = new Buffer2(gen, enc); + } + (this || _global$8$1).__gen = gen; + (this || _global$8$1)._gen = new BN(gen); + return this || _global$8$1; + }; + function formatReturnValue(bn, enc) { + var buf = new Buffer2(bn.toArray()); + if (!enc) { + return buf; + } else { + return buf.toString(enc); + } + } + return exports$Z$1; +} +var exports$Y$1 = {}; +var _dewExec$Y$1 = false; +function dew$Y$1() { + if (_dewExec$Y$1) + return exports$Y$1; + _dewExec$Y$1 = true; + var Buffer2 = e$1$1.Buffer; + var generatePrime = dew$_$1(); + var primes = _primes$1; + var DH = dew$Z$1(); + function getDiffieHellman2(mod) { + var prime = new Buffer2(primes[mod].prime, "hex"); + var gen = new Buffer2(primes[mod].gen, "hex"); + return new DH(prime, gen); + } + var ENCODINGS = { + "binary": true, + "hex": true, + "base64": true + }; + function createDiffieHellman2(prime, enc, generator, genc) { + if (Buffer2.isBuffer(enc) || ENCODINGS[enc] === void 0) { + return createDiffieHellman2(prime, "binary", enc, generator); + } + enc = enc || "binary"; + genc = genc || "binary"; + generator = generator || new Buffer2([2]); + if (!Buffer2.isBuffer(generator)) { + generator = new Buffer2(generator, genc); + } + if (typeof prime === "number") { + return new DH(generatePrime(prime, generator), generator, true); + } + if (!Buffer2.isBuffer(prime)) { + prime = new Buffer2(prime, enc); + } + return new DH(prime, generator, true); + } + exports$Y$1.DiffieHellmanGroup = exports$Y$1.createDiffieHellmanGroup = exports$Y$1.getDiffieHellman = getDiffieHellman2; + exports$Y$1.createDiffieHellman = exports$Y$1.DiffieHellman = createDiffieHellman2; + return exports$Y$1; +} +var exports$X$1 = {}; +var _dewExec$X$1 = false; +var module$4$1 = { + exports: exports$X$1 +}; +var _global$7$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$X$1() { + if (_dewExec$X$1) + return module$4$1.exports; + _dewExec$X$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$7$1).negative = 0; + (this || _global$7$1).words = null; + (this || _global$7$1).length = 0; + (this || _global$7$1).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$7$1).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$7$1).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$7$1).words = [number & 67108863]; + (this || _global$7$1).length = 1; + } else if (number < 4503599627370496) { + (this || _global$7$1).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$7$1).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$7$1).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$7$1).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$7$1).words = [0]; + (this || _global$7$1).length = 1; + return this || _global$7$1; + } + (this || _global$7$1).length = Math.ceil(number.length / 3); + (this || _global$7$1).words = new Array((this || _global$7$1).length); + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + (this || _global$7$1).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$7$1).words[j4] |= w4 << off & 67108863; + (this || _global$7$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$7$1).words[j4] |= w4 << off & 67108863; + (this || _global$7$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this._strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 48 && c6 <= 57) { + return c6 - 48; + } else if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + assert(false, "Invalid character in " + string); + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$7$1).length = Math.ceil((number.length - start) / 6); + (this || _global$7$1).words = new Array((this || _global$7$1).length); + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + (this || _global$7$1).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$7$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$7$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$7$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$7$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this._strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var b4 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + b4 = c6 - 49 + 10; + } else if (c6 >= 17) { + b4 = c6 - 17 + 10; + } else { + b4 = c6; + } + assert(c6 >= 0 && b4 < mul, "Invalid character"); + r6 += b4; + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$7$1).words = [0]; + (this || _global$7$1).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$7$1).words[0] + word < 67108864) { + (this || _global$7$1).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$7$1).words[0] + word < 67108864) { + (this || _global$7$1).words[0] += word; + } else { + this._iaddn(word); + } + } + this._strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$7$1).length); + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + dest.words[i6] = (this || _global$7$1).words[i6]; + } + dest.length = (this || _global$7$1).length; + dest.negative = (this || _global$7$1).negative; + dest.red = (this || _global$7$1).red; + }; + function move(dest, src) { + dest.words = src.words; + dest.length = src.length; + dest.negative = src.negative; + dest.red = src.red; + } + BN.prototype._move = function _move(dest) { + move(dest, this || _global$7$1); + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$7$1).length < size) { + (this || _global$7$1).words[(this || _global$7$1).length++] = 0; + } + return this || _global$7$1; + }; + BN.prototype._strip = function strip() { + while ((this || _global$7$1).length > 1 && (this || _global$7$1).words[(this || _global$7$1).length - 1] === 0) { + (this || _global$7$1).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$7$1).length === 1 && (this || _global$7$1).words[0] === 0) { + (this || _global$7$1).negative = 0; + } + return this || _global$7$1; + }; + if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") { + try { + BN.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect2; + } catch (e8) { + BN.prototype.inspect = inspect2; + } + } else { + BN.prototype.inspect = inspect2; + } + function inspect2() { + return ((this || _global$7$1).red ? ""; + } + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + var w4 = (this || _global$7$1).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$7$1).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$7$1).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modrn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$7$1).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$7$1).words[0]; + if ((this || _global$7$1).length === 2) { + ret += (this || _global$7$1).words[1] * 67108864; + } else if ((this || _global$7$1).length === 3 && (this || _global$7$1).words[2] === 1) { + ret += 4503599627370496 + (this || _global$7$1).words[1] * 67108864; + } else if ((this || _global$7$1).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$7$1).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16, 2); + }; + if (Buffer2) { + BN.prototype.toBuffer = function toBuffer(endian, length) { + return this.toArrayLike(Buffer2, endian, length); + }; + } + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + var allocate = function allocate2(ArrayType, size) { + if (ArrayType.allocUnsafe) { + return ArrayType.allocUnsafe(size); + } + return new ArrayType(size); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + this._strip(); + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + var res = allocate(ArrayType, reqLength); + var postfix = endian === "le" ? "LE" : "BE"; + this["_toArrayLike" + postfix](res, byteLength); + return res; + }; + BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { + var position = 0; + var carry = 0; + for (var i6 = 0, shift = 0; i6 < (this || _global$7$1).length; i6++) { + var word = (this || _global$7$1).words[i6] << shift | carry; + res[position++] = word & 255; + if (position < res.length) { + res[position++] = word >> 8 & 255; + } + if (position < res.length) { + res[position++] = word >> 16 & 255; + } + if (shift === 6) { + if (position < res.length) { + res[position++] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position < res.length) { + res[position++] = carry; + while (position < res.length) { + res[position++] = 0; + } + } + }; + BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { + var position = res.length - 1; + var carry = 0; + for (var i6 = 0, shift = 0; i6 < (this || _global$7$1).length; i6++) { + var word = (this || _global$7$1).words[i6] << shift | carry; + res[position--] = word & 255; + if (position >= 0) { + res[position--] = word >> 8 & 255; + } + if (position >= 0) { + res[position--] = word >> 16 & 255; + } + if (shift === 6) { + if (position >= 0) { + res[position--] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position >= 0) { + res[position--] = carry; + while (position >= 0) { + res[position--] = 0; + } + } + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$7$1).words[(this || _global$7$1).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$7$1).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = num.words[off] >>> wbit & 1; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + var b4 = this._zeroBits((this || _global$7$1).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$7$1).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$7$1).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$7$1).negative ^= 1; + } + return this || _global$7$1; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$7$1).length < num.length) { + (this || _global$7$1).words[(this || _global$7$1).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$7$1).words[i6] = (this || _global$7$1).words[i6] | num.words[i6]; + } + return this._strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$7$1).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$7$1); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$7$1); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$7$1).length > num.length) { + b4 = num; + } else { + b4 = this || _global$7$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$7$1).words[i6] = (this || _global$7$1).words[i6] & num.words[i6]; + } + (this || _global$7$1).length = b4.length; + return this._strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$7$1).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$7$1); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$7$1); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$7$1).length > num.length) { + a6 = this || _global$7$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$7$1).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$7$1) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$7$1).words[i6] = a6.words[i6]; + } + } + (this || _global$7$1).length = a6.length; + return this._strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$7$1).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$7$1); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$7$1).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$7$1); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$7$1).words[i6] = ~(this || _global$7$1).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$7$1).words[i6] = ~(this || _global$7$1).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this._strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$7$1).words[off] = (this || _global$7$1).words[off] | 1 << wbit; + } else { + (this || _global$7$1).words[off] = (this || _global$7$1).words[off] & ~(1 << wbit); + } + return this._strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$7$1).negative !== 0 && num.negative === 0) { + (this || _global$7$1).negative = 0; + r6 = this.isub(num); + (this || _global$7$1).negative ^= 1; + return this._normSign(); + } else if ((this || _global$7$1).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$7$1).length > num.length) { + a6 = this || _global$7$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$7$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$7$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$7$1).length = a6.length; + if (carry !== 0) { + (this || _global$7$1).words[(this || _global$7$1).length] = carry; + (this || _global$7$1).length++; + } else if (a6 !== (this || _global$7$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$7$1).words[i6] = a6.words[i6]; + } + } + return this || _global$7$1; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$7$1).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$7$1).negative !== 0) { + (this || _global$7$1).negative = 0; + res = num.sub(this || _global$7$1); + (this || _global$7$1).negative = 1; + return res; + } + if ((this || _global$7$1).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$7$1); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$7$1).negative !== 0) { + (this || _global$7$1).negative = 0; + this.iadd(num); + (this || _global$7$1).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$7$1).negative = 0; + (this || _global$7$1).length = 1; + (this || _global$7$1).words[0] = 0; + return this || _global$7$1; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$7$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$7$1).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$7$1).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$7$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$7$1).words[i6] = a6.words[i6]; + } + } + (this || _global$7$1).length = Math.max((this || _global$7$1).length, i6); + if (a6 !== (this || _global$7$1)) { + (this || _global$7$1).negative = 1; + } + return this._strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out._strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out._strip(); + } + function jumboMulTo(self2, num, out) { + return bigMulTo(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$7$1).length + num.length; + if ((this || _global$7$1).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$7$1, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$7$1, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$7$1, num, out); + } else { + res = jumboMulTo(this || _global$7$1, num, out); + } + return res; + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$7$1).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$7$1).length + num.length); + return jumboMulTo(this || _global$7$1, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$7$1); + }; + BN.prototype.imuln = function imuln(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$7$1).length; i6++) { + var w4 = ((this || _global$7$1).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$7$1).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$7$1).words[i6] = carry; + (this || _global$7$1).length++; + } + return isNegNum ? this.ineg() : this || _global$7$1; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$7$1); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$7$1; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$7$1).length; i6++) { + var newCarry = (this || _global$7$1).words[i6] & carryMask; + var c6 = ((this || _global$7$1).words[i6] | 0) - newCarry << r6; + (this || _global$7$1).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$7$1).words[i6] = carry; + (this || _global$7$1).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$7$1).length - 1; i6 >= 0; i6--) { + (this || _global$7$1).words[i6 + s6] = (this || _global$7$1).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$7$1).words[i6] = 0; + } + (this || _global$7$1).length += s6; + } + return this._strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$7$1).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$7$1).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$7$1).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$7$1).length > s6) { + (this || _global$7$1).length -= s6; + for (i6 = 0; i6 < (this || _global$7$1).length; i6++) { + (this || _global$7$1).words[i6] = (this || _global$7$1).words[i6 + s6]; + } + } else { + (this || _global$7$1).words[0] = 0; + (this || _global$7$1).length = 1; + } + var carry = 0; + for (i6 = (this || _global$7$1).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$7$1).words[i6] | 0; + (this || _global$7$1).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$7$1).length === 0) { + (this || _global$7$1).words[0] = 0; + (this || _global$7$1).length = 1; + } + return this._strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$7$1).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$7$1).length <= s6) + return false; + var w4 = (this || _global$7$1).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$7$1).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$7$1).length <= s6) { + return this || _global$7$1; + } + if (r6 !== 0) { + s6++; + } + (this || _global$7$1).length = Math.min(s6, (this || _global$7$1).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$7$1).words[(this || _global$7$1).length - 1] &= mask; + } + return this._strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$7$1).negative !== 0) { + if ((this || _global$7$1).length === 1 && ((this || _global$7$1).words[0] | 0) <= num) { + (this || _global$7$1).words[0] = num - ((this || _global$7$1).words[0] | 0); + (this || _global$7$1).negative = 0; + return this || _global$7$1; + } + (this || _global$7$1).negative = 0; + this.isubn(num); + (this || _global$7$1).negative = 1; + return this || _global$7$1; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$7$1).words[0] += num; + for (var i6 = 0; i6 < (this || _global$7$1).length && (this || _global$7$1).words[i6] >= 67108864; i6++) { + (this || _global$7$1).words[i6] -= 67108864; + if (i6 === (this || _global$7$1).length - 1) { + (this || _global$7$1).words[i6 + 1] = 1; + } else { + (this || _global$7$1).words[i6 + 1]++; + } + } + (this || _global$7$1).length = Math.max((this || _global$7$1).length, i6 + 1); + return this || _global$7$1; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$7$1).negative !== 0) { + (this || _global$7$1).negative = 0; + this.iaddn(num); + (this || _global$7$1).negative = 1; + return this || _global$7$1; + } + (this || _global$7$1).words[0] -= num; + if ((this || _global$7$1).length === 1 && (this || _global$7$1).words[0] < 0) { + (this || _global$7$1).words[0] = -(this || _global$7$1).words[0]; + (this || _global$7$1).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$7$1).length && (this || _global$7$1).words[i6] < 0; i6++) { + (this || _global$7$1).words[i6] += 67108864; + (this || _global$7$1).words[i6 + 1] -= 1; + } + } + return this._strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$7$1).negative = 0; + return this || _global$7$1; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$7$1).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$7$1).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$7$1).length - shift; i6++) { + w4 = ((this || _global$7$1).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$7$1).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this._strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$7$1).length; i6++) { + w4 = -((this || _global$7$1).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$7$1).words[i6] = w4 & 67108863; + } + (this || _global$7$1).negative = 1; + return this._strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$7$1).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3._strip(); + } + a6._strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$7$1).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$7$1).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$7$1).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$7$1).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$7$1 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modrn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modrn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modrn = function modrn(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$7$1).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$7$1).words[i6] | 0)) % num; + } + return isNegNum ? -acc : acc; + }; + BN.prototype.modn = function modn(num) { + return this.modrn(num); + }; + BN.prototype.idivn = function idivn(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$7$1).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$7$1).words[i6] | 0) + carry * 67108864; + (this || _global$7$1).words[i6] = w4 / num | 0; + carry = w4 % num; + } + this._strip(); + return isNegNum ? this.ineg() : this || _global$7$1; + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$7$1; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$7$1; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$7$1).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$7$1).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$7$1).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$7$1).length <= s6) { + this._expand(s6 + 1); + (this || _global$7$1).words[s6] |= q3; + return this || _global$7$1; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$7$1).length; i6++) { + var w4 = (this || _global$7$1).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$7$1).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$7$1).words[i6] = carry; + (this || _global$7$1).length++; + } + return this || _global$7$1; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$7$1).length === 1 && (this || _global$7$1).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$7$1).negative !== 0 && !negative) + return -1; + if ((this || _global$7$1).negative === 0 && negative) + return 1; + this._strip(); + var res; + if ((this || _global$7$1).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$7$1).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$7$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$7$1).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$7$1).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$7$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$7$1).length > num.length) + return 1; + if ((this || _global$7$1).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$7$1).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$7$1).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$7$1).red, "Already a number in reduction context"); + assert((this || _global$7$1).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$7$1)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$7$1).red, "fromRed works only with numbers in reduction context"); + return (this || _global$7$1).red.convertFrom(this || _global$7$1); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$7$1).red = ctx; + return this || _global$7$1; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$7$1).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$7$1).red, "redAdd works only with red numbers"); + return (this || _global$7$1).red.add(this || _global$7$1, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$7$1).red, "redIAdd works only with red numbers"); + return (this || _global$7$1).red.iadd(this || _global$7$1, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$7$1).red, "redSub works only with red numbers"); + return (this || _global$7$1).red.sub(this || _global$7$1, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$7$1).red, "redISub works only with red numbers"); + return (this || _global$7$1).red.isub(this || _global$7$1, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$7$1).red, "redShl works only with red numbers"); + return (this || _global$7$1).red.shl(this || _global$7$1, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$7$1).red, "redMul works only with red numbers"); + (this || _global$7$1).red._verify2(this || _global$7$1, num); + return (this || _global$7$1).red.mul(this || _global$7$1, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$7$1).red, "redMul works only with red numbers"); + (this || _global$7$1).red._verify2(this || _global$7$1, num); + return (this || _global$7$1).red.imul(this || _global$7$1, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$7$1).red, "redSqr works only with red numbers"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.sqr(this || _global$7$1); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$7$1).red, "redISqr works only with red numbers"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.isqr(this || _global$7$1); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$7$1).red, "redSqrt works only with red numbers"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.sqrt(this || _global$7$1); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$7$1).red, "redInvm works only with red numbers"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.invm(this || _global$7$1); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$7$1).red, "redNeg works only with red numbers"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.neg(this || _global$7$1); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$7$1).red && !num.red, "redPow(normalNum)"); + (this || _global$7$1).red._verify1(this || _global$7$1); + return (this || _global$7$1).red.pow(this || _global$7$1, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$7$1).name = name; + (this || _global$7$1).p = new BN(p6, 16); + (this || _global$7$1).n = (this || _global$7$1).p.bitLength(); + (this || _global$7$1).k = new BN(1).iushln((this || _global$7$1).n).isub((this || _global$7$1).p); + (this || _global$7$1).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$7$1).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$7$1).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$7$1).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$7$1).n); + var cmp = rlen < (this || _global$7$1).n ? -1 : r6.ucmp((this || _global$7$1).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$7$1).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$7$1).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$7$1).k); + }; + function K256() { + MPrime.call(this || _global$7$1, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$7$1, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$7$1, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$7$1, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$7$1).m = prime.p; + (this || _global$7$1).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$7$1).m = m5; + (this || _global$7$1).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$7$1).prime) + return (this || _global$7$1).prime.ireduce(a6)._forceRed(this || _global$7$1); + move(a6, a6.umod((this || _global$7$1).m)._forceRed(this || _global$7$1)); + return a6; + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$7$1).m.sub(a6)._forceRed(this || _global$7$1); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$7$1).m) >= 0) { + res.isub((this || _global$7$1).m); + } + return res._forceRed(this || _global$7$1); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$7$1).m) >= 0) { + res.isub((this || _global$7$1).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$7$1).m); + } + return res._forceRed(this || _global$7$1); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$7$1).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$7$1).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$7$1).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$7$1).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$7$1); + var nOne = one.redNeg(); + var lpow = (this || _global$7$1).m.subn(1).iushrn(1); + var z4 = (this || _global$7$1).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$7$1); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$7$1).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$7$1); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$7$1); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$7$1).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$7$1, m5); + (this || _global$7$1).shift = (this || _global$7$1).m.bitLength(); + if ((this || _global$7$1).shift % 26 !== 0) { + (this || _global$7$1).shift += 26 - (this || _global$7$1).shift % 26; + } + (this || _global$7$1).r = new BN(1).iushln((this || _global$7$1).shift); + (this || _global$7$1).r2 = this.imod((this || _global$7$1).r.sqr()); + (this || _global$7$1).rinv = (this || _global$7$1).r._invmp((this || _global$7$1).m); + (this || _global$7$1).minv = (this || _global$7$1).rinv.mul((this || _global$7$1).r).isubn(1).div((this || _global$7$1).m); + (this || _global$7$1).minv = (this || _global$7$1).minv.umod((this || _global$7$1).r); + (this || _global$7$1).minv = (this || _global$7$1).r.sub((this || _global$7$1).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$7$1).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$7$1).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$7$1).shift).mul((this || _global$7$1).minv).imaskn((this || _global$7$1).shift).mul((this || _global$7$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$7$1).shift); + var res = u6; + if (u6.cmp((this || _global$7$1).m) >= 0) { + res = u6.isub((this || _global$7$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$7$1).m); + } + return res._forceRed(this || _global$7$1); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$7$1); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$7$1).shift).mul((this || _global$7$1).minv).imaskn((this || _global$7$1).shift).mul((this || _global$7$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$7$1).shift); + var res = u6; + if (u6.cmp((this || _global$7$1).m) >= 0) { + res = u6.isub((this || _global$7$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$7$1).m); + } + return res._forceRed(this || _global$7$1); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$7$1).m).mul((this || _global$7$1).r2)); + return res._forceRed(this || _global$7$1); + }; + })(module$4$1, exports$X$1); + return module$4$1.exports; +} +var exports$W$1 = {}; +var _dewExec$W$1 = false; +function dew$W$1() { + if (_dewExec$W$1) + return exports$W$1; + _dewExec$W$1 = true; + var Buffer2 = e$1$1.Buffer; + var BN = dew$X$1(); + var randomBytes2 = dew$1S(); + function blind(priv) { + var r6 = getr(priv); + var blinder = r6.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed(); + return { + blinder, + unblinder: r6.invm(priv.modulus) + }; + } + function getr(priv) { + var len = priv.modulus.byteLength(); + var r6; + do { + r6 = new BN(randomBytes2(len)); + } while (r6.cmp(priv.modulus) >= 0 || !r6.umod(priv.prime1) || !r6.umod(priv.prime2)); + return r6; + } + function crt(msg, priv) { + var blinds = blind(priv); + var len = priv.modulus.byteLength(); + var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus); + var c1 = blinded.toRed(BN.mont(priv.prime1)); + var c22 = blinded.toRed(BN.mont(priv.prime2)); + var qinv = priv.coefficient; + var p6 = priv.prime1; + var q3 = priv.prime2; + var m1 = c1.redPow(priv.exponent1).fromRed(); + var m22 = c22.redPow(priv.exponent2).fromRed(); + var h6 = m1.isub(m22).imul(qinv).umod(p6).imul(q3); + return m22.iadd(h6).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer2, "be", len); + } + crt.getr = getr; + exports$W$1 = crt; + return exports$W$1; +} +var _package$1 = { + "_args": [ + [ + "elliptic@6.5.4", + "C:\\Users\\guybe\\Projects\\rollup-plugin-jspm" + ] + ], + "_from": "elliptic@6.5.4", + "_id": "elliptic@6.5.4", + "_inBundle": false, + "_integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "_location": "/@jspm/core/elliptic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "elliptic@6.5.4", + "name": "elliptic", + "escapedName": "elliptic", + "rawSpec": "6.5.4", + "saveSpec": null, + "fetchSpec": "6.5.4" + }, + "_requiredBy": [ + "/@jspm/core/browserify-sign", + "/@jspm/core/create-ecdh" + ], + "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "_spec": "6.5.4", + "_where": "C:\\Users\\guybe\\Projects\\rollup-plugin-jspm", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/elliptic/issues" + }, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "description": "EC cryptography", + "devDependencies": { + "brfs": "^2.0.2", + "coveralls": "^3.1.0", + "eslint": "^7.6.0", + "grunt": "^1.2.1", + "grunt-browserify": "^5.3.0", + "grunt-cli": "^1.3.2", + "grunt-contrib-connect": "^3.0.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-uglify": "^5.0.0", + "grunt-mocha-istanbul": "^5.0.2", + "grunt-saucelabs": "^9.0.1", + "istanbul": "^0.4.5", + "mocha": "^8.0.1" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/indutny/elliptic", + "keywords": [ + "EC", + "Elliptic", + "curve", + "Cryptography" + ], + "license": "MIT", + "main": "lib/elliptic.js", + "name": "elliptic", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/elliptic.git" + }, + "scripts": { + "lint": "eslint lib test", + "lint:fix": "npm run lint -- --fix", + "test": "npm run lint && npm run unit", + "unit": "istanbul test _mocha --reporter=spec test/index.js", + "version": "grunt dist && git add dist/" + }, + "version": "6.5.4" +}; +var exports$V$1 = {}; +var _dewExec$V$1 = false; +var module$3$1 = { + exports: exports$V$1 +}; +var _global$6$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$V$1() { + if (_dewExec$V$1) + return module$3$1.exports; + _dewExec$V$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$6$1).negative = 0; + (this || _global$6$1).words = null; + (this || _global$6$1).length = 0; + (this || _global$6$1).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$6$1).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$6$1).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$6$1).words = [number & 67108863]; + (this || _global$6$1).length = 1; + } else if (number < 4503599627370496) { + (this || _global$6$1).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$6$1).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$6$1).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$6$1).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$6$1).words = [0]; + (this || _global$6$1).length = 1; + return this || _global$6$1; + } + (this || _global$6$1).length = Math.ceil(number.length / 3); + (this || _global$6$1).words = new Array((this || _global$6$1).length); + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + (this || _global$6$1).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$6$1).words[j4] |= w4 << off & 67108863; + (this || _global$6$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$6$1).words[j4] |= w4 << off & 67108863; + (this || _global$6$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$6$1).length = Math.ceil((number.length - start) / 6); + (this || _global$6$1).words = new Array((this || _global$6$1).length); + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + (this || _global$6$1).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$6$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$6$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$6$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$6$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$6$1).words = [0]; + (this || _global$6$1).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$6$1).words[0] + word < 67108864) { + (this || _global$6$1).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$6$1).words[0] + word < 67108864) { + (this || _global$6$1).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$6$1).length); + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + dest.words[i6] = (this || _global$6$1).words[i6]; + } + dest.length = (this || _global$6$1).length; + dest.negative = (this || _global$6$1).negative; + dest.red = (this || _global$6$1).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$6$1).length < size) { + (this || _global$6$1).words[(this || _global$6$1).length++] = 0; + } + return this || _global$6$1; + }; + BN.prototype.strip = function strip() { + while ((this || _global$6$1).length > 1 && (this || _global$6$1).words[(this || _global$6$1).length - 1] === 0) { + (this || _global$6$1).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$6$1).length === 1 && (this || _global$6$1).words[0] === 0) { + (this || _global$6$1).negative = 0; + } + return this || _global$6$1; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$6$1).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + var w4 = (this || _global$6$1).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$6$1).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$6$1).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$6$1).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$6$1).words[0]; + if ((this || _global$6$1).length === 2) { + ret += (this || _global$6$1).words[1] * 67108864; + } else if ((this || _global$6$1).length === 3 && (this || _global$6$1).words[2] === 1) { + ret += 4503599627370496 + (this || _global$6$1).words[1] * 67108864; + } else if ((this || _global$6$1).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$6$1).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$6$1).words[(this || _global$6$1).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$6$1).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + var b4 = this._zeroBits((this || _global$6$1).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$6$1).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$6$1).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$6$1).negative ^= 1; + } + return this || _global$6$1; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$6$1).length < num.length) { + (this || _global$6$1).words[(this || _global$6$1).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$6$1).words[i6] = (this || _global$6$1).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$6$1).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$6$1); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$6$1); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$6$1).length > num.length) { + b4 = num; + } else { + b4 = this || _global$6$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$6$1).words[i6] = (this || _global$6$1).words[i6] & num.words[i6]; + } + (this || _global$6$1).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$6$1).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$6$1); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$6$1); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$6$1).length > num.length) { + a6 = this || _global$6$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$6$1).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$6$1) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$6$1).words[i6] = a6.words[i6]; + } + } + (this || _global$6$1).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$6$1).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$6$1); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$6$1).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$6$1); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$6$1).words[i6] = ~(this || _global$6$1).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$6$1).words[i6] = ~(this || _global$6$1).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$6$1).words[off] = (this || _global$6$1).words[off] | 1 << wbit; + } else { + (this || _global$6$1).words[off] = (this || _global$6$1).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$6$1).negative !== 0 && num.negative === 0) { + (this || _global$6$1).negative = 0; + r6 = this.isub(num); + (this || _global$6$1).negative ^= 1; + return this._normSign(); + } else if ((this || _global$6$1).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$6$1).length > num.length) { + a6 = this || _global$6$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$6$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$6$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$6$1).length = a6.length; + if (carry !== 0) { + (this || _global$6$1).words[(this || _global$6$1).length] = carry; + (this || _global$6$1).length++; + } else if (a6 !== (this || _global$6$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$6$1).words[i6] = a6.words[i6]; + } + } + return this || _global$6$1; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$6$1).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$6$1).negative !== 0) { + (this || _global$6$1).negative = 0; + res = num.sub(this || _global$6$1); + (this || _global$6$1).negative = 1; + return res; + } + if ((this || _global$6$1).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$6$1); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$6$1).negative !== 0) { + (this || _global$6$1).negative = 0; + this.iadd(num); + (this || _global$6$1).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$6$1).negative = 0; + (this || _global$6$1).length = 1; + (this || _global$6$1).words[0] = 0; + return this || _global$6$1; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$6$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$6$1).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$6$1).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$6$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$6$1).words[i6] = a6.words[i6]; + } + } + (this || _global$6$1).length = Math.max((this || _global$6$1).length, i6); + if (a6 !== (this || _global$6$1)) { + (this || _global$6$1).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$6$1).length + num.length; + if ((this || _global$6$1).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$6$1, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$6$1, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$6$1, num, out); + } else { + res = jumboMulTo(this || _global$6$1, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$6$1).x = x4; + (this || _global$6$1).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$6$1).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$6$1).length + num.length); + return jumboMulTo(this || _global$6$1, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$6$1); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$6$1).length; i6++) { + var w4 = ((this || _global$6$1).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$6$1).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$6$1).words[i6] = carry; + (this || _global$6$1).length++; + } + return this || _global$6$1; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$6$1); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$6$1; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$6$1).length; i6++) { + var newCarry = (this || _global$6$1).words[i6] & carryMask; + var c6 = ((this || _global$6$1).words[i6] | 0) - newCarry << r6; + (this || _global$6$1).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$6$1).words[i6] = carry; + (this || _global$6$1).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$6$1).length - 1; i6 >= 0; i6--) { + (this || _global$6$1).words[i6 + s6] = (this || _global$6$1).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$6$1).words[i6] = 0; + } + (this || _global$6$1).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$6$1).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$6$1).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$6$1).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$6$1).length > s6) { + (this || _global$6$1).length -= s6; + for (i6 = 0; i6 < (this || _global$6$1).length; i6++) { + (this || _global$6$1).words[i6] = (this || _global$6$1).words[i6 + s6]; + } + } else { + (this || _global$6$1).words[0] = 0; + (this || _global$6$1).length = 1; + } + var carry = 0; + for (i6 = (this || _global$6$1).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$6$1).words[i6] | 0; + (this || _global$6$1).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$6$1).length === 0) { + (this || _global$6$1).words[0] = 0; + (this || _global$6$1).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$6$1).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$6$1).length <= s6) + return false; + var w4 = (this || _global$6$1).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$6$1).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$6$1).length <= s6) { + return this || _global$6$1; + } + if (r6 !== 0) { + s6++; + } + (this || _global$6$1).length = Math.min(s6, (this || _global$6$1).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$6$1).words[(this || _global$6$1).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$6$1).negative !== 0) { + if ((this || _global$6$1).length === 1 && ((this || _global$6$1).words[0] | 0) < num) { + (this || _global$6$1).words[0] = num - ((this || _global$6$1).words[0] | 0); + (this || _global$6$1).negative = 0; + return this || _global$6$1; + } + (this || _global$6$1).negative = 0; + this.isubn(num); + (this || _global$6$1).negative = 1; + return this || _global$6$1; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$6$1).words[0] += num; + for (var i6 = 0; i6 < (this || _global$6$1).length && (this || _global$6$1).words[i6] >= 67108864; i6++) { + (this || _global$6$1).words[i6] -= 67108864; + if (i6 === (this || _global$6$1).length - 1) { + (this || _global$6$1).words[i6 + 1] = 1; + } else { + (this || _global$6$1).words[i6 + 1]++; + } + } + (this || _global$6$1).length = Math.max((this || _global$6$1).length, i6 + 1); + return this || _global$6$1; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$6$1).negative !== 0) { + (this || _global$6$1).negative = 0; + this.iaddn(num); + (this || _global$6$1).negative = 1; + return this || _global$6$1; + } + (this || _global$6$1).words[0] -= num; + if ((this || _global$6$1).length === 1 && (this || _global$6$1).words[0] < 0) { + (this || _global$6$1).words[0] = -(this || _global$6$1).words[0]; + (this || _global$6$1).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$6$1).length && (this || _global$6$1).words[i6] < 0; i6++) { + (this || _global$6$1).words[i6] += 67108864; + (this || _global$6$1).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$6$1).negative = 0; + return this || _global$6$1; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$6$1).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$6$1).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$6$1).length - shift; i6++) { + w4 = ((this || _global$6$1).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$6$1).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$6$1).length; i6++) { + w4 = -((this || _global$6$1).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$6$1).words[i6] = w4 & 67108863; + } + (this || _global$6$1).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$6$1).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$6$1).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$6$1).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$6$1).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$6$1).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$6$1 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$6$1).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$6$1).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$6$1).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$6$1).words[i6] | 0) + carry * 67108864; + (this || _global$6$1).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$6$1; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$6$1; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$6$1).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$6$1).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$6$1).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$6$1).length <= s6) { + this._expand(s6 + 1); + (this || _global$6$1).words[s6] |= q3; + return this || _global$6$1; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$6$1).length; i6++) { + var w4 = (this || _global$6$1).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$6$1).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$6$1).words[i6] = carry; + (this || _global$6$1).length++; + } + return this || _global$6$1; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$6$1).length === 1 && (this || _global$6$1).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$6$1).negative !== 0 && !negative) + return -1; + if ((this || _global$6$1).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$6$1).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$6$1).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$6$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$6$1).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$6$1).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$6$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$6$1).length > num.length) + return 1; + if ((this || _global$6$1).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$6$1).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$6$1).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$6$1).red, "Already a number in reduction context"); + assert((this || _global$6$1).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$6$1)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$6$1).red, "fromRed works only with numbers in reduction context"); + return (this || _global$6$1).red.convertFrom(this || _global$6$1); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$6$1).red = ctx; + return this || _global$6$1; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$6$1).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$6$1).red, "redAdd works only with red numbers"); + return (this || _global$6$1).red.add(this || _global$6$1, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$6$1).red, "redIAdd works only with red numbers"); + return (this || _global$6$1).red.iadd(this || _global$6$1, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$6$1).red, "redSub works only with red numbers"); + return (this || _global$6$1).red.sub(this || _global$6$1, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$6$1).red, "redISub works only with red numbers"); + return (this || _global$6$1).red.isub(this || _global$6$1, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$6$1).red, "redShl works only with red numbers"); + return (this || _global$6$1).red.shl(this || _global$6$1, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$6$1).red, "redMul works only with red numbers"); + (this || _global$6$1).red._verify2(this || _global$6$1, num); + return (this || _global$6$1).red.mul(this || _global$6$1, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$6$1).red, "redMul works only with red numbers"); + (this || _global$6$1).red._verify2(this || _global$6$1, num); + return (this || _global$6$1).red.imul(this || _global$6$1, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$6$1).red, "redSqr works only with red numbers"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.sqr(this || _global$6$1); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$6$1).red, "redISqr works only with red numbers"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.isqr(this || _global$6$1); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$6$1).red, "redSqrt works only with red numbers"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.sqrt(this || _global$6$1); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$6$1).red, "redInvm works only with red numbers"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.invm(this || _global$6$1); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$6$1).red, "redNeg works only with red numbers"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.neg(this || _global$6$1); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$6$1).red && !num.red, "redPow(normalNum)"); + (this || _global$6$1).red._verify1(this || _global$6$1); + return (this || _global$6$1).red.pow(this || _global$6$1, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$6$1).name = name; + (this || _global$6$1).p = new BN(p6, 16); + (this || _global$6$1).n = (this || _global$6$1).p.bitLength(); + (this || _global$6$1).k = new BN(1).iushln((this || _global$6$1).n).isub((this || _global$6$1).p); + (this || _global$6$1).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$6$1).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$6$1).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$6$1).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$6$1).n); + var cmp = rlen < (this || _global$6$1).n ? -1 : r6.ucmp((this || _global$6$1).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$6$1).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$6$1).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$6$1).k); + }; + function K256() { + MPrime.call(this || _global$6$1, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$6$1, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$6$1, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$6$1, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$6$1).m = prime.p; + (this || _global$6$1).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$6$1).m = m5; + (this || _global$6$1).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$6$1).prime) + return (this || _global$6$1).prime.ireduce(a6)._forceRed(this || _global$6$1); + return a6.umod((this || _global$6$1).m)._forceRed(this || _global$6$1); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$6$1).m.sub(a6)._forceRed(this || _global$6$1); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$6$1).m) >= 0) { + res.isub((this || _global$6$1).m); + } + return res._forceRed(this || _global$6$1); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$6$1).m) >= 0) { + res.isub((this || _global$6$1).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$6$1).m); + } + return res._forceRed(this || _global$6$1); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$6$1).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$6$1).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$6$1).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$6$1).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$6$1); + var nOne = one.redNeg(); + var lpow = (this || _global$6$1).m.subn(1).iushrn(1); + var z4 = (this || _global$6$1).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$6$1); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$6$1).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$6$1); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$6$1); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$6$1).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$6$1, m5); + (this || _global$6$1).shift = (this || _global$6$1).m.bitLength(); + if ((this || _global$6$1).shift % 26 !== 0) { + (this || _global$6$1).shift += 26 - (this || _global$6$1).shift % 26; + } + (this || _global$6$1).r = new BN(1).iushln((this || _global$6$1).shift); + (this || _global$6$1).r2 = this.imod((this || _global$6$1).r.sqr()); + (this || _global$6$1).rinv = (this || _global$6$1).r._invmp((this || _global$6$1).m); + (this || _global$6$1).minv = (this || _global$6$1).rinv.mul((this || _global$6$1).r).isubn(1).div((this || _global$6$1).m); + (this || _global$6$1).minv = (this || _global$6$1).minv.umod((this || _global$6$1).r); + (this || _global$6$1).minv = (this || _global$6$1).r.sub((this || _global$6$1).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$6$1).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$6$1).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$6$1).shift).mul((this || _global$6$1).minv).imaskn((this || _global$6$1).shift).mul((this || _global$6$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$6$1).shift); + var res = u6; + if (u6.cmp((this || _global$6$1).m) >= 0) { + res = u6.isub((this || _global$6$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$6$1).m); + } + return res._forceRed(this || _global$6$1); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$6$1); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$6$1).shift).mul((this || _global$6$1).minv).imaskn((this || _global$6$1).shift).mul((this || _global$6$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$6$1).shift); + var res = u6; + if (u6.cmp((this || _global$6$1).m) >= 0) { + res = u6.isub((this || _global$6$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$6$1).m); + } + return res._forceRed(this || _global$6$1); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$6$1).m).mul((this || _global$6$1).r2)); + return res._forceRed(this || _global$6$1); + }; + })(module$3$1, exports$V$1); + return module$3$1.exports; +} +var exports$U$1 = {}; +var _dewExec$U$1 = false; +function dew$U$1() { + if (_dewExec$U$1) + return exports$U$1; + _dewExec$U$1 = true; + var utils = exports$U$1; + function toArray(msg, enc) { + if (Array.isArray(msg)) + return msg.slice(); + if (!msg) + return []; + var res = []; + if (typeof msg !== "string") { + for (var i6 = 0; i6 < msg.length; i6++) + res[i6] = msg[i6] | 0; + return res; + } + if (enc === "hex") { + msg = msg.replace(/[^a-z0-9]+/ig, ""); + if (msg.length % 2 !== 0) + msg = "0" + msg; + for (var i6 = 0; i6 < msg.length; i6 += 2) + res.push(parseInt(msg[i6] + msg[i6 + 1], 16)); + } else { + for (var i6 = 0; i6 < msg.length; i6++) { + var c6 = msg.charCodeAt(i6); + var hi = c6 >> 8; + var lo = c6 & 255; + if (hi) + res.push(hi, lo); + else + res.push(lo); + } + } + return res; + } + utils.toArray = toArray; + function zero2(word) { + if (word.length === 1) + return "0" + word; + else + return word; + } + utils.zero2 = zero2; + function toHex(msg) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) + res += zero2(msg[i6].toString(16)); + return res; + } + utils.toHex = toHex; + utils.encode = function encode(arr, enc) { + if (enc === "hex") + return toHex(arr); + else + return arr; + }; + return exports$U$1; +} +var exports$T$1 = {}; +var _dewExec$T$1 = false; +function dew$T$1() { + if (_dewExec$T$1) + return exports$T$1; + _dewExec$T$1 = true; + var utils = exports$T$1; + var BN = dew$V$1(); + var minAssert = dew$1t(); + var minUtils = dew$U$1(); + utils.assert = minAssert; + utils.toArray = minUtils.toArray; + utils.zero2 = minUtils.zero2; + utils.toHex = minUtils.toHex; + utils.encode = minUtils.encode; + function getNAF(num, w4, bits) { + var naf = new Array(Math.max(num.bitLength(), bits) + 1); + naf.fill(0); + var ws = 1 << w4 + 1; + var k4 = num.clone(); + for (var i6 = 0; i6 < naf.length; i6++) { + var z4; + var mod = k4.andln(ws - 1); + if (k4.isOdd()) { + if (mod > (ws >> 1) - 1) + z4 = (ws >> 1) - mod; + else + z4 = mod; + k4.isubn(z4); + } else { + z4 = 0; + } + naf[i6] = z4; + k4.iushrn(1); + } + return naf; + } + utils.getNAF = getNAF; + function getJSF(k1, k22) { + var jsf = [[], []]; + k1 = k1.clone(); + k22 = k22.clone(); + var d1 = 0; + var d22 = 0; + var m8; + while (k1.cmpn(-d1) > 0 || k22.cmpn(-d22) > 0) { + var m14 = k1.andln(3) + d1 & 3; + var m24 = k22.andln(3) + d22 & 3; + if (m14 === 3) + m14 = -1; + if (m24 === 3) + m24 = -1; + var u1; + if ((m14 & 1) === 0) { + u1 = 0; + } else { + m8 = k1.andln(7) + d1 & 7; + if ((m8 === 3 || m8 === 5) && m24 === 2) + u1 = -m14; + else + u1 = m14; + } + jsf[0].push(u1); + var u22; + if ((m24 & 1) === 0) { + u22 = 0; + } else { + m8 = k22.andln(7) + d22 & 7; + if ((m8 === 3 || m8 === 5) && m14 === 2) + u22 = -m24; + else + u22 = m24; + } + jsf[1].push(u22); + if (2 * d1 === u1 + 1) + d1 = 1 - d1; + if (2 * d22 === u22 + 1) + d22 = 1 - d22; + k1.iushrn(1); + k22.iushrn(1); + } + return jsf; + } + utils.getJSF = getJSF; + function cachedProperty(obj, name, computer) { + var key = "_" + name; + obj.prototype[name] = function cachedProperty2() { + return this[key] !== void 0 ? this[key] : this[key] = computer.call(this); + }; + } + utils.cachedProperty = cachedProperty; + function parseBytes(bytes) { + return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes; + } + utils.parseBytes = parseBytes; + function intFromLE(bytes) { + return new BN(bytes, "hex", "le"); + } + utils.intFromLE = intFromLE; + return exports$T$1; +} +var exports$S$1 = {}; +var _dewExec$S$1 = false; +function dew$S$1() { + if (_dewExec$S$1) + return exports$S$1; + _dewExec$S$1 = true; + var BN = dew$V$1(); + var utils = dew$T$1(); + var getNAF = utils.getNAF; + var getJSF = utils.getJSF; + var assert = utils.assert; + function BaseCurve(type, conf) { + this.type = type; + this.p = new BN(conf.p, 16); + this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); + this.zero = new BN(0).toRed(this.red); + this.one = new BN(1).toRed(this.red); + this.two = new BN(2).toRed(this.red); + this.n = conf.n && new BN(conf.n, 16); + this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); + this._wnafT1 = new Array(4); + this._wnafT2 = new Array(4); + this._wnafT3 = new Array(4); + this._wnafT4 = new Array(4); + this._bitLength = this.n ? this.n.bitLength() : 0; + var adjustCount = this.n && this.p.div(this.n); + if (!adjustCount || adjustCount.cmpn(100) > 0) { + this.redN = null; + } else { + this._maxwellTrick = true; + this.redN = this.n.toRed(this.red); + } + } + exports$S$1 = BaseCurve; + BaseCurve.prototype.point = function point() { + throw new Error("Not implemented"); + }; + BaseCurve.prototype.validate = function validate() { + throw new Error("Not implemented"); + }; + BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p6, k4) { + assert(p6.precomputed); + var doubles = p6._getDoubles(); + var naf = getNAF(k4, 1, this._bitLength); + var I4 = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1); + I4 /= 3; + var repr = []; + var j4; + var nafW; + for (j4 = 0; j4 < naf.length; j4 += doubles.step) { + nafW = 0; + for (var l6 = j4 + doubles.step - 1; l6 >= j4; l6--) + nafW = (nafW << 1) + naf[l6]; + repr.push(nafW); + } + var a6 = this.jpoint(null, null, null); + var b4 = this.jpoint(null, null, null); + for (var i6 = I4; i6 > 0; i6--) { + for (j4 = 0; j4 < repr.length; j4++) { + nafW = repr[j4]; + if (nafW === i6) + b4 = b4.mixedAdd(doubles.points[j4]); + else if (nafW === -i6) + b4 = b4.mixedAdd(doubles.points[j4].neg()); + } + a6 = a6.add(b4); + } + return a6.toP(); + }; + BaseCurve.prototype._wnafMul = function _wnafMul(p6, k4) { + var w4 = 4; + var nafPoints = p6._getNAFPoints(w4); + w4 = nafPoints.wnd; + var wnd = nafPoints.points; + var naf = getNAF(k4, w4, this._bitLength); + var acc = this.jpoint(null, null, null); + for (var i6 = naf.length - 1; i6 >= 0; i6--) { + for (var l6 = 0; i6 >= 0 && naf[i6] === 0; i6--) + l6++; + if (i6 >= 0) + l6++; + acc = acc.dblp(l6); + if (i6 < 0) + break; + var z4 = naf[i6]; + assert(z4 !== 0); + if (p6.type === "affine") { + if (z4 > 0) + acc = acc.mixedAdd(wnd[z4 - 1 >> 1]); + else + acc = acc.mixedAdd(wnd[-z4 - 1 >> 1].neg()); + } else { + if (z4 > 0) + acc = acc.add(wnd[z4 - 1 >> 1]); + else + acc = acc.add(wnd[-z4 - 1 >> 1].neg()); + } + } + return p6.type === "affine" ? acc.toP() : acc; + }; + BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { + var wndWidth = this._wnafT1; + var wnd = this._wnafT2; + var naf = this._wnafT3; + var max = 0; + var i6; + var j4; + var p6; + for (i6 = 0; i6 < len; i6++) { + p6 = points[i6]; + var nafPoints = p6._getNAFPoints(defW); + wndWidth[i6] = nafPoints.wnd; + wnd[i6] = nafPoints.points; + } + for (i6 = len - 1; i6 >= 1; i6 -= 2) { + var a6 = i6 - 1; + var b4 = i6; + if (wndWidth[a6] !== 1 || wndWidth[b4] !== 1) { + naf[a6] = getNAF(coeffs[a6], wndWidth[a6], this._bitLength); + naf[b4] = getNAF(coeffs[b4], wndWidth[b4], this._bitLength); + max = Math.max(naf[a6].length, max); + max = Math.max(naf[b4].length, max); + continue; + } + var comb = [ + points[a6], + /* 1 */ + null, + /* 3 */ + null, + /* 5 */ + points[b4] + /* 7 */ + ]; + if (points[a6].y.cmp(points[b4].y) === 0) { + comb[1] = points[a6].add(points[b4]); + comb[2] = points[a6].toJ().mixedAdd(points[b4].neg()); + } else if (points[a6].y.cmp(points[b4].y.redNeg()) === 0) { + comb[1] = points[a6].toJ().mixedAdd(points[b4]); + comb[2] = points[a6].add(points[b4].neg()); + } else { + comb[1] = points[a6].toJ().mixedAdd(points[b4]); + comb[2] = points[a6].toJ().mixedAdd(points[b4].neg()); + } + var index = [ + -3, + /* -1 -1 */ + -1, + /* -1 0 */ + -5, + /* -1 1 */ + -7, + /* 0 -1 */ + 0, + /* 0 0 */ + 7, + /* 0 1 */ + 5, + /* 1 -1 */ + 1, + /* 1 0 */ + 3 + /* 1 1 */ + ]; + var jsf = getJSF(coeffs[a6], coeffs[b4]); + max = Math.max(jsf[0].length, max); + naf[a6] = new Array(max); + naf[b4] = new Array(max); + for (j4 = 0; j4 < max; j4++) { + var ja = jsf[0][j4] | 0; + var jb = jsf[1][j4] | 0; + naf[a6][j4] = index[(ja + 1) * 3 + (jb + 1)]; + naf[b4][j4] = 0; + wnd[a6] = comb; + } + } + var acc = this.jpoint(null, null, null); + var tmp = this._wnafT4; + for (i6 = max; i6 >= 0; i6--) { + var k4 = 0; + while (i6 >= 0) { + var zero = true; + for (j4 = 0; j4 < len; j4++) { + tmp[j4] = naf[j4][i6] | 0; + if (tmp[j4] !== 0) + zero = false; + } + if (!zero) + break; + k4++; + i6--; + } + if (i6 >= 0) + k4++; + acc = acc.dblp(k4); + if (i6 < 0) + break; + for (j4 = 0; j4 < len; j4++) { + var z4 = tmp[j4]; + if (z4 === 0) + continue; + else if (z4 > 0) + p6 = wnd[j4][z4 - 1 >> 1]; + else if (z4 < 0) + p6 = wnd[j4][-z4 - 1 >> 1].neg(); + if (p6.type === "affine") + acc = acc.mixedAdd(p6); + else + acc = acc.add(p6); + } + } + for (i6 = 0; i6 < len; i6++) + wnd[i6] = null; + if (jacobianResult) + return acc; + else + return acc.toP(); + }; + function BasePoint(curve, type) { + this.curve = curve; + this.type = type; + this.precomputed = null; + } + BaseCurve.BasePoint = BasePoint; + BasePoint.prototype.eq = function eq() { + throw new Error("Not implemented"); + }; + BasePoint.prototype.validate = function validate() { + return this.curve.validate(this); + }; + BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + bytes = utils.toArray(bytes, enc); + var len = this.p.byteLength(); + if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) { + if (bytes[0] === 6) + assert(bytes[bytes.length - 1] % 2 === 0); + else if (bytes[0] === 7) + assert(bytes[bytes.length - 1] % 2 === 1); + var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)); + return res; + } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { + return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3); + } + throw new Error("Unknown point format"); + }; + BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { + return this.encode(enc, true); + }; + BasePoint.prototype._encode = function _encode(compact) { + var len = this.curve.p.byteLength(); + var x4 = this.getX().toArray("be", len); + if (compact) + return [this.getY().isEven() ? 2 : 3].concat(x4); + return [4].concat(x4, this.getY().toArray("be", len)); + }; + BasePoint.prototype.encode = function encode(enc, compact) { + return utils.encode(this._encode(compact), enc); + }; + BasePoint.prototype.precompute = function precompute(power) { + if (this.precomputed) + return this; + var precomputed = { + doubles: null, + naf: null, + beta: null + }; + precomputed.naf = this._getNAFPoints(8); + precomputed.doubles = this._getDoubles(4, power); + precomputed.beta = this._getBeta(); + this.precomputed = precomputed; + return this; + }; + BasePoint.prototype._hasDoubles = function _hasDoubles(k4) { + if (!this.precomputed) + return false; + var doubles = this.precomputed.doubles; + if (!doubles) + return false; + return doubles.points.length >= Math.ceil((k4.bitLength() + 1) / doubles.step); + }; + BasePoint.prototype._getDoubles = function _getDoubles(step, power) { + if (this.precomputed && this.precomputed.doubles) + return this.precomputed.doubles; + var doubles = [this]; + var acc = this; + for (var i6 = 0; i6 < power; i6 += step) { + for (var j4 = 0; j4 < step; j4++) + acc = acc.dbl(); + doubles.push(acc); + } + return { + step, + points: doubles + }; + }; + BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { + if (this.precomputed && this.precomputed.naf) + return this.precomputed.naf; + var res = [this]; + var max = (1 << wnd) - 1; + var dbl = max === 1 ? null : this.dbl(); + for (var i6 = 1; i6 < max; i6++) + res[i6] = res[i6 - 1].add(dbl); + return { + wnd, + points: res + }; + }; + BasePoint.prototype._getBeta = function _getBeta() { + return null; + }; + BasePoint.prototype.dblp = function dblp(k4) { + var r6 = this; + for (var i6 = 0; i6 < k4; i6++) + r6 = r6.dbl(); + return r6; + }; + return exports$S$1; +} +var exports$R$1 = {}; +var _dewExec$R$1 = false; +function dew$R$1() { + if (_dewExec$R$1) + return exports$R$1; + _dewExec$R$1 = true; + var utils = dew$T$1(); + var BN = dew$V$1(); + var inherits2 = dew$f$2(); + var Base = dew$S$1(); + var assert = utils.assert; + function ShortCurve(conf) { + Base.call(this, "short", conf); + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.tinv = this.two.redInvm(); + this.zeroA = this.a.fromRed().cmpn(0) === 0; + this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; + this.endo = this._getEndomorphism(conf); + this._endoWnafT1 = new Array(4); + this._endoWnafT2 = new Array(4); + } + inherits2(ShortCurve, Base); + exports$R$1 = ShortCurve; + ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { + if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) + return; + var beta; + var lambda; + if (conf.beta) { + beta = new BN(conf.beta, 16).toRed(this.red); + } else { + var betas = this._getEndoRoots(this.p); + beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; + beta = beta.toRed(this.red); + } + if (conf.lambda) { + lambda = new BN(conf.lambda, 16); + } else { + var lambdas = this._getEndoRoots(this.n); + if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { + lambda = lambdas[0]; + } else { + lambda = lambdas[1]; + assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); + } + } + var basis; + if (conf.basis) { + basis = conf.basis.map(function(vec) { + return { + a: new BN(vec.a, 16), + b: new BN(vec.b, 16) + }; + }); + } else { + basis = this._getEndoBasis(lambda); + } + return { + beta, + lambda, + basis + }; + }; + ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { + var red = num === this.p ? this.red : BN.mont(num); + var tinv = new BN(2).toRed(red).redInvm(); + var ntinv = tinv.redNeg(); + var s6 = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); + var l1 = ntinv.redAdd(s6).fromRed(); + var l22 = ntinv.redSub(s6).fromRed(); + return [l1, l22]; + }; + ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { + var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); + var u6 = lambda; + var v5 = this.n.clone(); + var x1 = new BN(1); + var y1 = new BN(0); + var x22 = new BN(0); + var y22 = new BN(1); + var a0; + var b0; + var a1; + var b1; + var a22; + var b22; + var prevR; + var i6 = 0; + var r6; + var x4; + while (u6.cmpn(0) !== 0) { + var q3 = v5.div(u6); + r6 = v5.sub(q3.mul(u6)); + x4 = x22.sub(q3.mul(x1)); + var y5 = y22.sub(q3.mul(y1)); + if (!a1 && r6.cmp(aprxSqrt) < 0) { + a0 = prevR.neg(); + b0 = x1; + a1 = r6.neg(); + b1 = x4; + } else if (a1 && ++i6 === 2) { + break; + } + prevR = r6; + v5 = u6; + u6 = r6; + x22 = x1; + x1 = x4; + y22 = y1; + y1 = y5; + } + a22 = r6.neg(); + b22 = x4; + var len1 = a1.sqr().add(b1.sqr()); + var len2 = a22.sqr().add(b22.sqr()); + if (len2.cmp(len1) >= 0) { + a22 = a0; + b22 = b0; + } + if (a1.negative) { + a1 = a1.neg(); + b1 = b1.neg(); + } + if (a22.negative) { + a22 = a22.neg(); + b22 = b22.neg(); + } + return [{ + a: a1, + b: b1 + }, { + a: a22, + b: b22 + }]; + }; + ShortCurve.prototype._endoSplit = function _endoSplit(k4) { + var basis = this.endo.basis; + var v1 = basis[0]; + var v22 = basis[1]; + var c1 = v22.b.mul(k4).divRound(this.n); + var c22 = v1.b.neg().mul(k4).divRound(this.n); + var p1 = c1.mul(v1.a); + var p22 = c22.mul(v22.a); + var q1 = c1.mul(v1.b); + var q22 = c22.mul(v22.b); + var k1 = k4.sub(p1).sub(p22); + var k22 = q1.add(q22).neg(); + return { + k1, + k2: k22 + }; + }; + ShortCurve.prototype.pointFromX = function pointFromX(x4, odd) { + x4 = new BN(x4, 16); + if (!x4.red) + x4 = x4.toRed(this.red); + var y22 = x4.redSqr().redMul(x4).redIAdd(x4.redMul(this.a)).redIAdd(this.b); + var y5 = y22.redSqrt(); + if (y5.redSqr().redSub(y22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + var isOdd = y5.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y5 = y5.redNeg(); + return this.point(x4, y5); + }; + ShortCurve.prototype.validate = function validate(point) { + if (point.inf) + return true; + var x4 = point.x; + var y5 = point.y; + var ax = this.a.redMul(x4); + var rhs = x4.redSqr().redMul(x4).redIAdd(ax).redIAdd(this.b); + return y5.redSqr().redISub(rhs).cmpn(0) === 0; + }; + ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { + var npoints = this._endoWnafT1; + var ncoeffs = this._endoWnafT2; + for (var i6 = 0; i6 < points.length; i6++) { + var split = this._endoSplit(coeffs[i6]); + var p6 = points[i6]; + var beta = p6._getBeta(); + if (split.k1.negative) { + split.k1.ineg(); + p6 = p6.neg(true); + } + if (split.k2.negative) { + split.k2.ineg(); + beta = beta.neg(true); + } + npoints[i6 * 2] = p6; + npoints[i6 * 2 + 1] = beta; + ncoeffs[i6 * 2] = split.k1; + ncoeffs[i6 * 2 + 1] = split.k2; + } + var res = this._wnafMulAdd(1, npoints, ncoeffs, i6 * 2, jacobianResult); + for (var j4 = 0; j4 < i6 * 2; j4++) { + npoints[j4] = null; + ncoeffs[j4] = null; + } + return res; + }; + function Point(curve, x4, y5, isRed) { + Base.BasePoint.call(this, curve, "affine"); + if (x4 === null && y5 === null) { + this.x = null; + this.y = null; + this.inf = true; + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + if (isRed) { + this.x.forceRed(this.curve.red); + this.y.forceRed(this.curve.red); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + this.inf = false; + } + } + inherits2(Point, Base.BasePoint); + ShortCurve.prototype.point = function point(x4, y5, isRed) { + return new Point(this, x4, y5, isRed); + }; + ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { + return Point.fromJSON(this, obj, red); + }; + Point.prototype._getBeta = function _getBeta() { + if (!this.curve.endo) + return; + var pre = this.precomputed; + if (pre && pre.beta) + return pre.beta; + var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); + if (pre) { + var curve = this.curve; + var endoMul = function(p6) { + return curve.point(p6.x.redMul(curve.endo.beta), p6.y); + }; + pre.beta = beta; + beta.precomputed = { + beta: null, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(endoMul) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(endoMul) + } + }; + } + return beta; + }; + Point.prototype.toJSON = function toJSON() { + if (!this.precomputed) + return [this.x, this.y]; + return [this.x, this.y, this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1) + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1) + } + }]; + }; + Point.fromJSON = function fromJSON(curve, obj, red) { + if (typeof obj === "string") + obj = JSON.parse(obj); + var res = curve.point(obj[0], obj[1], red); + if (!obj[2]) + return res; + function obj2point(obj2) { + return curve.point(obj2[0], obj2[1], red); + } + var pre = obj[2]; + res.precomputed = { + beta: null, + doubles: pre.doubles && { + step: pre.doubles.step, + points: [res].concat(pre.doubles.points.map(obj2point)) + }, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: [res].concat(pre.naf.points.map(obj2point)) + } + }; + return res; + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.inf; + }; + Point.prototype.add = function add(p6) { + if (this.inf) + return p6; + if (p6.inf) + return this; + if (this.eq(p6)) + return this.dbl(); + if (this.neg().eq(p6)) + return this.curve.point(null, null); + if (this.x.cmp(p6.x) === 0) + return this.curve.point(null, null); + var c6 = this.y.redSub(p6.y); + if (c6.cmpn(0) !== 0) + c6 = c6.redMul(this.x.redSub(p6.x).redInvm()); + var nx = c6.redSqr().redISub(this.x).redISub(p6.x); + var ny = c6.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); + }; + Point.prototype.dbl = function dbl() { + if (this.inf) + return this; + var ys1 = this.y.redAdd(this.y); + if (ys1.cmpn(0) === 0) + return this.curve.point(null, null); + var a6 = this.curve.a; + var x22 = this.x.redSqr(); + var dyinv = ys1.redInvm(); + var c6 = x22.redAdd(x22).redIAdd(x22).redIAdd(a6).redMul(dyinv); + var nx = c6.redSqr().redISub(this.x.redAdd(this.x)); + var ny = c6.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); + }; + Point.prototype.getX = function getX() { + return this.x.fromRed(); + }; + Point.prototype.getY = function getY() { + return this.y.fromRed(); + }; + Point.prototype.mul = function mul(k4) { + k4 = new BN(k4, 16); + if (this.isInfinity()) + return this; + else if (this._hasDoubles(k4)) + return this.curve._fixedNafMul(this, k4); + else if (this.curve.endo) + return this.curve._endoWnafMulAdd([this], [k4]); + else + return this.curve._wnafMul(this, k4); + }; + Point.prototype.mulAdd = function mulAdd(k1, p22, k22) { + var points = [this, p22]; + var coeffs = [k1, k22]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2); + }; + Point.prototype.jmulAdd = function jmulAdd(k1, p22, k22) { + var points = [this, p22]; + var coeffs = [k1, k22]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs, true); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2, true); + }; + Point.prototype.eq = function eq(p6) { + return this === p6 || this.inf === p6.inf && (this.inf || this.x.cmp(p6.x) === 0 && this.y.cmp(p6.y) === 0); + }; + Point.prototype.neg = function neg(_precompute) { + if (this.inf) + return this; + var res = this.curve.point(this.x, this.y.redNeg()); + if (_precompute && this.precomputed) { + var pre = this.precomputed; + var negate = function(p6) { + return p6.neg(); + }; + res.precomputed = { + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(negate) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(negate) + } + }; + } + return res; + }; + Point.prototype.toJ = function toJ() { + if (this.inf) + return this.curve.jpoint(null, null, null); + var res = this.curve.jpoint(this.x, this.y, this.curve.one); + return res; + }; + function JPoint(curve, x4, y5, z4) { + Base.BasePoint.call(this, curve, "jacobian"); + if (x4 === null && y5 === null && z4 === null) { + this.x = this.curve.one; + this.y = this.curve.one; + this.z = new BN(0); + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + this.z = new BN(z4, 16); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; + } + inherits2(JPoint, Base.BasePoint); + ShortCurve.prototype.jpoint = function jpoint(x4, y5, z4) { + return new JPoint(this, x4, y5, z4); + }; + JPoint.prototype.toP = function toP() { + if (this.isInfinity()) + return this.curve.point(null, null); + var zinv = this.z.redInvm(); + var zinv2 = zinv.redSqr(); + var ax = this.x.redMul(zinv2); + var ay = this.y.redMul(zinv2).redMul(zinv); + return this.curve.point(ax, ay); + }; + JPoint.prototype.neg = function neg() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); + }; + JPoint.prototype.add = function add(p6) { + if (this.isInfinity()) + return p6; + if (p6.isInfinity()) + return this; + var pz2 = p6.z.redSqr(); + var z22 = this.z.redSqr(); + var u1 = this.x.redMul(pz2); + var u22 = p6.x.redMul(z22); + var s1 = this.y.redMul(pz2.redMul(p6.z)); + var s22 = p6.y.redMul(z22.redMul(this.z)); + var h6 = u1.redSub(u22); + var r6 = s1.redSub(s22); + if (h6.cmpn(0) === 0) { + if (r6.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + var h22 = h6.redSqr(); + var h32 = h22.redMul(h6); + var v5 = u1.redMul(h22); + var nx = r6.redSqr().redIAdd(h32).redISub(v5).redISub(v5); + var ny = r6.redMul(v5.redISub(nx)).redISub(s1.redMul(h32)); + var nz = this.z.redMul(p6.z).redMul(h6); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.mixedAdd = function mixedAdd(p6) { + if (this.isInfinity()) + return p6.toJ(); + if (p6.isInfinity()) + return this; + var z22 = this.z.redSqr(); + var u1 = this.x; + var u22 = p6.x.redMul(z22); + var s1 = this.y; + var s22 = p6.y.redMul(z22).redMul(this.z); + var h6 = u1.redSub(u22); + var r6 = s1.redSub(s22); + if (h6.cmpn(0) === 0) { + if (r6.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + var h22 = h6.redSqr(); + var h32 = h22.redMul(h6); + var v5 = u1.redMul(h22); + var nx = r6.redSqr().redIAdd(h32).redISub(v5).redISub(v5); + var ny = r6.redMul(v5.redISub(nx)).redISub(s1.redMul(h32)); + var nz = this.z.redMul(h6); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.dblp = function dblp(pow) { + if (pow === 0) + return this; + if (this.isInfinity()) + return this; + if (!pow) + return this.dbl(); + var i6; + if (this.curve.zeroA || this.curve.threeA) { + var r6 = this; + for (i6 = 0; i6 < pow; i6++) + r6 = r6.dbl(); + return r6; + } + var a6 = this.curve.a; + var tinv = this.curve.tinv; + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + var jyd = jy.redAdd(jy); + for (i6 = 0; i6 < pow; i6++) { + var jx2 = jx.redSqr(); + var jyd2 = jyd.redSqr(); + var jyd4 = jyd2.redSqr(); + var c6 = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a6.redMul(jz4)); + var t1 = jx.redMul(jyd2); + var nx = c6.redSqr().redISub(t1.redAdd(t1)); + var t22 = t1.redISub(nx); + var dny = c6.redMul(t22); + dny = dny.redIAdd(dny).redISub(jyd4); + var nz = jyd.redMul(jz); + if (i6 + 1 < pow) + jz4 = jz4.redMul(jyd4); + jx = nx; + jz = nz; + jyd = dny; + } + return this.curve.jpoint(jx, jyd.redMul(tinv), jz); + }; + JPoint.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + if (this.curve.zeroA) + return this._zeroDbl(); + else if (this.curve.threeA) + return this._threeDbl(); + else + return this._dbl(); + }; + JPoint.prototype._zeroDbl = function _zeroDbl() { + var nx; + var ny; + var nz; + if (this.zOne) { + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var yyyy = yy.redSqr(); + var s6 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s6 = s6.redIAdd(s6); + var m5 = xx.redAdd(xx).redIAdd(xx); + var t6 = m5.redSqr().redISub(s6).redISub(s6); + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + nx = t6; + ny = m5.redMul(s6.redISub(t6)).redISub(yyyy8); + nz = this.y.redAdd(this.y); + } else { + var a6 = this.x.redSqr(); + var b4 = this.y.redSqr(); + var c6 = b4.redSqr(); + var d5 = this.x.redAdd(b4).redSqr().redISub(a6).redISub(c6); + d5 = d5.redIAdd(d5); + var e8 = a6.redAdd(a6).redIAdd(a6); + var f7 = e8.redSqr(); + var c8 = c6.redIAdd(c6); + c8 = c8.redIAdd(c8); + c8 = c8.redIAdd(c8); + nx = f7.redISub(d5).redISub(d5); + ny = e8.redMul(d5.redISub(nx)).redISub(c8); + nz = this.y.redMul(this.z); + nz = nz.redIAdd(nz); + } + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype._threeDbl = function _threeDbl() { + var nx; + var ny; + var nz; + if (this.zOne) { + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var yyyy = yy.redSqr(); + var s6 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s6 = s6.redIAdd(s6); + var m5 = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); + var t6 = m5.redSqr().redISub(s6).redISub(s6); + nx = t6; + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + ny = m5.redMul(s6.redISub(t6)).redISub(yyyy8); + nz = this.y.redAdd(this.y); + } else { + var delta = this.z.redSqr(); + var gamma = this.y.redSqr(); + var beta = this.x.redMul(gamma); + var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); + alpha = alpha.redAdd(alpha).redIAdd(alpha); + var beta4 = beta.redIAdd(beta); + beta4 = beta4.redIAdd(beta4); + var beta8 = beta4.redAdd(beta4); + nx = alpha.redSqr().redISub(beta8); + nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); + var ggamma8 = gamma.redSqr(); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); + } + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype._dbl = function _dbl() { + var a6 = this.curve.a; + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + var jx2 = jx.redSqr(); + var jy2 = jy.redSqr(); + var c6 = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a6.redMul(jz4)); + var jxd4 = jx.redAdd(jx); + jxd4 = jxd4.redIAdd(jxd4); + var t1 = jxd4.redMul(jy2); + var nx = c6.redSqr().redISub(t1.redAdd(t1)); + var t22 = t1.redISub(nx); + var jyd8 = jy2.redSqr(); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + var ny = c6.redMul(t22).redISub(jyd8); + var nz = jy.redAdd(jy).redMul(jz); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.trpl = function trpl() { + if (!this.curve.zeroA) + return this.dbl().add(this); + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var zz = this.z.redSqr(); + var yyyy = yy.redSqr(); + var m5 = xx.redAdd(xx).redIAdd(xx); + var mm = m5.redSqr(); + var e8 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + e8 = e8.redIAdd(e8); + e8 = e8.redAdd(e8).redIAdd(e8); + e8 = e8.redISub(mm); + var ee3 = e8.redSqr(); + var t6 = yyyy.redIAdd(yyyy); + t6 = t6.redIAdd(t6); + t6 = t6.redIAdd(t6); + t6 = t6.redIAdd(t6); + var u6 = m5.redIAdd(e8).redSqr().redISub(mm).redISub(ee3).redISub(t6); + var yyu4 = yy.redMul(u6); + yyu4 = yyu4.redIAdd(yyu4); + yyu4 = yyu4.redIAdd(yyu4); + var nx = this.x.redMul(ee3).redISub(yyu4); + nx = nx.redIAdd(nx); + nx = nx.redIAdd(nx); + var ny = this.y.redMul(u6.redMul(t6.redISub(u6)).redISub(e8.redMul(ee3))); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + var nz = this.z.redAdd(e8).redSqr().redISub(zz).redISub(ee3); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.mul = function mul(k4, kbase) { + k4 = new BN(k4, kbase); + return this.curve._wnafMul(this, k4); + }; + JPoint.prototype.eq = function eq(p6) { + if (p6.type === "affine") + return this.eq(p6.toJ()); + if (this === p6) + return true; + var z22 = this.z.redSqr(); + var pz2 = p6.z.redSqr(); + if (this.x.redMul(pz2).redISub(p6.x.redMul(z22)).cmpn(0) !== 0) + return false; + var z32 = z22.redMul(this.z); + var pz3 = pz2.redMul(p6.z); + return this.y.redMul(pz3).redISub(p6.y.redMul(z32)).cmpn(0) === 0; + }; + JPoint.prototype.eqXToP = function eqXToP(x4) { + var zs = this.z.redSqr(); + var rx = x4.toRed(this.curve.red).redMul(zs); + if (this.x.cmp(rx) === 0) + return true; + var xc = x4.clone(); + var t6 = this.curve.redN.redMul(zs); + for (; ; ) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + rx.redIAdd(t6); + if (this.x.cmp(rx) === 0) + return true; + } + }; + JPoint.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + JPoint.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0; + }; + return exports$R$1; +} +var exports$Q$1 = {}; +var _dewExec$Q$1 = false; +function dew$Q$1() { + if (_dewExec$Q$1) + return exports$Q$1; + _dewExec$Q$1 = true; + var BN = dew$V$1(); + var inherits2 = dew$f$2(); + var Base = dew$S$1(); + var utils = dew$T$1(); + function MontCurve(conf) { + Base.call(this, "mont", conf); + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.i4 = new BN(4).toRed(this.red).redInvm(); + this.two = new BN(2).toRed(this.red); + this.a24 = this.i4.redMul(this.a.redAdd(this.two)); + } + inherits2(MontCurve, Base); + exports$Q$1 = MontCurve; + MontCurve.prototype.validate = function validate(point) { + var x4 = point.normalize().x; + var x22 = x4.redSqr(); + var rhs = x22.redMul(x4).redAdd(x22.redMul(this.a)).redAdd(x4); + var y5 = rhs.redSqrt(); + return y5.redSqr().cmp(rhs) === 0; + }; + function Point(curve, x4, z4) { + Base.BasePoint.call(this, curve, "projective"); + if (x4 === null && z4 === null) { + this.x = this.curve.one; + this.z = this.curve.zero; + } else { + this.x = new BN(x4, 16); + this.z = new BN(z4, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + } + } + inherits2(Point, Base.BasePoint); + MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + return this.point(utils.toArray(bytes, enc), 1); + }; + MontCurve.prototype.point = function point(x4, z4) { + return new Point(this, x4, z4); + }; + MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); + }; + Point.prototype.precompute = function precompute() { + }; + Point.prototype._encode = function _encode() { + return this.getX().toArray("be", this.curve.p.byteLength()); + }; + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1] || curve.one); + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0; + }; + Point.prototype.dbl = function dbl() { + var a6 = this.x.redAdd(this.z); + var aa = a6.redSqr(); + var b4 = this.x.redSub(this.z); + var bb = b4.redSqr(); + var c6 = aa.redSub(bb); + var nx = aa.redMul(bb); + var nz = c6.redMul(bb.redAdd(this.curve.a24.redMul(c6))); + return this.curve.point(nx, nz); + }; + Point.prototype.add = function add() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.diffAdd = function diffAdd(p6, diff) { + var a6 = this.x.redAdd(this.z); + var b4 = this.x.redSub(this.z); + var c6 = p6.x.redAdd(p6.z); + var d5 = p6.x.redSub(p6.z); + var da = d5.redMul(a6); + var cb = c6.redMul(b4); + var nx = diff.z.redMul(da.redAdd(cb).redSqr()); + var nz = diff.x.redMul(da.redISub(cb).redSqr()); + return this.curve.point(nx, nz); + }; + Point.prototype.mul = function mul(k4) { + var t6 = k4.clone(); + var a6 = this; + var b4 = this.curve.point(null, null); + var c6 = this; + for (var bits = []; t6.cmpn(0) !== 0; t6.iushrn(1)) + bits.push(t6.andln(1)); + for (var i6 = bits.length - 1; i6 >= 0; i6--) { + if (bits[i6] === 0) { + a6 = a6.diffAdd(b4, c6); + b4 = b4.dbl(); + } else { + b4 = a6.diffAdd(b4, c6); + a6 = a6.dbl(); + } + } + return b4; + }; + Point.prototype.mulAdd = function mulAdd() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.jumlAdd = function jumlAdd() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.eq = function eq(other) { + return this.getX().cmp(other.getX()) === 0; + }; + Point.prototype.normalize = function normalize() { + this.x = this.x.redMul(this.z.redInvm()); + this.z = this.curve.one; + return this; + }; + Point.prototype.getX = function getX() { + this.normalize(); + return this.x.fromRed(); + }; + return exports$Q$1; +} +var exports$P$1 = {}; +var _dewExec$P$1 = false; +function dew$P$1() { + if (_dewExec$P$1) + return exports$P$1; + _dewExec$P$1 = true; + var utils = dew$T$1(); + var BN = dew$V$1(); + var inherits2 = dew$f$2(); + var Base = dew$S$1(); + var assert = utils.assert; + function EdwardsCurve(conf) { + this.twisted = (conf.a | 0) !== 1; + this.mOneA = this.twisted && (conf.a | 0) === -1; + this.extended = this.mOneA; + Base.call(this, "edwards", conf); + this.a = new BN(conf.a, 16).umod(this.red.m); + this.a = this.a.toRed(this.red); + this.c = new BN(conf.c, 16).toRed(this.red); + this.c2 = this.c.redSqr(); + this.d = new BN(conf.d, 16).toRed(this.red); + this.dd = this.d.redAdd(this.d); + assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); + this.oneC = (conf.c | 0) === 1; + } + inherits2(EdwardsCurve, Base); + exports$P$1 = EdwardsCurve; + EdwardsCurve.prototype._mulA = function _mulA(num) { + if (this.mOneA) + return num.redNeg(); + else + return this.a.redMul(num); + }; + EdwardsCurve.prototype._mulC = function _mulC(num) { + if (this.oneC) + return num; + else + return this.c.redMul(num); + }; + EdwardsCurve.prototype.jpoint = function jpoint(x4, y5, z4, t6) { + return this.point(x4, y5, z4, t6); + }; + EdwardsCurve.prototype.pointFromX = function pointFromX(x4, odd) { + x4 = new BN(x4, 16); + if (!x4.red) + x4 = x4.toRed(this.red); + var x22 = x4.redSqr(); + var rhs = this.c2.redSub(this.a.redMul(x22)); + var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x22)); + var y22 = rhs.redMul(lhs.redInvm()); + var y5 = y22.redSqrt(); + if (y5.redSqr().redSub(y22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + var isOdd = y5.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y5 = y5.redNeg(); + return this.point(x4, y5); + }; + EdwardsCurve.prototype.pointFromY = function pointFromY(y5, odd) { + y5 = new BN(y5, 16); + if (!y5.red) + y5 = y5.toRed(this.red); + var y22 = y5.redSqr(); + var lhs = y22.redSub(this.c2); + var rhs = y22.redMul(this.d).redMul(this.c2).redSub(this.a); + var x22 = lhs.redMul(rhs.redInvm()); + if (x22.cmp(this.zero) === 0) { + if (odd) + throw new Error("invalid point"); + else + return this.point(this.zero, y5); + } + var x4 = x22.redSqrt(); + if (x4.redSqr().redSub(x22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + if (x4.fromRed().isOdd() !== odd) + x4 = x4.redNeg(); + return this.point(x4, y5); + }; + EdwardsCurve.prototype.validate = function validate(point) { + if (point.isInfinity()) + return true; + point.normalize(); + var x22 = point.x.redSqr(); + var y22 = point.y.redSqr(); + var lhs = x22.redMul(this.a).redAdd(y22); + var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x22).redMul(y22))); + return lhs.cmp(rhs) === 0; + }; + function Point(curve, x4, y5, z4, t6) { + Base.BasePoint.call(this, curve, "projective"); + if (x4 === null && y5 === null && z4 === null) { + this.x = this.curve.zero; + this.y = this.curve.one; + this.z = this.curve.one; + this.t = this.curve.zero; + this.zOne = true; + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + this.z = z4 ? new BN(z4, 16) : this.curve.one; + this.t = t6 && new BN(t6, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + if (this.t && !this.t.red) + this.t = this.t.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; + if (this.curve.extended && !this.t) { + this.t = this.x.redMul(this.y); + if (!this.zOne) + this.t = this.t.redMul(this.z.redInvm()); + } + } + } + inherits2(Point, Base.BasePoint); + EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); + }; + EdwardsCurve.prototype.point = function point(x4, y5, z4, t6) { + return new Point(this, x4, y5, z4, t6); + }; + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1], obj[2]); + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0); + }; + Point.prototype._extDbl = function _extDbl() { + var a6 = this.x.redSqr(); + var b4 = this.y.redSqr(); + var c6 = this.z.redSqr(); + c6 = c6.redIAdd(c6); + var d5 = this.curve._mulA(a6); + var e8 = this.x.redAdd(this.y).redSqr().redISub(a6).redISub(b4); + var g4 = d5.redAdd(b4); + var f7 = g4.redSub(c6); + var h6 = d5.redSub(b4); + var nx = e8.redMul(f7); + var ny = g4.redMul(h6); + var nt2 = e8.redMul(h6); + var nz = f7.redMul(g4); + return this.curve.point(nx, ny, nz, nt2); + }; + Point.prototype._projDbl = function _projDbl() { + var b4 = this.x.redAdd(this.y).redSqr(); + var c6 = this.x.redSqr(); + var d5 = this.y.redSqr(); + var nx; + var ny; + var nz; + var e8; + var h6; + var j4; + if (this.curve.twisted) { + e8 = this.curve._mulA(c6); + var f7 = e8.redAdd(d5); + if (this.zOne) { + nx = b4.redSub(c6).redSub(d5).redMul(f7.redSub(this.curve.two)); + ny = f7.redMul(e8.redSub(d5)); + nz = f7.redSqr().redSub(f7).redSub(f7); + } else { + h6 = this.z.redSqr(); + j4 = f7.redSub(h6).redISub(h6); + nx = b4.redSub(c6).redISub(d5).redMul(j4); + ny = f7.redMul(e8.redSub(d5)); + nz = f7.redMul(j4); + } + } else { + e8 = c6.redAdd(d5); + h6 = this.curve._mulC(this.z).redSqr(); + j4 = e8.redSub(h6).redSub(h6); + nx = this.curve._mulC(b4.redISub(e8)).redMul(j4); + ny = this.curve._mulC(e8).redMul(c6.redISub(d5)); + nz = e8.redMul(j4); + } + return this.curve.point(nx, ny, nz); + }; + Point.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + if (this.curve.extended) + return this._extDbl(); + else + return this._projDbl(); + }; + Point.prototype._extAdd = function _extAdd(p6) { + var a6 = this.y.redSub(this.x).redMul(p6.y.redSub(p6.x)); + var b4 = this.y.redAdd(this.x).redMul(p6.y.redAdd(p6.x)); + var c6 = this.t.redMul(this.curve.dd).redMul(p6.t); + var d5 = this.z.redMul(p6.z.redAdd(p6.z)); + var e8 = b4.redSub(a6); + var f7 = d5.redSub(c6); + var g4 = d5.redAdd(c6); + var h6 = b4.redAdd(a6); + var nx = e8.redMul(f7); + var ny = g4.redMul(h6); + var nt2 = e8.redMul(h6); + var nz = f7.redMul(g4); + return this.curve.point(nx, ny, nz, nt2); + }; + Point.prototype._projAdd = function _projAdd(p6) { + var a6 = this.z.redMul(p6.z); + var b4 = a6.redSqr(); + var c6 = this.x.redMul(p6.x); + var d5 = this.y.redMul(p6.y); + var e8 = this.curve.d.redMul(c6).redMul(d5); + var f7 = b4.redSub(e8); + var g4 = b4.redAdd(e8); + var tmp = this.x.redAdd(this.y).redMul(p6.x.redAdd(p6.y)).redISub(c6).redISub(d5); + var nx = a6.redMul(f7).redMul(tmp); + var ny; + var nz; + if (this.curve.twisted) { + ny = a6.redMul(g4).redMul(d5.redSub(this.curve._mulA(c6))); + nz = f7.redMul(g4); + } else { + ny = a6.redMul(g4).redMul(d5.redSub(c6)); + nz = this.curve._mulC(f7).redMul(g4); + } + return this.curve.point(nx, ny, nz); + }; + Point.prototype.add = function add(p6) { + if (this.isInfinity()) + return p6; + if (p6.isInfinity()) + return this; + if (this.curve.extended) + return this._extAdd(p6); + else + return this._projAdd(p6); + }; + Point.prototype.mul = function mul(k4) { + if (this._hasDoubles(k4)) + return this.curve._fixedNafMul(this, k4); + else + return this.curve._wnafMul(this, k4); + }; + Point.prototype.mulAdd = function mulAdd(k1, p6, k22) { + return this.curve._wnafMulAdd(1, [this, p6], [k1, k22], 2, false); + }; + Point.prototype.jmulAdd = function jmulAdd(k1, p6, k22) { + return this.curve._wnafMulAdd(1, [this, p6], [k1, k22], 2, true); + }; + Point.prototype.normalize = function normalize() { + if (this.zOne) + return this; + var zi = this.z.redInvm(); + this.x = this.x.redMul(zi); + this.y = this.y.redMul(zi); + if (this.t) + this.t = this.t.redMul(zi); + this.z = this.curve.one; + this.zOne = true; + return this; + }; + Point.prototype.neg = function neg() { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()); + }; + Point.prototype.getX = function getX() { + this.normalize(); + return this.x.fromRed(); + }; + Point.prototype.getY = function getY() { + this.normalize(); + return this.y.fromRed(); + }; + Point.prototype.eq = function eq(other) { + return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0; + }; + Point.prototype.eqXToP = function eqXToP(x4) { + var rx = x4.toRed(this.curve.red).redMul(this.z); + if (this.x.cmp(rx) === 0) + return true; + var xc = x4.clone(); + var t6 = this.curve.redN.redMul(this.z); + for (; ; ) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + rx.redIAdd(t6); + if (this.x.cmp(rx) === 0) + return true; + } + }; + Point.prototype.toP = Point.prototype.normalize; + Point.prototype.mixedAdd = Point.prototype.add; + return exports$P$1; +} +var exports$O$1 = {}; +var _dewExec$O$1 = false; +function dew$O$1() { + if (_dewExec$O$1) + return exports$O$1; + _dewExec$O$1 = true; + var curve = exports$O$1; + curve.base = dew$S$1(); + curve.short = dew$R$1(); + curve.mont = dew$Q$1(); + curve.edwards = dew$P$1(); + return exports$O$1; +} +var exports$N$1 = {}; +var _dewExec$N$1 = false; +function dew$N$1() { + if (_dewExec$N$1) + return exports$N$1; + _dewExec$N$1 = true; + var assert = dew$1t(); + var inherits2 = dew$f$2(); + exports$N$1.inherits = inherits2; + function isSurrogatePair(msg, i6) { + if ((msg.charCodeAt(i6) & 64512) !== 55296) { + return false; + } + if (i6 < 0 || i6 + 1 >= msg.length) { + return false; + } + return (msg.charCodeAt(i6 + 1) & 64512) === 56320; + } + function toArray(msg, enc) { + if (Array.isArray(msg)) + return msg.slice(); + if (!msg) + return []; + var res = []; + if (typeof msg === "string") { + if (!enc) { + var p6 = 0; + for (var i6 = 0; i6 < msg.length; i6++) { + var c6 = msg.charCodeAt(i6); + if (c6 < 128) { + res[p6++] = c6; + } else if (c6 < 2048) { + res[p6++] = c6 >> 6 | 192; + res[p6++] = c6 & 63 | 128; + } else if (isSurrogatePair(msg, i6)) { + c6 = 65536 + ((c6 & 1023) << 10) + (msg.charCodeAt(++i6) & 1023); + res[p6++] = c6 >> 18 | 240; + res[p6++] = c6 >> 12 & 63 | 128; + res[p6++] = c6 >> 6 & 63 | 128; + res[p6++] = c6 & 63 | 128; + } else { + res[p6++] = c6 >> 12 | 224; + res[p6++] = c6 >> 6 & 63 | 128; + res[p6++] = c6 & 63 | 128; + } + } + } else if (enc === "hex") { + msg = msg.replace(/[^a-z0-9]+/ig, ""); + if (msg.length % 2 !== 0) + msg = "0" + msg; + for (i6 = 0; i6 < msg.length; i6 += 2) + res.push(parseInt(msg[i6] + msg[i6 + 1], 16)); + } + } else { + for (i6 = 0; i6 < msg.length; i6++) + res[i6] = msg[i6] | 0; + } + return res; + } + exports$N$1.toArray = toArray; + function toHex(msg) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) + res += zero2(msg[i6].toString(16)); + return res; + } + exports$N$1.toHex = toHex; + function htonl(w4) { + var res = w4 >>> 24 | w4 >>> 8 & 65280 | w4 << 8 & 16711680 | (w4 & 255) << 24; + return res >>> 0; + } + exports$N$1.htonl = htonl; + function toHex32(msg, endian) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) { + var w4 = msg[i6]; + if (endian === "little") + w4 = htonl(w4); + res += zero8(w4.toString(16)); + } + return res; + } + exports$N$1.toHex32 = toHex32; + function zero2(word) { + if (word.length === 1) + return "0" + word; + else + return word; + } + exports$N$1.zero2 = zero2; + function zero8(word) { + if (word.length === 7) + return "0" + word; + else if (word.length === 6) + return "00" + word; + else if (word.length === 5) + return "000" + word; + else if (word.length === 4) + return "0000" + word; + else if (word.length === 3) + return "00000" + word; + else if (word.length === 2) + return "000000" + word; + else if (word.length === 1) + return "0000000" + word; + else + return word; + } + exports$N$1.zero8 = zero8; + function join32(msg, start, end, endian) { + var len = end - start; + assert(len % 4 === 0); + var res = new Array(len / 4); + for (var i6 = 0, k4 = start; i6 < res.length; i6++, k4 += 4) { + var w4; + if (endian === "big") + w4 = msg[k4] << 24 | msg[k4 + 1] << 16 | msg[k4 + 2] << 8 | msg[k4 + 3]; + else + w4 = msg[k4 + 3] << 24 | msg[k4 + 2] << 16 | msg[k4 + 1] << 8 | msg[k4]; + res[i6] = w4 >>> 0; + } + return res; + } + exports$N$1.join32 = join32; + function split32(msg, endian) { + var res = new Array(msg.length * 4); + for (var i6 = 0, k4 = 0; i6 < msg.length; i6++, k4 += 4) { + var m5 = msg[i6]; + if (endian === "big") { + res[k4] = m5 >>> 24; + res[k4 + 1] = m5 >>> 16 & 255; + res[k4 + 2] = m5 >>> 8 & 255; + res[k4 + 3] = m5 & 255; + } else { + res[k4 + 3] = m5 >>> 24; + res[k4 + 2] = m5 >>> 16 & 255; + res[k4 + 1] = m5 >>> 8 & 255; + res[k4] = m5 & 255; + } + } + return res; + } + exports$N$1.split32 = split32; + function rotr32(w4, b4) { + return w4 >>> b4 | w4 << 32 - b4; + } + exports$N$1.rotr32 = rotr32; + function rotl32(w4, b4) { + return w4 << b4 | w4 >>> 32 - b4; + } + exports$N$1.rotl32 = rotl32; + function sum32(a6, b4) { + return a6 + b4 >>> 0; + } + exports$N$1.sum32 = sum32; + function sum32_3(a6, b4, c6) { + return a6 + b4 + c6 >>> 0; + } + exports$N$1.sum32_3 = sum32_3; + function sum32_4(a6, b4, c6, d5) { + return a6 + b4 + c6 + d5 >>> 0; + } + exports$N$1.sum32_4 = sum32_4; + function sum32_5(a6, b4, c6, d5, e8) { + return a6 + b4 + c6 + d5 + e8 >>> 0; + } + exports$N$1.sum32_5 = sum32_5; + function sum64(buf, pos, ah, al) { + var bh = buf[pos]; + var bl = buf[pos + 1]; + var lo = al + bl >>> 0; + var hi = (lo < al ? 1 : 0) + ah + bh; + buf[pos] = hi >>> 0; + buf[pos + 1] = lo; + } + exports$N$1.sum64 = sum64; + function sum64_hi(ah, al, bh, bl) { + var lo = al + bl >>> 0; + var hi = (lo < al ? 1 : 0) + ah + bh; + return hi >>> 0; + } + exports$N$1.sum64_hi = sum64_hi; + function sum64_lo(ah, al, bh, bl) { + var lo = al + bl; + return lo >>> 0; + } + exports$N$1.sum64_lo = sum64_lo; + function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { + var carry = 0; + var lo = al; + lo = lo + bl >>> 0; + carry += lo < al ? 1 : 0; + lo = lo + cl >>> 0; + carry += lo < cl ? 1 : 0; + lo = lo + dl >>> 0; + carry += lo < dl ? 1 : 0; + var hi = ah + bh + ch + dh + carry; + return hi >>> 0; + } + exports$N$1.sum64_4_hi = sum64_4_hi; + function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { + var lo = al + bl + cl + dl; + return lo >>> 0; + } + exports$N$1.sum64_4_lo = sum64_4_lo; + function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var carry = 0; + var lo = al; + lo = lo + bl >>> 0; + carry += lo < al ? 1 : 0; + lo = lo + cl >>> 0; + carry += lo < cl ? 1 : 0; + lo = lo + dl >>> 0; + carry += lo < dl ? 1 : 0; + lo = lo + el >>> 0; + carry += lo < el ? 1 : 0; + var hi = ah + bh + ch + dh + eh + carry; + return hi >>> 0; + } + exports$N$1.sum64_5_hi = sum64_5_hi; + function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var lo = al + bl + cl + dl + el; + return lo >>> 0; + } + exports$N$1.sum64_5_lo = sum64_5_lo; + function rotr64_hi(ah, al, num) { + var r6 = al << 32 - num | ah >>> num; + return r6 >>> 0; + } + exports$N$1.rotr64_hi = rotr64_hi; + function rotr64_lo(ah, al, num) { + var r6 = ah << 32 - num | al >>> num; + return r6 >>> 0; + } + exports$N$1.rotr64_lo = rotr64_lo; + function shr64_hi(ah, al, num) { + return ah >>> num; + } + exports$N$1.shr64_hi = shr64_hi; + function shr64_lo(ah, al, num) { + var r6 = ah << 32 - num | al >>> num; + return r6 >>> 0; + } + exports$N$1.shr64_lo = shr64_lo; + return exports$N$1; +} +var exports$M$1 = {}; +var _dewExec$M$1 = false; +function dew$M$1() { + if (_dewExec$M$1) + return exports$M$1; + _dewExec$M$1 = true; + var utils = dew$N$1(); + var assert = dew$1t(); + function BlockHash() { + this.pending = null; + this.pendingTotal = 0; + this.blockSize = this.constructor.blockSize; + this.outSize = this.constructor.outSize; + this.hmacStrength = this.constructor.hmacStrength; + this.padLength = this.constructor.padLength / 8; + this.endian = "big"; + this._delta8 = this.blockSize / 8; + this._delta32 = this.blockSize / 32; + } + exports$M$1.BlockHash = BlockHash; + BlockHash.prototype.update = function update(msg, enc) { + msg = utils.toArray(msg, enc); + if (!this.pending) + this.pending = msg; + else + this.pending = this.pending.concat(msg); + this.pendingTotal += msg.length; + if (this.pending.length >= this._delta8) { + msg = this.pending; + var r6 = msg.length % this._delta8; + this.pending = msg.slice(msg.length - r6, msg.length); + if (this.pending.length === 0) + this.pending = null; + msg = utils.join32(msg, 0, msg.length - r6, this.endian); + for (var i6 = 0; i6 < msg.length; i6 += this._delta32) + this._update(msg, i6, i6 + this._delta32); + } + return this; + }; + BlockHash.prototype.digest = function digest(enc) { + this.update(this._pad()); + assert(this.pending === null); + return this._digest(enc); + }; + BlockHash.prototype._pad = function pad() { + var len = this.pendingTotal; + var bytes = this._delta8; + var k4 = bytes - (len + this.padLength) % bytes; + var res = new Array(k4 + this.padLength); + res[0] = 128; + for (var i6 = 1; i6 < k4; i6++) + res[i6] = 0; + len <<= 3; + if (this.endian === "big") { + for (var t6 = 8; t6 < this.padLength; t6++) + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = len >>> 24 & 255; + res[i6++] = len >>> 16 & 255; + res[i6++] = len >>> 8 & 255; + res[i6++] = len & 255; + } else { + res[i6++] = len & 255; + res[i6++] = len >>> 8 & 255; + res[i6++] = len >>> 16 & 255; + res[i6++] = len >>> 24 & 255; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + for (t6 = 8; t6 < this.padLength; t6++) + res[i6++] = 0; + } + return res; + }; + return exports$M$1; +} +var exports$L$1 = {}; +var _dewExec$L$1 = false; +function dew$L$1() { + if (_dewExec$L$1) + return exports$L$1; + _dewExec$L$1 = true; + return exports$L$1; +} +var exports$K$1 = {}; +var _dewExec$K$1 = false; +function dew$K$1() { + if (_dewExec$K$1) + return exports$K$1; + _dewExec$K$1 = true; + var utils = dew$N$1(); + var common = dew$M$1(); + var rotl32 = utils.rotl32; + var sum32 = utils.sum32; + var sum32_3 = utils.sum32_3; + var sum32_4 = utils.sum32_4; + var BlockHash = common.BlockHash; + function RIPEMD160() { + if (!(this instanceof RIPEMD160)) + return new RIPEMD160(); + BlockHash.call(this); + this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; + this.endian = "little"; + } + utils.inherits(RIPEMD160, BlockHash); + exports$K$1.ripemd160 = RIPEMD160; + RIPEMD160.blockSize = 512; + RIPEMD160.outSize = 160; + RIPEMD160.hmacStrength = 192; + RIPEMD160.padLength = 64; + RIPEMD160.prototype._update = function update(msg, start) { + var A4 = this.h[0]; + var B4 = this.h[1]; + var C4 = this.h[2]; + var D4 = this.h[3]; + var E4 = this.h[4]; + var Ah = A4; + var Bh = B4; + var Ch = C4; + var Dh = D4; + var Eh = E4; + for (var j4 = 0; j4 < 80; j4++) { + var T5 = sum32(rotl32(sum32_4(A4, f7(j4, B4, C4, D4), msg[r6[j4] + start], K3(j4)), s6[j4]), E4); + A4 = E4; + E4 = D4; + D4 = rotl32(C4, 10); + C4 = B4; + B4 = T5; + T5 = sum32(rotl32(sum32_4(Ah, f7(79 - j4, Bh, Ch, Dh), msg[rh[j4] + start], Kh(j4)), sh[j4]), Eh); + Ah = Eh; + Eh = Dh; + Dh = rotl32(Ch, 10); + Ch = Bh; + Bh = T5; + } + T5 = sum32_3(this.h[1], C4, Dh); + this.h[1] = sum32_3(this.h[2], D4, Eh); + this.h[2] = sum32_3(this.h[3], E4, Ah); + this.h[3] = sum32_3(this.h[4], A4, Bh); + this.h[4] = sum32_3(this.h[0], B4, Ch); + this.h[0] = T5; + }; + RIPEMD160.prototype._digest = function digest(enc) { + if (enc === "hex") + return utils.toHex32(this.h, "little"); + else + return utils.split32(this.h, "little"); + }; + function f7(j4, x4, y5, z4) { + if (j4 <= 15) + return x4 ^ y5 ^ z4; + else if (j4 <= 31) + return x4 & y5 | ~x4 & z4; + else if (j4 <= 47) + return (x4 | ~y5) ^ z4; + else if (j4 <= 63) + return x4 & z4 | y5 & ~z4; + else + return x4 ^ (y5 | ~z4); + } + function K3(j4) { + if (j4 <= 15) + return 0; + else if (j4 <= 31) + return 1518500249; + else if (j4 <= 47) + return 1859775393; + else if (j4 <= 63) + return 2400959708; + else + return 2840853838; + } + function Kh(j4) { + if (j4 <= 15) + return 1352829926; + else if (j4 <= 31) + return 1548603684; + else if (j4 <= 47) + return 1836072691; + else if (j4 <= 63) + return 2053994217; + else + return 0; + } + var r6 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; + var rh = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; + var s6 = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; + var sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; + return exports$K$1; +} +var exports$J$1 = {}; +var _dewExec$J$1 = false; +function dew$J$1() { + if (_dewExec$J$1) + return exports$J$1; + _dewExec$J$1 = true; + var utils = dew$N$1(); + var assert = dew$1t(); + function Hmac2(hash, key, enc) { + if (!(this instanceof Hmac2)) + return new Hmac2(hash, key, enc); + this.Hash = hash; + this.blockSize = hash.blockSize / 8; + this.outSize = hash.outSize / 8; + this.inner = null; + this.outer = null; + this._init(utils.toArray(key, enc)); + } + exports$J$1 = Hmac2; + Hmac2.prototype._init = function init(key) { + if (key.length > this.blockSize) + key = new this.Hash().update(key).digest(); + assert(key.length <= this.blockSize); + for (var i6 = key.length; i6 < this.blockSize; i6++) + key.push(0); + for (i6 = 0; i6 < key.length; i6++) + key[i6] ^= 54; + this.inner = new this.Hash().update(key); + for (i6 = 0; i6 < key.length; i6++) + key[i6] ^= 106; + this.outer = new this.Hash().update(key); + }; + Hmac2.prototype.update = function update(msg, enc) { + this.inner.update(msg, enc); + return this; + }; + Hmac2.prototype.digest = function digest(enc) { + this.outer.update(this.inner.digest()); + return this.outer.digest(enc); + }; + return exports$J$1; +} +var exports$I$1 = {}; +var _dewExec$I$1 = false; +function dew$I$1() { + if (_dewExec$I$1) + return exports$I$1; + _dewExec$I$1 = true; + var hash = exports$I$1; + hash.utils = dew$N$1(); + hash.common = dew$M$1(); + hash.sha = dew$L$1(); + hash.ripemd = dew$K$1(); + hash.hmac = dew$J$1(); + hash.sha1 = hash.sha.sha1; + hash.sha256 = hash.sha.sha256; + hash.sha224 = hash.sha.sha224; + hash.sha384 = hash.sha.sha384; + hash.sha512 = hash.sha.sha512; + hash.ripemd160 = hash.ripemd.ripemd160; + return exports$I$1; +} +var exports$H$1 = {}; +var _dewExec$H$1 = false; +function dew$H$1() { + if (_dewExec$H$1) + return exports$H$1; + _dewExec$H$1 = true; + exports$H$1 = { + doubles: { + step: 4, + points: [["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a", "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"], ["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"], ["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739", "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"], ["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"], ["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c", "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"], ["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda", "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"], ["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa", "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"], ["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0", "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"], ["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d", "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"], ["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d", "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"], ["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1", "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"], ["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0", "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"], ["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047", "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"], ["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862", "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"], ["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7", "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"], ["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd", "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"], ["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83", "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"], ["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a", "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"], ["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8", "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"], ["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d", "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"], ["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725", "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"], ["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754", "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"], ["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c", "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"], ["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6", "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"], ["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39", "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"], ["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891", "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"], ["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b", "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"], ["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03", "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"], ["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d", "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"], ["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070", "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"], ["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4", "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"], ["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da", "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"], ["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11", "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"], ["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e", "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"], ["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41", "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"], ["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef", "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"], ["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8", "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"], ["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d", "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"], ["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96", "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"], ["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd", "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"], ["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5", "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"], ["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266", "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"], ["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71", "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"], ["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac", "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"], ["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751", "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"], ["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e", "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"], ["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241", "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"], ["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3", "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"], ["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f", "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"], ["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19", "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"], ["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be", "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"], ["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9", "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"], ["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2", "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"], ["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13", "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"], ["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c", "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"], ["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba", "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"], ["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151", "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"], ["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073", "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"], ["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458", "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"], ["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b", "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"], ["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366", "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"], ["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa", "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"], ["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0", "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"], ["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787", "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"], ["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e", "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]] + }, + naf: { + wnd: 7, + points: [["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9", "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"], ["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4", "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"], ["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc", "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"], ["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe", "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"], ["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb", "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"], ["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8", "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"], ["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e", "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"], ["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34", "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"], ["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c", "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"], ["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5", "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"], ["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f", "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"], ["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714", "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"], ["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729", "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"], ["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db", "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"], ["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4", "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"], ["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5", "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"], ["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479", "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"], ["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d", "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"], ["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f", "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"], ["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb", "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"], ["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9", "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"], ["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963", "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"], ["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74", "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"], ["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530", "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"], ["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b", "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"], ["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247", "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"], ["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1", "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"], ["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120", "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"], ["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435", "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"], ["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18", "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"], ["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8", "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"], ["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb", "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"], ["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f", "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"], ["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143", "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"], ["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba", "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"], ["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45", "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"], ["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a", "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"], ["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e", "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"], ["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8", "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"], ["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c", "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"], ["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519", "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"], ["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab", "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"], ["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca", "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"], ["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf", "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"], ["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610", "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"], ["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4", "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"], ["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c", "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"], ["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940", "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"], ["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980", "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"], ["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3", "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"], ["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf", "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"], ["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63", "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"], ["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448", "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"], ["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf", "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"], ["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5", "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"], ["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6", "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"], ["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5", "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"], ["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99", "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"], ["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51", "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"], ["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5", "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"], ["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5", "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"], ["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997", "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"], ["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881", "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"], ["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5", "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"], ["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66", "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"], ["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726", "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"], ["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede", "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"], ["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94", "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"], ["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31", "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"], ["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51", "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"], ["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252", "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"], ["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5", "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"], ["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b", "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"], ["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4", "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"], ["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f", "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"], ["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889", "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"], ["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246", "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"], ["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984", "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"], ["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a", "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"], ["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030", "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"], ["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197", "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"], ["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593", "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"], ["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef", "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"], ["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38", "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"], ["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a", "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"], ["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111", "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"], ["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502", "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"], ["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea", "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"], ["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26", "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"], ["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986", "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"], ["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e", "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"], ["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4", "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"], ["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda", "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"], ["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859", "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"], ["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f", "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"], ["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c", "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"], ["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942", "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"], ["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a", "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"], ["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80", "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"], ["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d", "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"], ["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1", "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"], ["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63", "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"], ["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352", "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"], ["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193", "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"], ["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00", "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"], ["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58", "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"], ["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7", "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"], ["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8", "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"], ["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e", "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"], ["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d", "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"], ["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b", "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"], ["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f", "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"], ["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6", "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"], ["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297", "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"], ["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a", "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"], ["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c", "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"], ["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52", "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"], ["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb", "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"], ["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065", "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"], ["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917", "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"], ["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9", "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"], ["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3", "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"], ["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57", "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"], ["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66", "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"], ["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8", "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"], ["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721", "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"], ["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180", "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]] + } + }; + return exports$H$1; +} +var exports$G$1 = {}; +var _dewExec$G$1 = false; +function dew$G$1() { + if (_dewExec$G$1) + return exports$G$1; + _dewExec$G$1 = true; + var curves = exports$G$1; + var hash = dew$I$1(); + var curve = dew$O$1(); + var utils = dew$T$1(); + var assert = utils.assert; + function PresetCurve(options) { + if (options.type === "short") + this.curve = new curve.short(options); + else if (options.type === "edwards") + this.curve = new curve.edwards(options); + else + this.curve = new curve.mont(options); + this.g = this.curve.g; + this.n = this.curve.n; + this.hash = options.hash; + assert(this.g.validate(), "Invalid curve"); + assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); + } + curves.PresetCurve = PresetCurve; + function defineCurve(name, options) { + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + get: function() { + var curve2 = new PresetCurve(options); + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + value: curve2 + }); + return curve2; + } + }); + } + defineCurve("p192", { + type: "short", + prime: "p192", + p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", + a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", + b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", + n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", + hash: hash.sha256, + gRed: false, + g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"] + }); + defineCurve("p224", { + type: "short", + prime: "p224", + p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", + a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", + b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", + n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", + hash: hash.sha256, + gRed: false, + g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"] + }); + defineCurve("p256", { + type: "short", + prime: null, + p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", + a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", + b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", + n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", + hash: hash.sha256, + gRed: false, + g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"] + }); + defineCurve("p384", { + type: "short", + prime: null, + p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", + a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", + b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", + n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", + hash: hash.sha384, + gRed: false, + g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"] + }); + defineCurve("p521", { + type: "short", + prime: null, + p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", + a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", + b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", + n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", + hash: hash.sha512, + gRed: false, + g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"] + }); + defineCurve("curve25519", { + type: "mont", + prime: "p25519", + p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", + a: "76d06", + b: "1", + n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", + hash: hash.sha256, + gRed: false, + g: ["9"] + }); + defineCurve("ed25519", { + type: "edwards", + prime: "p25519", + p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", + a: "-1", + c: "1", + // -121665 * (121666^(-1)) (mod P) + d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", + n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", + hash: hash.sha256, + gRed: false, + g: [ + "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", + // 4/5 + "6666666666666666666666666666666666666666666666666666666666666658" + ] + }); + var pre; + try { + pre = dew$H$1(); + } catch (e8) { + pre = void 0; + } + defineCurve("secp256k1", { + type: "short", + prime: "k256", + p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", + a: "0", + b: "7", + n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", + h: "1", + hash: hash.sha256, + // Precomputed endomorphism + beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", + lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", + basis: [{ + a: "3086d221a7d46bcde86c90e49284eb15", + b: "-e4437ed6010e88286f547fa90abfe4c3" + }, { + a: "114ca50f7a8e2f3f657c1108d9d44cfd8", + b: "3086d221a7d46bcde86c90e49284eb15" + }], + gRed: false, + g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", pre] + }); + return exports$G$1; +} +var exports$F$1 = {}; +var _dewExec$F$1 = false; +function dew$F$1() { + if (_dewExec$F$1) + return exports$F$1; + _dewExec$F$1 = true; + var hash = dew$I$1(); + var utils = dew$U$1(); + var assert = dew$1t(); + function HmacDRBG(options) { + if (!(this instanceof HmacDRBG)) + return new HmacDRBG(options); + this.hash = options.hash; + this.predResist = !!options.predResist; + this.outLen = this.hash.outSize; + this.minEntropy = options.minEntropy || this.hash.hmacStrength; + this._reseed = null; + this.reseedInterval = null; + this.K = null; + this.V = null; + var entropy = utils.toArray(options.entropy, options.entropyEnc || "hex"); + var nonce = utils.toArray(options.nonce, options.nonceEnc || "hex"); + var pers = utils.toArray(options.pers, options.persEnc || "hex"); + assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"); + this._init(entropy, nonce, pers); + } + exports$F$1 = HmacDRBG; + HmacDRBG.prototype._init = function init(entropy, nonce, pers) { + var seed = entropy.concat(nonce).concat(pers); + this.K = new Array(this.outLen / 8); + this.V = new Array(this.outLen / 8); + for (var i6 = 0; i6 < this.V.length; i6++) { + this.K[i6] = 0; + this.V[i6] = 1; + } + this._update(seed); + this._reseed = 1; + this.reseedInterval = 281474976710656; + }; + HmacDRBG.prototype._hmac = function hmac() { + return new hash.hmac(this.hash, this.K); + }; + HmacDRBG.prototype._update = function update(seed) { + var kmac = this._hmac().update(this.V).update([0]); + if (seed) + kmac = kmac.update(seed); + this.K = kmac.digest(); + this.V = this._hmac().update(this.V).digest(); + if (!seed) + return; + this.K = this._hmac().update(this.V).update([1]).update(seed).digest(); + this.V = this._hmac().update(this.V).digest(); + }; + HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { + if (typeof entropyEnc !== "string") { + addEnc = add; + add = entropyEnc; + entropyEnc = null; + } + entropy = utils.toArray(entropy, entropyEnc); + add = utils.toArray(add, addEnc); + assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"); + this._update(entropy.concat(add || [])); + this._reseed = 1; + }; + HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { + if (this._reseed > this.reseedInterval) + throw new Error("Reseed is required"); + if (typeof enc !== "string") { + addEnc = add; + add = enc; + enc = null; + } + if (add) { + add = utils.toArray(add, addEnc || "hex"); + this._update(add); + } + var temp = []; + while (temp.length < len) { + this.V = this._hmac().update(this.V).digest(); + temp = temp.concat(this.V); + } + var res = temp.slice(0, len); + this._update(add); + this._reseed++; + return utils.encode(res, enc); + }; + return exports$F$1; +} +var exports$E$1 = {}; +var _dewExec$E$1 = false; +function dew$E$1() { + if (_dewExec$E$1) + return exports$E$1; + _dewExec$E$1 = true; + var BN = dew$V$1(); + var utils = dew$T$1(); + var assert = utils.assert; + function KeyPair(ec, options) { + this.ec = ec; + this.priv = null; + this.pub = null; + if (options.priv) + this._importPrivate(options.priv, options.privEnc); + if (options.pub) + this._importPublic(options.pub, options.pubEnc); + } + exports$E$1 = KeyPair; + KeyPair.fromPublic = function fromPublic(ec, pub, enc) { + if (pub instanceof KeyPair) + return pub; + return new KeyPair(ec, { + pub, + pubEnc: enc + }); + }; + KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { + if (priv instanceof KeyPair) + return priv; + return new KeyPair(ec, { + priv, + privEnc: enc + }); + }; + KeyPair.prototype.validate = function validate() { + var pub = this.getPublic(); + if (pub.isInfinity()) + return { + result: false, + reason: "Invalid public key" + }; + if (!pub.validate()) + return { + result: false, + reason: "Public key is not a point" + }; + if (!pub.mul(this.ec.curve.n).isInfinity()) + return { + result: false, + reason: "Public key * N != O" + }; + return { + result: true, + reason: null + }; + }; + KeyPair.prototype.getPublic = function getPublic(compact, enc) { + if (typeof compact === "string") { + enc = compact; + compact = null; + } + if (!this.pub) + this.pub = this.ec.g.mul(this.priv); + if (!enc) + return this.pub; + return this.pub.encode(enc, compact); + }; + KeyPair.prototype.getPrivate = function getPrivate(enc) { + if (enc === "hex") + return this.priv.toString(16, 2); + else + return this.priv; + }; + KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { + this.priv = new BN(key, enc || 16); + this.priv = this.priv.umod(this.ec.curve.n); + }; + KeyPair.prototype._importPublic = function _importPublic(key, enc) { + if (key.x || key.y) { + if (this.ec.curve.type === "mont") { + assert(key.x, "Need x coordinate"); + } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") { + assert(key.x && key.y, "Need both x and y coordinate"); + } + this.pub = this.ec.curve.point(key.x, key.y); + return; + } + this.pub = this.ec.curve.decodePoint(key, enc); + }; + KeyPair.prototype.derive = function derive(pub) { + if (!pub.validate()) { + assert(pub.validate(), "public point not validated"); + } + return pub.mul(this.priv).getX(); + }; + KeyPair.prototype.sign = function sign(msg, enc, options) { + return this.ec.sign(msg, this, enc, options); + }; + KeyPair.prototype.verify = function verify(msg, signature) { + return this.ec.verify(msg, signature, this); + }; + KeyPair.prototype.inspect = function inspect2() { + return ""; + }; + return exports$E$1; +} +var exports$D$1 = {}; +var _dewExec$D$1 = false; +function dew$D$1() { + if (_dewExec$D$1) + return exports$D$1; + _dewExec$D$1 = true; + var BN = dew$V$1(); + var utils = dew$T$1(); + var assert = utils.assert; + function Signature(options, enc) { + if (options instanceof Signature) + return options; + if (this._importDER(options, enc)) + return; + assert(options.r && options.s, "Signature without r or s"); + this.r = new BN(options.r, 16); + this.s = new BN(options.s, 16); + if (options.recoveryParam === void 0) + this.recoveryParam = null; + else + this.recoveryParam = options.recoveryParam; + } + exports$D$1 = Signature; + function Position() { + this.place = 0; + } + function getLength(buf, p6) { + var initial = buf[p6.place++]; + if (!(initial & 128)) { + return initial; + } + var octetLen = initial & 15; + if (octetLen === 0 || octetLen > 4) { + return false; + } + var val = 0; + for (var i6 = 0, off = p6.place; i6 < octetLen; i6++, off++) { + val <<= 8; + val |= buf[off]; + val >>>= 0; + } + if (val <= 127) { + return false; + } + p6.place = off; + return val; + } + function rmPadding(buf) { + var i6 = 0; + var len = buf.length - 1; + while (!buf[i6] && !(buf[i6 + 1] & 128) && i6 < len) { + i6++; + } + if (i6 === 0) { + return buf; + } + return buf.slice(i6); + } + Signature.prototype._importDER = function _importDER(data, enc) { + data = utils.toArray(data, enc); + var p6 = new Position(); + if (data[p6.place++] !== 48) { + return false; + } + var len = getLength(data, p6); + if (len === false) { + return false; + } + if (len + p6.place !== data.length) { + return false; + } + if (data[p6.place++] !== 2) { + return false; + } + var rlen = getLength(data, p6); + if (rlen === false) { + return false; + } + var r6 = data.slice(p6.place, rlen + p6.place); + p6.place += rlen; + if (data[p6.place++] !== 2) { + return false; + } + var slen = getLength(data, p6); + if (slen === false) { + return false; + } + if (data.length !== slen + p6.place) { + return false; + } + var s6 = data.slice(p6.place, slen + p6.place); + if (r6[0] === 0) { + if (r6[1] & 128) { + r6 = r6.slice(1); + } else { + return false; + } + } + if (s6[0] === 0) { + if (s6[1] & 128) { + s6 = s6.slice(1); + } else { + return false; + } + } + this.r = new BN(r6); + this.s = new BN(s6); + this.recoveryParam = null; + return true; + }; + function constructLength(arr, len) { + if (len < 128) { + arr.push(len); + return; + } + var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); + arr.push(octets | 128); + while (--octets) { + arr.push(len >>> (octets << 3) & 255); + } + arr.push(len); + } + Signature.prototype.toDER = function toDER(enc) { + var r6 = this.r.toArray(); + var s6 = this.s.toArray(); + if (r6[0] & 128) + r6 = [0].concat(r6); + if (s6[0] & 128) + s6 = [0].concat(s6); + r6 = rmPadding(r6); + s6 = rmPadding(s6); + while (!s6[0] && !(s6[1] & 128)) { + s6 = s6.slice(1); + } + var arr = [2]; + constructLength(arr, r6.length); + arr = arr.concat(r6); + arr.push(2); + constructLength(arr, s6.length); + var backHalf = arr.concat(s6); + var res = [48]; + constructLength(res, backHalf.length); + res = res.concat(backHalf); + return utils.encode(res, enc); + }; + return exports$D$1; +} +var exports$C$1 = {}; +var _dewExec$C$1 = false; +function dew$C$1() { + if (_dewExec$C$1) + return exports$C$1; + _dewExec$C$1 = true; + var BN = dew$V$1(); + var HmacDRBG = dew$F$1(); + var utils = dew$T$1(); + var curves = dew$G$1(); + var rand = dew$10$1(); + var assert = utils.assert; + var KeyPair = dew$E$1(); + var Signature = dew$D$1(); + function EC(options) { + if (!(this instanceof EC)) + return new EC(options); + if (typeof options === "string") { + assert(Object.prototype.hasOwnProperty.call(curves, options), "Unknown curve " + options); + options = curves[options]; + } + if (options instanceof curves.PresetCurve) + options = { + curve: options + }; + this.curve = options.curve.curve; + this.n = this.curve.n; + this.nh = this.n.ushrn(1); + this.g = this.curve.g; + this.g = options.curve.g; + this.g.precompute(options.curve.n.bitLength() + 1); + this.hash = options.hash || options.curve.hash; + } + exports$C$1 = EC; + EC.prototype.keyPair = function keyPair(options) { + return new KeyPair(this, options); + }; + EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { + return KeyPair.fromPrivate(this, priv, enc); + }; + EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { + return KeyPair.fromPublic(this, pub, enc); + }; + EC.prototype.genKeyPair = function genKeyPair(options) { + if (!options) + options = {}; + var drbg = new HmacDRBG({ + hash: this.hash, + pers: options.pers, + persEnc: options.persEnc || "utf8", + entropy: options.entropy || rand(this.hash.hmacStrength), + entropyEnc: options.entropy && options.entropyEnc || "utf8", + nonce: this.n.toArray() + }); + var bytes = this.n.byteLength(); + var ns2 = this.n.sub(new BN(2)); + for (; ; ) { + var priv = new BN(drbg.generate(bytes)); + if (priv.cmp(ns2) > 0) + continue; + priv.iaddn(1); + return this.keyFromPrivate(priv); + } + }; + EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) { + var delta = msg.byteLength() * 8 - this.n.bitLength(); + if (delta > 0) + msg = msg.ushrn(delta); + if (!truncOnly && msg.cmp(this.n) >= 0) + return msg.sub(this.n); + else + return msg; + }; + EC.prototype.sign = function sign(msg, key, enc, options) { + if (typeof enc === "object") { + options = enc; + enc = null; + } + if (!options) + options = {}; + key = this.keyFromPrivate(key, enc); + msg = this._truncateToN(new BN(msg, 16)); + var bytes = this.n.byteLength(); + var bkey = key.getPrivate().toArray("be", bytes); + var nonce = msg.toArray("be", bytes); + var drbg = new HmacDRBG({ + hash: this.hash, + entropy: bkey, + nonce, + pers: options.pers, + persEnc: options.persEnc || "utf8" + }); + var ns1 = this.n.sub(new BN(1)); + for (var iter = 0; ; iter++) { + var k4 = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())); + k4 = this._truncateToN(k4, true); + if (k4.cmpn(1) <= 0 || k4.cmp(ns1) >= 0) + continue; + var kp = this.g.mul(k4); + if (kp.isInfinity()) + continue; + var kpX = kp.getX(); + var r6 = kpX.umod(this.n); + if (r6.cmpn(0) === 0) + continue; + var s6 = k4.invm(this.n).mul(r6.mul(key.getPrivate()).iadd(msg)); + s6 = s6.umod(this.n); + if (s6.cmpn(0) === 0) + continue; + var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r6) !== 0 ? 2 : 0); + if (options.canonical && s6.cmp(this.nh) > 0) { + s6 = this.n.sub(s6); + recoveryParam ^= 1; + } + return new Signature({ + r: r6, + s: s6, + recoveryParam + }); + } + }; + EC.prototype.verify = function verify(msg, signature, key, enc) { + msg = this._truncateToN(new BN(msg, 16)); + key = this.keyFromPublic(key, enc); + signature = new Signature(signature, "hex"); + var r6 = signature.r; + var s6 = signature.s; + if (r6.cmpn(1) < 0 || r6.cmp(this.n) >= 0) + return false; + if (s6.cmpn(1) < 0 || s6.cmp(this.n) >= 0) + return false; + var sinv = s6.invm(this.n); + var u1 = sinv.mul(msg).umod(this.n); + var u22 = sinv.mul(r6).umod(this.n); + var p6; + if (!this.curve._maxwellTrick) { + p6 = this.g.mulAdd(u1, key.getPublic(), u22); + if (p6.isInfinity()) + return false; + return p6.getX().umod(this.n).cmp(r6) === 0; + } + p6 = this.g.jmulAdd(u1, key.getPublic(), u22); + if (p6.isInfinity()) + return false; + return p6.eqXToP(r6); + }; + EC.prototype.recoverPubKey = function(msg, signature, j4, enc) { + assert((3 & j4) === j4, "The recovery param is more than two bits"); + signature = new Signature(signature, enc); + var n6 = this.n; + var e8 = new BN(msg); + var r6 = signature.r; + var s6 = signature.s; + var isYOdd = j4 & 1; + var isSecondKey = j4 >> 1; + if (r6.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) + throw new Error("Unable to find sencond key candinate"); + if (isSecondKey) + r6 = this.curve.pointFromX(r6.add(this.curve.n), isYOdd); + else + r6 = this.curve.pointFromX(r6, isYOdd); + var rInv = signature.r.invm(n6); + var s1 = n6.sub(e8).mul(rInv).umod(n6); + var s22 = s6.mul(rInv).umod(n6); + return this.g.mulAdd(s1, r6, s22); + }; + EC.prototype.getKeyRecoveryParam = function(e8, signature, Q3, enc) { + signature = new Signature(signature, enc); + if (signature.recoveryParam !== null) + return signature.recoveryParam; + for (var i6 = 0; i6 < 4; i6++) { + var Qprime; + try { + Qprime = this.recoverPubKey(e8, signature, i6); + } catch (e9) { + continue; + } + if (Qprime.eq(Q3)) + return i6; + } + throw new Error("Unable to find valid recovery factor"); + }; + return exports$C$1; +} +var exports$B$1 = {}; +var _dewExec$B$1 = false; +function dew$B$1() { + if (_dewExec$B$1) + return exports$B$1; + _dewExec$B$1 = true; + var utils = dew$T$1(); + var assert = utils.assert; + var parseBytes = utils.parseBytes; + var cachedProperty = utils.cachedProperty; + function KeyPair(eddsa, params) { + this.eddsa = eddsa; + this._secret = parseBytes(params.secret); + if (eddsa.isPoint(params.pub)) + this._pub = params.pub; + else + this._pubBytes = parseBytes(params.pub); + } + KeyPair.fromPublic = function fromPublic(eddsa, pub) { + if (pub instanceof KeyPair) + return pub; + return new KeyPair(eddsa, { + pub + }); + }; + KeyPair.fromSecret = function fromSecret(eddsa, secret) { + if (secret instanceof KeyPair) + return secret; + return new KeyPair(eddsa, { + secret + }); + }; + KeyPair.prototype.secret = function secret() { + return this._secret; + }; + cachedProperty(KeyPair, "pubBytes", function pubBytes() { + return this.eddsa.encodePoint(this.pub()); + }); + cachedProperty(KeyPair, "pub", function pub() { + if (this._pubBytes) + return this.eddsa.decodePoint(this._pubBytes); + return this.eddsa.g.mul(this.priv()); + }); + cachedProperty(KeyPair, "privBytes", function privBytes() { + var eddsa = this.eddsa; + var hash = this.hash(); + var lastIx = eddsa.encodingLength - 1; + var a6 = hash.slice(0, eddsa.encodingLength); + a6[0] &= 248; + a6[lastIx] &= 127; + a6[lastIx] |= 64; + return a6; + }); + cachedProperty(KeyPair, "priv", function priv() { + return this.eddsa.decodeInt(this.privBytes()); + }); + cachedProperty(KeyPair, "hash", function hash() { + return this.eddsa.hash().update(this.secret()).digest(); + }); + cachedProperty(KeyPair, "messagePrefix", function messagePrefix() { + return this.hash().slice(this.eddsa.encodingLength); + }); + KeyPair.prototype.sign = function sign(message) { + assert(this._secret, "KeyPair can only verify"); + return this.eddsa.sign(message, this); + }; + KeyPair.prototype.verify = function verify(message, sig) { + return this.eddsa.verify(message, sig, this); + }; + KeyPair.prototype.getSecret = function getSecret(enc) { + assert(this._secret, "KeyPair is public only"); + return utils.encode(this.secret(), enc); + }; + KeyPair.prototype.getPublic = function getPublic(enc) { + return utils.encode(this.pubBytes(), enc); + }; + exports$B$1 = KeyPair; + return exports$B$1; +} +var exports$A$1 = {}; +var _dewExec$A$1 = false; +function dew$A$1() { + if (_dewExec$A$1) + return exports$A$1; + _dewExec$A$1 = true; + var BN = dew$V$1(); + var utils = dew$T$1(); + var assert = utils.assert; + var cachedProperty = utils.cachedProperty; + var parseBytes = utils.parseBytes; + function Signature(eddsa, sig) { + this.eddsa = eddsa; + if (typeof sig !== "object") + sig = parseBytes(sig); + if (Array.isArray(sig)) { + sig = { + R: sig.slice(0, eddsa.encodingLength), + S: sig.slice(eddsa.encodingLength) + }; + } + assert(sig.R && sig.S, "Signature without R or S"); + if (eddsa.isPoint(sig.R)) + this._R = sig.R; + if (sig.S instanceof BN) + this._S = sig.S; + this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; + this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; + } + cachedProperty(Signature, "S", function S4() { + return this.eddsa.decodeInt(this.Sencoded()); + }); + cachedProperty(Signature, "R", function R4() { + return this.eddsa.decodePoint(this.Rencoded()); + }); + cachedProperty(Signature, "Rencoded", function Rencoded() { + return this.eddsa.encodePoint(this.R()); + }); + cachedProperty(Signature, "Sencoded", function Sencoded() { + return this.eddsa.encodeInt(this.S()); + }); + Signature.prototype.toBytes = function toBytes() { + return this.Rencoded().concat(this.Sencoded()); + }; + Signature.prototype.toHex = function toHex() { + return utils.encode(this.toBytes(), "hex").toUpperCase(); + }; + exports$A$1 = Signature; + return exports$A$1; +} +var exports$z$1 = {}; +var _dewExec$z$1 = false; +function dew$z$1() { + if (_dewExec$z$1) + return exports$z$1; + _dewExec$z$1 = true; + var hash = dew$I$1(); + var curves = dew$G$1(); + var utils = dew$T$1(); + var assert = utils.assert; + var parseBytes = utils.parseBytes; + var KeyPair = dew$B$1(); + var Signature = dew$A$1(); + function EDDSA(curve) { + assert(curve === "ed25519", "only tested with ed25519 so far"); + if (!(this instanceof EDDSA)) + return new EDDSA(curve); + curve = curves[curve].curve; + this.curve = curve; + this.g = curve.g; + this.g.precompute(curve.n.bitLength() + 1); + this.pointClass = curve.point().constructor; + this.encodingLength = Math.ceil(curve.n.bitLength() / 8); + this.hash = hash.sha512; + } + exports$z$1 = EDDSA; + EDDSA.prototype.sign = function sign(message, secret) { + message = parseBytes(message); + var key = this.keyFromSecret(secret); + var r6 = this.hashInt(key.messagePrefix(), message); + var R4 = this.g.mul(r6); + var Rencoded = this.encodePoint(R4); + var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv()); + var S4 = r6.add(s_).umod(this.curve.n); + return this.makeSignature({ + R: R4, + S: S4, + Rencoded + }); + }; + EDDSA.prototype.verify = function verify(message, sig, pub) { + message = parseBytes(message); + sig = this.makeSignature(sig); + var key = this.keyFromPublic(pub); + var h6 = this.hashInt(sig.Rencoded(), key.pubBytes(), message); + var SG = this.g.mul(sig.S()); + var RplusAh = sig.R().add(key.pub().mul(h6)); + return RplusAh.eq(SG); + }; + EDDSA.prototype.hashInt = function hashInt() { + var hash2 = this.hash(); + for (var i6 = 0; i6 < arguments.length; i6++) + hash2.update(arguments[i6]); + return utils.intFromLE(hash2.digest()).umod(this.curve.n); + }; + EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { + return KeyPair.fromPublic(this, pub); + }; + EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { + return KeyPair.fromSecret(this, secret); + }; + EDDSA.prototype.makeSignature = function makeSignature(sig) { + if (sig instanceof Signature) + return sig; + return new Signature(this, sig); + }; + EDDSA.prototype.encodePoint = function encodePoint(point) { + var enc = point.getY().toArray("le", this.encodingLength); + enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0; + return enc; + }; + EDDSA.prototype.decodePoint = function decodePoint(bytes) { + bytes = utils.parseBytes(bytes); + var lastIx = bytes.length - 1; + var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128); + var xIsOdd = (bytes[lastIx] & 128) !== 0; + var y5 = utils.intFromLE(normed); + return this.curve.pointFromY(y5, xIsOdd); + }; + EDDSA.prototype.encodeInt = function encodeInt(num) { + return num.toArray("le", this.encodingLength); + }; + EDDSA.prototype.decodeInt = function decodeInt(bytes) { + return utils.intFromLE(bytes); + }; + EDDSA.prototype.isPoint = function isPoint(val) { + return val instanceof this.pointClass; + }; + return exports$z$1; +} +var exports$y$1 = {}; +var _dewExec$y$1 = false; +function dew$y$1() { + if (_dewExec$y$1) + return exports$y$1; + _dewExec$y$1 = true; + var elliptic = exports$y$1; + elliptic.version = _package$1.version; + elliptic.utils = dew$T$1(); + elliptic.rand = dew$10$1(); + elliptic.curve = dew$O$1(); + elliptic.curves = dew$G$1(); + elliptic.ec = dew$C$1(); + elliptic.eddsa = dew$z$1(); + return exports$y$1; +} +var exports$x$1 = {}; +var _dewExec$x$1 = false; +var module$2$1 = { + exports: exports$x$1 +}; +var _global$5$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$x$1() { + if (_dewExec$x$1) + return module$2$1.exports; + _dewExec$x$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$5$1).negative = 0; + (this || _global$5$1).words = null; + (this || _global$5$1).length = 0; + (this || _global$5$1).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$5$1).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$5$1).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$5$1).words = [number & 67108863]; + (this || _global$5$1).length = 1; + } else if (number < 4503599627370496) { + (this || _global$5$1).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$5$1).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$5$1).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$5$1).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$5$1).words = [0]; + (this || _global$5$1).length = 1; + return this || _global$5$1; + } + (this || _global$5$1).length = Math.ceil(number.length / 3); + (this || _global$5$1).words = new Array((this || _global$5$1).length); + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + (this || _global$5$1).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$5$1).words[j4] |= w4 << off & 67108863; + (this || _global$5$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$5$1).words[j4] |= w4 << off & 67108863; + (this || _global$5$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$5$1).length = Math.ceil((number.length - start) / 6); + (this || _global$5$1).words = new Array((this || _global$5$1).length); + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + (this || _global$5$1).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$5$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$5$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$5$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$5$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$5$1).words = [0]; + (this || _global$5$1).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$5$1).words[0] + word < 67108864) { + (this || _global$5$1).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$5$1).words[0] + word < 67108864) { + (this || _global$5$1).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$5$1).length); + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + dest.words[i6] = (this || _global$5$1).words[i6]; + } + dest.length = (this || _global$5$1).length; + dest.negative = (this || _global$5$1).negative; + dest.red = (this || _global$5$1).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$5$1).length < size) { + (this || _global$5$1).words[(this || _global$5$1).length++] = 0; + } + return this || _global$5$1; + }; + BN.prototype.strip = function strip() { + while ((this || _global$5$1).length > 1 && (this || _global$5$1).words[(this || _global$5$1).length - 1] === 0) { + (this || _global$5$1).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$5$1).length === 1 && (this || _global$5$1).words[0] === 0) { + (this || _global$5$1).negative = 0; + } + return this || _global$5$1; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$5$1).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + var w4 = (this || _global$5$1).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$5$1).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$5$1).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$5$1).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$5$1).words[0]; + if ((this || _global$5$1).length === 2) { + ret += (this || _global$5$1).words[1] * 67108864; + } else if ((this || _global$5$1).length === 3 && (this || _global$5$1).words[2] === 1) { + ret += 4503599627370496 + (this || _global$5$1).words[1] * 67108864; + } else if ((this || _global$5$1).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$5$1).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$5$1).words[(this || _global$5$1).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$5$1).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + var b4 = this._zeroBits((this || _global$5$1).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$5$1).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$5$1).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$5$1).negative ^= 1; + } + return this || _global$5$1; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$5$1).length < num.length) { + (this || _global$5$1).words[(this || _global$5$1).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$5$1).words[i6] = (this || _global$5$1).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$5$1).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$5$1); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$5$1); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$5$1).length > num.length) { + b4 = num; + } else { + b4 = this || _global$5$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$5$1).words[i6] = (this || _global$5$1).words[i6] & num.words[i6]; + } + (this || _global$5$1).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$5$1).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$5$1); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$5$1); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$5$1).length > num.length) { + a6 = this || _global$5$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$5$1).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$5$1) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$5$1).words[i6] = a6.words[i6]; + } + } + (this || _global$5$1).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$5$1).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$5$1); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$5$1).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$5$1); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$5$1).words[i6] = ~(this || _global$5$1).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$5$1).words[i6] = ~(this || _global$5$1).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$5$1).words[off] = (this || _global$5$1).words[off] | 1 << wbit; + } else { + (this || _global$5$1).words[off] = (this || _global$5$1).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$5$1).negative !== 0 && num.negative === 0) { + (this || _global$5$1).negative = 0; + r6 = this.isub(num); + (this || _global$5$1).negative ^= 1; + return this._normSign(); + } else if ((this || _global$5$1).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$5$1).length > num.length) { + a6 = this || _global$5$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$5$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$5$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$5$1).length = a6.length; + if (carry !== 0) { + (this || _global$5$1).words[(this || _global$5$1).length] = carry; + (this || _global$5$1).length++; + } else if (a6 !== (this || _global$5$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$5$1).words[i6] = a6.words[i6]; + } + } + return this || _global$5$1; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$5$1).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$5$1).negative !== 0) { + (this || _global$5$1).negative = 0; + res = num.sub(this || _global$5$1); + (this || _global$5$1).negative = 1; + return res; + } + if ((this || _global$5$1).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$5$1); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$5$1).negative !== 0) { + (this || _global$5$1).negative = 0; + this.iadd(num); + (this || _global$5$1).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$5$1).negative = 0; + (this || _global$5$1).length = 1; + (this || _global$5$1).words[0] = 0; + return this || _global$5$1; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$5$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$5$1).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$5$1).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$5$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$5$1).words[i6] = a6.words[i6]; + } + } + (this || _global$5$1).length = Math.max((this || _global$5$1).length, i6); + if (a6 !== (this || _global$5$1)) { + (this || _global$5$1).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$5$1).length + num.length; + if ((this || _global$5$1).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$5$1, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$5$1, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$5$1, num, out); + } else { + res = jumboMulTo(this || _global$5$1, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$5$1).x = x4; + (this || _global$5$1).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$5$1).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$5$1).length + num.length); + return jumboMulTo(this || _global$5$1, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$5$1); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$5$1).length; i6++) { + var w4 = ((this || _global$5$1).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$5$1).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$5$1).words[i6] = carry; + (this || _global$5$1).length++; + } + return this || _global$5$1; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$5$1); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$5$1; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$5$1).length; i6++) { + var newCarry = (this || _global$5$1).words[i6] & carryMask; + var c6 = ((this || _global$5$1).words[i6] | 0) - newCarry << r6; + (this || _global$5$1).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$5$1).words[i6] = carry; + (this || _global$5$1).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$5$1).length - 1; i6 >= 0; i6--) { + (this || _global$5$1).words[i6 + s6] = (this || _global$5$1).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$5$1).words[i6] = 0; + } + (this || _global$5$1).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$5$1).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$5$1).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$5$1).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$5$1).length > s6) { + (this || _global$5$1).length -= s6; + for (i6 = 0; i6 < (this || _global$5$1).length; i6++) { + (this || _global$5$1).words[i6] = (this || _global$5$1).words[i6 + s6]; + } + } else { + (this || _global$5$1).words[0] = 0; + (this || _global$5$1).length = 1; + } + var carry = 0; + for (i6 = (this || _global$5$1).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$5$1).words[i6] | 0; + (this || _global$5$1).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$5$1).length === 0) { + (this || _global$5$1).words[0] = 0; + (this || _global$5$1).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$5$1).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$5$1).length <= s6) + return false; + var w4 = (this || _global$5$1).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$5$1).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$5$1).length <= s6) { + return this || _global$5$1; + } + if (r6 !== 0) { + s6++; + } + (this || _global$5$1).length = Math.min(s6, (this || _global$5$1).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$5$1).words[(this || _global$5$1).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$5$1).negative !== 0) { + if ((this || _global$5$1).length === 1 && ((this || _global$5$1).words[0] | 0) < num) { + (this || _global$5$1).words[0] = num - ((this || _global$5$1).words[0] | 0); + (this || _global$5$1).negative = 0; + return this || _global$5$1; + } + (this || _global$5$1).negative = 0; + this.isubn(num); + (this || _global$5$1).negative = 1; + return this || _global$5$1; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$5$1).words[0] += num; + for (var i6 = 0; i6 < (this || _global$5$1).length && (this || _global$5$1).words[i6] >= 67108864; i6++) { + (this || _global$5$1).words[i6] -= 67108864; + if (i6 === (this || _global$5$1).length - 1) { + (this || _global$5$1).words[i6 + 1] = 1; + } else { + (this || _global$5$1).words[i6 + 1]++; + } + } + (this || _global$5$1).length = Math.max((this || _global$5$1).length, i6 + 1); + return this || _global$5$1; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$5$1).negative !== 0) { + (this || _global$5$1).negative = 0; + this.iaddn(num); + (this || _global$5$1).negative = 1; + return this || _global$5$1; + } + (this || _global$5$1).words[0] -= num; + if ((this || _global$5$1).length === 1 && (this || _global$5$1).words[0] < 0) { + (this || _global$5$1).words[0] = -(this || _global$5$1).words[0]; + (this || _global$5$1).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$5$1).length && (this || _global$5$1).words[i6] < 0; i6++) { + (this || _global$5$1).words[i6] += 67108864; + (this || _global$5$1).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$5$1).negative = 0; + return this || _global$5$1; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$5$1).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$5$1).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$5$1).length - shift; i6++) { + w4 = ((this || _global$5$1).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$5$1).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$5$1).length; i6++) { + w4 = -((this || _global$5$1).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$5$1).words[i6] = w4 & 67108863; + } + (this || _global$5$1).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$5$1).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$5$1).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$5$1).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$5$1).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$5$1).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$5$1 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$5$1).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$5$1).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$5$1).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$5$1).words[i6] | 0) + carry * 67108864; + (this || _global$5$1).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$5$1; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$5$1; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$5$1).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$5$1).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$5$1).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$5$1).length <= s6) { + this._expand(s6 + 1); + (this || _global$5$1).words[s6] |= q3; + return this || _global$5$1; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$5$1).length; i6++) { + var w4 = (this || _global$5$1).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$5$1).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$5$1).words[i6] = carry; + (this || _global$5$1).length++; + } + return this || _global$5$1; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$5$1).length === 1 && (this || _global$5$1).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$5$1).negative !== 0 && !negative) + return -1; + if ((this || _global$5$1).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$5$1).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$5$1).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$5$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$5$1).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$5$1).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$5$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$5$1).length > num.length) + return 1; + if ((this || _global$5$1).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$5$1).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$5$1).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$5$1).red, "Already a number in reduction context"); + assert((this || _global$5$1).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$5$1)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$5$1).red, "fromRed works only with numbers in reduction context"); + return (this || _global$5$1).red.convertFrom(this || _global$5$1); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$5$1).red = ctx; + return this || _global$5$1; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$5$1).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$5$1).red, "redAdd works only with red numbers"); + return (this || _global$5$1).red.add(this || _global$5$1, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$5$1).red, "redIAdd works only with red numbers"); + return (this || _global$5$1).red.iadd(this || _global$5$1, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$5$1).red, "redSub works only with red numbers"); + return (this || _global$5$1).red.sub(this || _global$5$1, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$5$1).red, "redISub works only with red numbers"); + return (this || _global$5$1).red.isub(this || _global$5$1, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$5$1).red, "redShl works only with red numbers"); + return (this || _global$5$1).red.shl(this || _global$5$1, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$5$1).red, "redMul works only with red numbers"); + (this || _global$5$1).red._verify2(this || _global$5$1, num); + return (this || _global$5$1).red.mul(this || _global$5$1, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$5$1).red, "redMul works only with red numbers"); + (this || _global$5$1).red._verify2(this || _global$5$1, num); + return (this || _global$5$1).red.imul(this || _global$5$1, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$5$1).red, "redSqr works only with red numbers"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.sqr(this || _global$5$1); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$5$1).red, "redISqr works only with red numbers"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.isqr(this || _global$5$1); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$5$1).red, "redSqrt works only with red numbers"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.sqrt(this || _global$5$1); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$5$1).red, "redInvm works only with red numbers"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.invm(this || _global$5$1); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$5$1).red, "redNeg works only with red numbers"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.neg(this || _global$5$1); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$5$1).red && !num.red, "redPow(normalNum)"); + (this || _global$5$1).red._verify1(this || _global$5$1); + return (this || _global$5$1).red.pow(this || _global$5$1, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$5$1).name = name; + (this || _global$5$1).p = new BN(p6, 16); + (this || _global$5$1).n = (this || _global$5$1).p.bitLength(); + (this || _global$5$1).k = new BN(1).iushln((this || _global$5$1).n).isub((this || _global$5$1).p); + (this || _global$5$1).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$5$1).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$5$1).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$5$1).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$5$1).n); + var cmp = rlen < (this || _global$5$1).n ? -1 : r6.ucmp((this || _global$5$1).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$5$1).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$5$1).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$5$1).k); + }; + function K256() { + MPrime.call(this || _global$5$1, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$5$1, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$5$1, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$5$1, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$5$1).m = prime.p; + (this || _global$5$1).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$5$1).m = m5; + (this || _global$5$1).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$5$1).prime) + return (this || _global$5$1).prime.ireduce(a6)._forceRed(this || _global$5$1); + return a6.umod((this || _global$5$1).m)._forceRed(this || _global$5$1); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$5$1).m.sub(a6)._forceRed(this || _global$5$1); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$5$1).m) >= 0) { + res.isub((this || _global$5$1).m); + } + return res._forceRed(this || _global$5$1); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$5$1).m) >= 0) { + res.isub((this || _global$5$1).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$5$1).m); + } + return res._forceRed(this || _global$5$1); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$5$1).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$5$1).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$5$1).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$5$1).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$5$1); + var nOne = one.redNeg(); + var lpow = (this || _global$5$1).m.subn(1).iushrn(1); + var z4 = (this || _global$5$1).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$5$1); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$5$1).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$5$1); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$5$1); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$5$1).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$5$1, m5); + (this || _global$5$1).shift = (this || _global$5$1).m.bitLength(); + if ((this || _global$5$1).shift % 26 !== 0) { + (this || _global$5$1).shift += 26 - (this || _global$5$1).shift % 26; + } + (this || _global$5$1).r = new BN(1).iushln((this || _global$5$1).shift); + (this || _global$5$1).r2 = this.imod((this || _global$5$1).r.sqr()); + (this || _global$5$1).rinv = (this || _global$5$1).r._invmp((this || _global$5$1).m); + (this || _global$5$1).minv = (this || _global$5$1).rinv.mul((this || _global$5$1).r).isubn(1).div((this || _global$5$1).m); + (this || _global$5$1).minv = (this || _global$5$1).minv.umod((this || _global$5$1).r); + (this || _global$5$1).minv = (this || _global$5$1).r.sub((this || _global$5$1).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$5$1).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$5$1).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$5$1).shift).mul((this || _global$5$1).minv).imaskn((this || _global$5$1).shift).mul((this || _global$5$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$5$1).shift); + var res = u6; + if (u6.cmp((this || _global$5$1).m) >= 0) { + res = u6.isub((this || _global$5$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$5$1).m); + } + return res._forceRed(this || _global$5$1); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$5$1); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$5$1).shift).mul((this || _global$5$1).minv).imaskn((this || _global$5$1).shift).mul((this || _global$5$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$5$1).shift); + var res = u6; + if (u6.cmp((this || _global$5$1).m) >= 0) { + res = u6.isub((this || _global$5$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$5$1).m); + } + return res._forceRed(this || _global$5$1); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$5$1).m).mul((this || _global$5$1).r2)); + return res._forceRed(this || _global$5$1); + }; + })(module$2$1, exports$x$1); + return module$2$1.exports; +} +var exports$w$1 = {}; +var _dewExec$w$1 = false; +function dew$w$1() { + if (_dewExec$w$1) + return exports$w$1; + _dewExec$w$1 = true; + var process2 = T; + var buffer2 = e$1$1; + var Buffer2 = buffer2.Buffer; + var safer = {}; + var key; + for (key in buffer2) { + if (!buffer2.hasOwnProperty(key)) + continue; + if (key === "SlowBuffer" || key === "Buffer") + continue; + safer[key] = buffer2[key]; + } + var Safer = safer.Buffer = {}; + for (key in Buffer2) { + if (!Buffer2.hasOwnProperty(key)) + continue; + if (key === "allocUnsafe" || key === "allocUnsafeSlow") + continue; + Safer[key] = Buffer2[key]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process2.binding("buffer").kStringMaxLength; + } catch (e8) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + exports$w$1 = safer; + return exports$w$1; +} +var exports$v$1 = {}; +var _dewExec$v$1 = false; +function dew$v$1() { + if (_dewExec$v$1) + return exports$v$1; + _dewExec$v$1 = true; + const inherits2 = dew$f$2(); + function Reporter(options) { + this._reporterState = { + obj: null, + path: [], + options: options || {}, + errors: [] + }; + } + exports$v$1.Reporter = Reporter; + Reporter.prototype.isError = function isError2(obj) { + return obj instanceof ReporterError; + }; + Reporter.prototype.save = function save() { + const state = this._reporterState; + return { + obj: state.obj, + pathLen: state.path.length + }; + }; + Reporter.prototype.restore = function restore(data) { + const state = this._reporterState; + state.obj = data.obj; + state.path = state.path.slice(0, data.pathLen); + }; + Reporter.prototype.enterKey = function enterKey(key) { + return this._reporterState.path.push(key); + }; + Reporter.prototype.exitKey = function exitKey(index) { + const state = this._reporterState; + state.path = state.path.slice(0, index - 1); + }; + Reporter.prototype.leaveKey = function leaveKey(index, key, value) { + const state = this._reporterState; + this.exitKey(index); + if (state.obj !== null) + state.obj[key] = value; + }; + Reporter.prototype.path = function path() { + return this._reporterState.path.join("/"); + }; + Reporter.prototype.enterObject = function enterObject() { + const state = this._reporterState; + const prev = state.obj; + state.obj = {}; + return prev; + }; + Reporter.prototype.leaveObject = function leaveObject(prev) { + const state = this._reporterState; + const now = state.obj; + state.obj = prev; + return now; + }; + Reporter.prototype.error = function error(msg) { + let err; + const state = this._reporterState; + const inherited = msg instanceof ReporterError; + if (inherited) { + err = msg; + } else { + err = new ReporterError(state.path.map(function(elem) { + return "[" + JSON.stringify(elem) + "]"; + }).join(""), msg.message || msg, msg.stack); + } + if (!state.options.partial) + throw err; + if (!inherited) + state.errors.push(err); + return err; + }; + Reporter.prototype.wrapResult = function wrapResult(result) { + const state = this._reporterState; + if (!state.options.partial) + return result; + return { + result: this.isError(result) ? null : result, + errors: state.errors + }; + }; + function ReporterError(path, msg) { + this.path = path; + this.rethrow(msg); + } + inherits2(ReporterError, Error); + ReporterError.prototype.rethrow = function rethrow(msg) { + this.message = msg + " at: " + (this.path || "(shallow)"); + if (Error.captureStackTrace) + Error.captureStackTrace(this, ReporterError); + if (!this.stack) { + try { + throw new Error(this.message); + } catch (e8) { + this.stack = e8.stack; + } + } + return this; + }; + return exports$v$1; +} +var exports$u$1 = {}; +var _dewExec$u$1 = false; +function dew$u$1() { + if (_dewExec$u$1) + return exports$u$1; + _dewExec$u$1 = true; + const inherits2 = dew$f$2(); + const Reporter = dew$v$1().Reporter; + const Buffer2 = dew$w$1().Buffer; + function DecoderBuffer(base, options) { + Reporter.call(this, options); + if (!Buffer2.isBuffer(base)) { + this.error("Input not Buffer"); + return; + } + this.base = base; + this.offset = 0; + this.length = base.length; + } + inherits2(DecoderBuffer, Reporter); + exports$u$1.DecoderBuffer = DecoderBuffer; + DecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) { + if (data instanceof DecoderBuffer) { + return true; + } + const isCompatible = typeof data === "object" && Buffer2.isBuffer(data.base) && data.constructor.name === "DecoderBuffer" && typeof data.offset === "number" && typeof data.length === "number" && typeof data.save === "function" && typeof data.restore === "function" && typeof data.isEmpty === "function" && typeof data.readUInt8 === "function" && typeof data.skip === "function" && typeof data.raw === "function"; + return isCompatible; + }; + DecoderBuffer.prototype.save = function save() { + return { + offset: this.offset, + reporter: Reporter.prototype.save.call(this) + }; + }; + DecoderBuffer.prototype.restore = function restore(save) { + const res = new DecoderBuffer(this.base); + res.offset = save.offset; + res.length = this.offset; + this.offset = save.offset; + Reporter.prototype.restore.call(this, save.reporter); + return res; + }; + DecoderBuffer.prototype.isEmpty = function isEmpty() { + return this.offset === this.length; + }; + DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { + if (this.offset + 1 <= this.length) + return this.base.readUInt8(this.offset++, true); + else + return this.error(fail || "DecoderBuffer overrun"); + }; + DecoderBuffer.prototype.skip = function skip(bytes, fail) { + if (!(this.offset + bytes <= this.length)) + return this.error(fail || "DecoderBuffer overrun"); + const res = new DecoderBuffer(this.base); + res._reporterState = this._reporterState; + res.offset = this.offset; + res.length = this.offset + bytes; + this.offset += bytes; + return res; + }; + DecoderBuffer.prototype.raw = function raw(save) { + return this.base.slice(save ? save.offset : this.offset, this.length); + }; + function EncoderBuffer(value, reporter) { + if (Array.isArray(value)) { + this.length = 0; + this.value = value.map(function(item) { + if (!EncoderBuffer.isEncoderBuffer(item)) + item = new EncoderBuffer(item, reporter); + this.length += item.length; + return item; + }, this); + } else if (typeof value === "number") { + if (!(0 <= value && value <= 255)) + return reporter.error("non-byte EncoderBuffer value"); + this.value = value; + this.length = 1; + } else if (typeof value === "string") { + this.value = value; + this.length = Buffer2.byteLength(value); + } else if (Buffer2.isBuffer(value)) { + this.value = value; + this.length = value.length; + } else { + return reporter.error("Unsupported type: " + typeof value); + } + } + exports$u$1.EncoderBuffer = EncoderBuffer; + EncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) { + if (data instanceof EncoderBuffer) { + return true; + } + const isCompatible = typeof data === "object" && data.constructor.name === "EncoderBuffer" && typeof data.length === "number" && typeof data.join === "function"; + return isCompatible; + }; + EncoderBuffer.prototype.join = function join(out, offset) { + if (!out) + out = Buffer2.alloc(this.length); + if (!offset) + offset = 0; + if (this.length === 0) + return out; + if (Array.isArray(this.value)) { + this.value.forEach(function(item) { + item.join(out, offset); + offset += item.length; + }); + } else { + if (typeof this.value === "number") + out[offset] = this.value; + else if (typeof this.value === "string") + out.write(this.value, offset); + else if (Buffer2.isBuffer(this.value)) + this.value.copy(out, offset); + offset += this.length; + } + return out; + }; + return exports$u$1; +} +var exports$t$1 = {}; +var _dewExec$t$1 = false; +function dew$t$1() { + if (_dewExec$t$1) + return exports$t$1; + _dewExec$t$1 = true; + const Reporter = dew$v$1().Reporter; + const EncoderBuffer = dew$u$1().EncoderBuffer; + const DecoderBuffer = dew$u$1().DecoderBuffer; + const assert = dew$1t(); + const tags = ["seq", "seqof", "set", "setof", "objid", "bool", "gentime", "utctime", "null_", "enum", "int", "objDesc", "bitstr", "bmpstr", "charstr", "genstr", "graphstr", "ia5str", "iso646str", "numstr", "octstr", "printstr", "t61str", "unistr", "utf8str", "videostr"]; + const methods = ["key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains"].concat(tags); + const overrided = ["_peekTag", "_decodeTag", "_use", "_decodeStr", "_decodeObjid", "_decodeTime", "_decodeNull", "_decodeInt", "_decodeBool", "_decodeList", "_encodeComposite", "_encodeStr", "_encodeObjid", "_encodeTime", "_encodeNull", "_encodeInt", "_encodeBool"]; + function Node(enc, parent, name) { + const state = {}; + this._baseState = state; + state.name = name; + state.enc = enc; + state.parent = parent || null; + state.children = null; + state.tag = null; + state.args = null; + state.reverseArgs = null; + state.choice = null; + state.optional = false; + state.any = false; + state.obj = false; + state.use = null; + state.useDecoder = null; + state.key = null; + state["default"] = null; + state.explicit = null; + state.implicit = null; + state.contains = null; + if (!state.parent) { + state.children = []; + this._wrap(); + } + } + exports$t$1 = Node; + const stateProps = ["enc", "parent", "children", "tag", "args", "reverseArgs", "choice", "optional", "any", "obj", "use", "alteredUse", "key", "default", "explicit", "implicit", "contains"]; + Node.prototype.clone = function clone() { + const state = this._baseState; + const cstate = {}; + stateProps.forEach(function(prop) { + cstate[prop] = state[prop]; + }); + const res = new this.constructor(cstate.parent); + res._baseState = cstate; + return res; + }; + Node.prototype._wrap = function wrap() { + const state = this._baseState; + methods.forEach(function(method) { + this[method] = function _wrappedMethod() { + const clone = new this.constructor(this); + state.children.push(clone); + return clone[method].apply(clone, arguments); + }; + }, this); + }; + Node.prototype._init = function init(body) { + const state = this._baseState; + assert(state.parent === null); + body.call(this); + state.children = state.children.filter(function(child) { + return child._baseState.parent === this; + }, this); + assert.equal(state.children.length, 1, "Root node can have only one child"); + }; + Node.prototype._useArgs = function useArgs(args) { + const state = this._baseState; + const children = args.filter(function(arg) { + return arg instanceof this.constructor; + }, this); + args = args.filter(function(arg) { + return !(arg instanceof this.constructor); + }, this); + if (children.length !== 0) { + assert(state.children === null); + state.children = children; + children.forEach(function(child) { + child._baseState.parent = this; + }, this); + } + if (args.length !== 0) { + assert(state.args === null); + state.args = args; + state.reverseArgs = args.map(function(arg) { + if (typeof arg !== "object" || arg.constructor !== Object) + return arg; + const res = {}; + Object.keys(arg).forEach(function(key) { + if (key == (key | 0)) + key |= 0; + const value = arg[key]; + res[value] = key; + }); + return res; + }); + } + }; + overrided.forEach(function(method) { + Node.prototype[method] = function _overrided() { + const state = this._baseState; + throw new Error(method + " not implemented for encoding: " + state.enc); + }; + }); + tags.forEach(function(tag) { + Node.prototype[tag] = function _tagMethod() { + const state = this._baseState; + const args = Array.prototype.slice.call(arguments); + assert(state.tag === null); + state.tag = tag; + this._useArgs(args); + return this; + }; + }); + Node.prototype.use = function use(item) { + assert(item); + const state = this._baseState; + assert(state.use === null); + state.use = item; + return this; + }; + Node.prototype.optional = function optional() { + const state = this._baseState; + state.optional = true; + return this; + }; + Node.prototype.def = function def(val) { + const state = this._baseState; + assert(state["default"] === null); + state["default"] = val; + state.optional = true; + return this; + }; + Node.prototype.explicit = function explicit(num) { + const state = this._baseState; + assert(state.explicit === null && state.implicit === null); + state.explicit = num; + return this; + }; + Node.prototype.implicit = function implicit(num) { + const state = this._baseState; + assert(state.explicit === null && state.implicit === null); + state.implicit = num; + return this; + }; + Node.prototype.obj = function obj() { + const state = this._baseState; + const args = Array.prototype.slice.call(arguments); + state.obj = true; + if (args.length !== 0) + this._useArgs(args); + return this; + }; + Node.prototype.key = function key(newKey) { + const state = this._baseState; + assert(state.key === null); + state.key = newKey; + return this; + }; + Node.prototype.any = function any() { + const state = this._baseState; + state.any = true; + return this; + }; + Node.prototype.choice = function choice(obj) { + const state = this._baseState; + assert(state.choice === null); + state.choice = obj; + this._useArgs(Object.keys(obj).map(function(key) { + return obj[key]; + })); + return this; + }; + Node.prototype.contains = function contains(item) { + const state = this._baseState; + assert(state.use === null); + state.contains = item; + return this; + }; + Node.prototype._decode = function decode(input, options) { + const state = this._baseState; + if (state.parent === null) + return input.wrapResult(state.children[0]._decode(input, options)); + let result = state["default"]; + let present = true; + let prevKey = null; + if (state.key !== null) + prevKey = input.enterKey(state.key); + if (state.optional) { + let tag = null; + if (state.explicit !== null) + tag = state.explicit; + else if (state.implicit !== null) + tag = state.implicit; + else if (state.tag !== null) + tag = state.tag; + if (tag === null && !state.any) { + const save = input.save(); + try { + if (state.choice === null) + this._decodeGeneric(state.tag, input, options); + else + this._decodeChoice(input, options); + present = true; + } catch (e8) { + present = false; + } + input.restore(save); + } else { + present = this._peekTag(input, tag, state.any); + if (input.isError(present)) + return present; + } + } + let prevObj; + if (state.obj && present) + prevObj = input.enterObject(); + if (present) { + if (state.explicit !== null) { + const explicit = this._decodeTag(input, state.explicit); + if (input.isError(explicit)) + return explicit; + input = explicit; + } + const start = input.offset; + if (state.use === null && state.choice === null) { + let save; + if (state.any) + save = input.save(); + const body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any); + if (input.isError(body)) + return body; + if (state.any) + result = input.raw(save); + else + input = body; + } + if (options && options.track && state.tag !== null) + options.track(input.path(), start, input.length, "tagged"); + if (options && options.track && state.tag !== null) + options.track(input.path(), input.offset, input.length, "content"); + if (state.any) + ; + else if (state.choice === null) { + result = this._decodeGeneric(state.tag, input, options); + } else { + result = this._decodeChoice(input, options); + } + if (input.isError(result)) + return result; + if (!state.any && state.choice === null && state.children !== null) { + state.children.forEach(function decodeChildren(child) { + child._decode(input, options); + }); + } + if (state.contains && (state.tag === "octstr" || state.tag === "bitstr")) { + const data = new DecoderBuffer(result); + result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options); + } + } + if (state.obj && present) + result = input.leaveObject(prevObj); + if (state.key !== null && (result !== null || present === true)) + input.leaveKey(prevKey, state.key, result); + else if (prevKey !== null) + input.exitKey(prevKey); + return result; + }; + Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { + const state = this._baseState; + if (tag === "seq" || tag === "set") + return null; + if (tag === "seqof" || tag === "setof") + return this._decodeList(input, tag, state.args[0], options); + else if (/str$/.test(tag)) + return this._decodeStr(input, tag, options); + else if (tag === "objid" && state.args) + return this._decodeObjid(input, state.args[0], state.args[1], options); + else if (tag === "objid") + return this._decodeObjid(input, null, null, options); + else if (tag === "gentime" || tag === "utctime") + return this._decodeTime(input, tag, options); + else if (tag === "null_") + return this._decodeNull(input, options); + else if (tag === "bool") + return this._decodeBool(input, options); + else if (tag === "objDesc") + return this._decodeStr(input, tag, options); + else if (tag === "int" || tag === "enum") + return this._decodeInt(input, state.args && state.args[0], options); + if (state.use !== null) { + return this._getUse(state.use, input._reporterState.obj)._decode(input, options); + } else { + return input.error("unknown tag: " + tag); + } + }; + Node.prototype._getUse = function _getUse(entity, obj) { + const state = this._baseState; + state.useDecoder = this._use(entity, obj); + assert(state.useDecoder._baseState.parent === null); + state.useDecoder = state.useDecoder._baseState.children[0]; + if (state.implicit !== state.useDecoder._baseState.implicit) { + state.useDecoder = state.useDecoder.clone(); + state.useDecoder._baseState.implicit = state.implicit; + } + return state.useDecoder; + }; + Node.prototype._decodeChoice = function decodeChoice(input, options) { + const state = this._baseState; + let result = null; + let match = false; + Object.keys(state.choice).some(function(key) { + const save = input.save(); + const node = state.choice[key]; + try { + const value = node._decode(input, options); + if (input.isError(value)) + return false; + result = { + type: key, + value + }; + match = true; + } catch (e8) { + input.restore(save); + return false; + } + return true; + }, this); + if (!match) + return input.error("Choice not matched"); + return result; + }; + Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { + return new EncoderBuffer(data, this.reporter); + }; + Node.prototype._encode = function encode(data, reporter, parent) { + const state = this._baseState; + if (state["default"] !== null && state["default"] === data) + return; + const result = this._encodeValue(data, reporter, parent); + if (result === void 0) + return; + if (this._skipDefault(result, reporter, parent)) + return; + return result; + }; + Node.prototype._encodeValue = function encode(data, reporter, parent) { + const state = this._baseState; + if (state.parent === null) + return state.children[0]._encode(data, reporter || new Reporter()); + let result = null; + this.reporter = reporter; + if (state.optional && data === void 0) { + if (state["default"] !== null) + data = state["default"]; + else + return; + } + let content = null; + let primitive = false; + if (state.any) { + result = this._createEncoderBuffer(data); + } else if (state.choice) { + result = this._encodeChoice(data, reporter); + } else if (state.contains) { + content = this._getUse(state.contains, parent)._encode(data, reporter); + primitive = true; + } else if (state.children) { + content = state.children.map(function(child) { + if (child._baseState.tag === "null_") + return child._encode(null, reporter, data); + if (child._baseState.key === null) + return reporter.error("Child should have a key"); + const prevKey = reporter.enterKey(child._baseState.key); + if (typeof data !== "object") + return reporter.error("Child expected, but input is not object"); + const res = child._encode(data[child._baseState.key], reporter, data); + reporter.leaveKey(prevKey); + return res; + }, this).filter(function(child) { + return child; + }); + content = this._createEncoderBuffer(content); + } else { + if (state.tag === "seqof" || state.tag === "setof") { + if (!(state.args && state.args.length === 1)) + return reporter.error("Too many args for : " + state.tag); + if (!Array.isArray(data)) + return reporter.error("seqof/setof, but data is not Array"); + const child = this.clone(); + child._baseState.implicit = null; + content = this._createEncoderBuffer(data.map(function(item) { + const state2 = this._baseState; + return this._getUse(state2.args[0], data)._encode(item, reporter); + }, child)); + } else if (state.use !== null) { + result = this._getUse(state.use, parent)._encode(data, reporter); + } else { + content = this._encodePrimitive(state.tag, data); + primitive = true; + } + } + if (!state.any && state.choice === null) { + const tag = state.implicit !== null ? state.implicit : state.tag; + const cls = state.implicit === null ? "universal" : "context"; + if (tag === null) { + if (state.use === null) + reporter.error("Tag could be omitted only for .use()"); + } else { + if (state.use === null) + result = this._encodeComposite(tag, primitive, cls, content); + } + } + if (state.explicit !== null) + result = this._encodeComposite(state.explicit, false, "context", result); + return result; + }; + Node.prototype._encodeChoice = function encodeChoice(data, reporter) { + const state = this._baseState; + const node = state.choice[data.type]; + if (!node) { + assert(false, data.type + " not found in " + JSON.stringify(Object.keys(state.choice))); + } + return node._encode(data.value, reporter); + }; + Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { + const state = this._baseState; + if (/str$/.test(tag)) + return this._encodeStr(data, tag); + else if (tag === "objid" && state.args) + return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); + else if (tag === "objid") + return this._encodeObjid(data, null, null); + else if (tag === "gentime" || tag === "utctime") + return this._encodeTime(data, tag); + else if (tag === "null_") + return this._encodeNull(); + else if (tag === "int" || tag === "enum") + return this._encodeInt(data, state.args && state.reverseArgs[0]); + else if (tag === "bool") + return this._encodeBool(data); + else if (tag === "objDesc") + return this._encodeStr(data, tag); + else + throw new Error("Unsupported tag: " + tag); + }; + Node.prototype._isNumstr = function isNumstr(str) { + return /^[0-9 ]*$/.test(str); + }; + Node.prototype._isPrintstr = function isPrintstr(str) { + return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str); + }; + return exports$t$1; +} +var exports$s$1 = {}; +var _dewExec$s$1 = false; +function dew$s$1() { + if (_dewExec$s$1) + return exports$s$1; + _dewExec$s$1 = true; + function reverse(map) { + const res = {}; + Object.keys(map).forEach(function(key) { + if ((key | 0) == key) + key = key | 0; + const value = map[key]; + res[value] = key; + }); + return res; + } + exports$s$1.tagClass = { + 0: "universal", + 1: "application", + 2: "context", + 3: "private" + }; + exports$s$1.tagClassByName = reverse(exports$s$1.tagClass); + exports$s$1.tag = { + 0: "end", + 1: "bool", + 2: "int", + 3: "bitstr", + 4: "octstr", + 5: "null_", + 6: "objid", + 7: "objDesc", + 8: "external", + 9: "real", + 10: "enum", + 11: "embed", + 12: "utf8str", + 13: "relativeOid", + 16: "seq", + 17: "set", + 18: "numstr", + 19: "printstr", + 20: "t61str", + 21: "videostr", + 22: "ia5str", + 23: "utctime", + 24: "gentime", + 25: "graphstr", + 26: "iso646str", + 27: "genstr", + 28: "unistr", + 29: "charstr", + 30: "bmpstr" + }; + exports$s$1.tagByName = reverse(exports$s$1.tag); + return exports$s$1; +} +var exports$r$1 = {}; +var _dewExec$r$1 = false; +function dew$r$1() { + if (_dewExec$r$1) + return exports$r$1; + _dewExec$r$1 = true; + const inherits2 = dew$f$2(); + const Buffer2 = dew$w$1().Buffer; + const Node = dew$t$1(); + const der = dew$s$1(); + function DEREncoder(entity) { + this.enc = "der"; + this.name = entity.name; + this.entity = entity; + this.tree = new DERNode(); + this.tree._init(entity.body); + } + exports$r$1 = DEREncoder; + DEREncoder.prototype.encode = function encode(data, reporter) { + return this.tree._encode(data, reporter).join(); + }; + function DERNode(parent) { + Node.call(this, "der", parent); + } + inherits2(DERNode, Node); + DERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) { + const encodedTag = encodeTag(tag, primitive, cls, this.reporter); + if (content.length < 128) { + const header2 = Buffer2.alloc(2); + header2[0] = encodedTag; + header2[1] = content.length; + return this._createEncoderBuffer([header2, content]); + } + let lenOctets = 1; + for (let i6 = content.length; i6 >= 256; i6 >>= 8) + lenOctets++; + const header = Buffer2.alloc(1 + 1 + lenOctets); + header[0] = encodedTag; + header[1] = 128 | lenOctets; + for (let i6 = 1 + lenOctets, j4 = content.length; j4 > 0; i6--, j4 >>= 8) + header[i6] = j4 & 255; + return this._createEncoderBuffer([header, content]); + }; + DERNode.prototype._encodeStr = function encodeStr(str, tag) { + if (tag === "bitstr") { + return this._createEncoderBuffer([str.unused | 0, str.data]); + } else if (tag === "bmpstr") { + const buf = Buffer2.alloc(str.length * 2); + for (let i6 = 0; i6 < str.length; i6++) { + buf.writeUInt16BE(str.charCodeAt(i6), i6 * 2); + } + return this._createEncoderBuffer(buf); + } else if (tag === "numstr") { + if (!this._isNumstr(str)) { + return this.reporter.error("Encoding of string type: numstr supports only digits and space"); + } + return this._createEncoderBuffer(str); + } else if (tag === "printstr") { + if (!this._isPrintstr(str)) { + return this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"); + } + return this._createEncoderBuffer(str); + } else if (/str$/.test(tag)) { + return this._createEncoderBuffer(str); + } else if (tag === "objDesc") { + return this._createEncoderBuffer(str); + } else { + return this.reporter.error("Encoding of string type: " + tag + " unsupported"); + } + }; + DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { + if (typeof id === "string") { + if (!values) + return this.reporter.error("string objid given, but no values map found"); + if (!values.hasOwnProperty(id)) + return this.reporter.error("objid not found in values map"); + id = values[id].split(/[\s.]+/g); + for (let i6 = 0; i6 < id.length; i6++) + id[i6] |= 0; + } else if (Array.isArray(id)) { + id = id.slice(); + for (let i6 = 0; i6 < id.length; i6++) + id[i6] |= 0; + } + if (!Array.isArray(id)) { + return this.reporter.error("objid() should be either array or string, got: " + JSON.stringify(id)); + } + if (!relative) { + if (id[1] >= 40) + return this.reporter.error("Second objid identifier OOB"); + id.splice(0, 2, id[0] * 40 + id[1]); + } + let size = 0; + for (let i6 = 0; i6 < id.length; i6++) { + let ident = id[i6]; + for (size++; ident >= 128; ident >>= 7) + size++; + } + const objid = Buffer2.alloc(size); + let offset = objid.length - 1; + for (let i6 = id.length - 1; i6 >= 0; i6--) { + let ident = id[i6]; + objid[offset--] = ident & 127; + while ((ident >>= 7) > 0) + objid[offset--] = 128 | ident & 127; + } + return this._createEncoderBuffer(objid); + }; + function two(num) { + if (num < 10) + return "0" + num; + else + return num; + } + DERNode.prototype._encodeTime = function encodeTime(time, tag) { + let str; + const date = new Date(time); + if (tag === "gentime") { + str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z"].join(""); + } else if (tag === "utctime") { + str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z"].join(""); + } else { + this.reporter.error("Encoding " + tag + " time is not supported yet"); + } + return this._encodeStr(str, "octstr"); + }; + DERNode.prototype._encodeNull = function encodeNull() { + return this._createEncoderBuffer(""); + }; + DERNode.prototype._encodeInt = function encodeInt(num, values) { + if (typeof num === "string") { + if (!values) + return this.reporter.error("String int or enum given, but no values map"); + if (!values.hasOwnProperty(num)) { + return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num)); + } + num = values[num]; + } + if (typeof num !== "number" && !Buffer2.isBuffer(num)) { + const numArray = num.toArray(); + if (!num.sign && numArray[0] & 128) { + numArray.unshift(0); + } + num = Buffer2.from(numArray); + } + if (Buffer2.isBuffer(num)) { + let size2 = num.length; + if (num.length === 0) + size2++; + const out2 = Buffer2.alloc(size2); + num.copy(out2); + if (num.length === 0) + out2[0] = 0; + return this._createEncoderBuffer(out2); + } + if (num < 128) + return this._createEncoderBuffer(num); + if (num < 256) + return this._createEncoderBuffer([0, num]); + let size = 1; + for (let i6 = num; i6 >= 256; i6 >>= 8) + size++; + const out = new Array(size); + for (let i6 = out.length - 1; i6 >= 0; i6--) { + out[i6] = num & 255; + num >>= 8; + } + if (out[0] & 128) { + out.unshift(0); + } + return this._createEncoderBuffer(Buffer2.from(out)); + }; + DERNode.prototype._encodeBool = function encodeBool(value) { + return this._createEncoderBuffer(value ? 255 : 0); + }; + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === "function") + entity = entity(obj); + return entity._getEncoder("der").tree; + }; + DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { + const state = this._baseState; + let i6; + if (state["default"] === null) + return false; + const data = dataBuffer.join(); + if (state.defaultBuffer === void 0) + state.defaultBuffer = this._encodeValue(state["default"], reporter, parent).join(); + if (data.length !== state.defaultBuffer.length) + return false; + for (i6 = 0; i6 < data.length; i6++) + if (data[i6] !== state.defaultBuffer[i6]) + return false; + return true; + }; + function encodeTag(tag, primitive, cls, reporter) { + let res; + if (tag === "seqof") + tag = "seq"; + else if (tag === "setof") + tag = "set"; + if (der.tagByName.hasOwnProperty(tag)) + res = der.tagByName[tag]; + else if (typeof tag === "number" && (tag | 0) === tag) + res = tag; + else + return reporter.error("Unknown tag: " + tag); + if (res >= 31) + return reporter.error("Multi-octet tag encoding unsupported"); + if (!primitive) + res |= 32; + res |= der.tagClassByName[cls || "universal"] << 6; + return res; + } + return exports$r$1; +} +var exports$q$1 = {}; +var _dewExec$q$1 = false; +function dew$q$1() { + if (_dewExec$q$1) + return exports$q$1; + _dewExec$q$1 = true; + const inherits2 = dew$f$2(); + const DEREncoder = dew$r$1(); + function PEMEncoder(entity) { + DEREncoder.call(this, entity); + this.enc = "pem"; + } + inherits2(PEMEncoder, DEREncoder); + exports$q$1 = PEMEncoder; + PEMEncoder.prototype.encode = function encode(data, options) { + const buf = DEREncoder.prototype.encode.call(this, data); + const p6 = buf.toString("base64"); + const out = ["-----BEGIN " + options.label + "-----"]; + for (let i6 = 0; i6 < p6.length; i6 += 64) + out.push(p6.slice(i6, i6 + 64)); + out.push("-----END " + options.label + "-----"); + return out.join("\n"); + }; + return exports$q$1; +} +var exports$p$1 = {}; +var _dewExec$p$1 = false; +function dew$p$1() { + if (_dewExec$p$1) + return exports$p$1; + _dewExec$p$1 = true; + const encoders = exports$p$1; + encoders.der = dew$r$1(); + encoders.pem = dew$q$1(); + return exports$p$1; +} +var exports$o$1 = {}; +var _dewExec$o$1 = false; +function dew$o$1() { + if (_dewExec$o$1) + return exports$o$1; + _dewExec$o$1 = true; + const inherits2 = dew$f$2(); + const bignum = dew$x$1(); + const DecoderBuffer = dew$u$1().DecoderBuffer; + const Node = dew$t$1(); + const der = dew$s$1(); + function DERDecoder(entity) { + this.enc = "der"; + this.name = entity.name; + this.entity = entity; + this.tree = new DERNode(); + this.tree._init(entity.body); + } + exports$o$1 = DERDecoder; + DERDecoder.prototype.decode = function decode(data, options) { + if (!DecoderBuffer.isDecoderBuffer(data)) { + data = new DecoderBuffer(data, options); + } + return this.tree._decode(data, options); + }; + function DERNode(parent) { + Node.call(this, "der", parent); + } + inherits2(DERNode, Node); + DERNode.prototype._peekTag = function peekTag(buffer2, tag, any) { + if (buffer2.isEmpty()) + return false; + const state = buffer2.save(); + const decodedTag = derDecodeTag(buffer2, 'Failed to peek tag: "' + tag + '"'); + if (buffer2.isError(decodedTag)) + return decodedTag; + buffer2.restore(state); + return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + "of" === tag || any; + }; + DERNode.prototype._decodeTag = function decodeTag(buffer2, tag, any) { + const decodedTag = derDecodeTag(buffer2, 'Failed to decode tag of "' + tag + '"'); + if (buffer2.isError(decodedTag)) + return decodedTag; + let len = derDecodeLen(buffer2, decodedTag.primitive, 'Failed to get length of "' + tag + '"'); + if (buffer2.isError(len)) + return len; + if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + "of" !== tag) { + return buffer2.error('Failed to match tag: "' + tag + '"'); + } + if (decodedTag.primitive || len !== null) + return buffer2.skip(len, 'Failed to match body of: "' + tag + '"'); + const state = buffer2.save(); + const res = this._skipUntilEnd(buffer2, 'Failed to skip indefinite length body: "' + this.tag + '"'); + if (buffer2.isError(res)) + return res; + len = buffer2.offset - state.offset; + buffer2.restore(state); + return buffer2.skip(len, 'Failed to match body of: "' + tag + '"'); + }; + DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer2, fail) { + for (; ; ) { + const tag = derDecodeTag(buffer2, fail); + if (buffer2.isError(tag)) + return tag; + const len = derDecodeLen(buffer2, tag.primitive, fail); + if (buffer2.isError(len)) + return len; + let res; + if (tag.primitive || len !== null) + res = buffer2.skip(len); + else + res = this._skipUntilEnd(buffer2, fail); + if (buffer2.isError(res)) + return res; + if (tag.tagStr === "end") + break; + } + }; + DERNode.prototype._decodeList = function decodeList(buffer2, tag, decoder, options) { + const result = []; + while (!buffer2.isEmpty()) { + const possibleEnd = this._peekTag(buffer2, "end"); + if (buffer2.isError(possibleEnd)) + return possibleEnd; + const res = decoder.decode(buffer2, "der", options); + if (buffer2.isError(res) && possibleEnd) + break; + result.push(res); + } + return result; + }; + DERNode.prototype._decodeStr = function decodeStr(buffer2, tag) { + if (tag === "bitstr") { + const unused = buffer2.readUInt8(); + if (buffer2.isError(unused)) + return unused; + return { + unused, + data: buffer2.raw() + }; + } else if (tag === "bmpstr") { + const raw = buffer2.raw(); + if (raw.length % 2 === 1) + return buffer2.error("Decoding of string type: bmpstr length mismatch"); + let str = ""; + for (let i6 = 0; i6 < raw.length / 2; i6++) { + str += String.fromCharCode(raw.readUInt16BE(i6 * 2)); + } + return str; + } else if (tag === "numstr") { + const numstr = buffer2.raw().toString("ascii"); + if (!this._isNumstr(numstr)) { + return buffer2.error("Decoding of string type: numstr unsupported characters"); + } + return numstr; + } else if (tag === "octstr") { + return buffer2.raw(); + } else if (tag === "objDesc") { + return buffer2.raw(); + } else if (tag === "printstr") { + const printstr = buffer2.raw().toString("ascii"); + if (!this._isPrintstr(printstr)) { + return buffer2.error("Decoding of string type: printstr unsupported characters"); + } + return printstr; + } else if (/str$/.test(tag)) { + return buffer2.raw().toString(); + } else { + return buffer2.error("Decoding of string type: " + tag + " unsupported"); + } + }; + DERNode.prototype._decodeObjid = function decodeObjid(buffer2, values, relative) { + let result; + const identifiers = []; + let ident = 0; + let subident = 0; + while (!buffer2.isEmpty()) { + subident = buffer2.readUInt8(); + ident <<= 7; + ident |= subident & 127; + if ((subident & 128) === 0) { + identifiers.push(ident); + ident = 0; + } + } + if (subident & 128) + identifiers.push(ident); + const first = identifiers[0] / 40 | 0; + const second = identifiers[0] % 40; + if (relative) + result = identifiers; + else + result = [first, second].concat(identifiers.slice(1)); + if (values) { + let tmp = values[result.join(" ")]; + if (tmp === void 0) + tmp = values[result.join(".")]; + if (tmp !== void 0) + result = tmp; + } + return result; + }; + DERNode.prototype._decodeTime = function decodeTime(buffer2, tag) { + const str = buffer2.raw().toString(); + let year; + let mon; + let day; + let hour; + let min; + let sec; + if (tag === "gentime") { + year = str.slice(0, 4) | 0; + mon = str.slice(4, 6) | 0; + day = str.slice(6, 8) | 0; + hour = str.slice(8, 10) | 0; + min = str.slice(10, 12) | 0; + sec = str.slice(12, 14) | 0; + } else if (tag === "utctime") { + year = str.slice(0, 2) | 0; + mon = str.slice(2, 4) | 0; + day = str.slice(4, 6) | 0; + hour = str.slice(6, 8) | 0; + min = str.slice(8, 10) | 0; + sec = str.slice(10, 12) | 0; + if (year < 70) + year = 2e3 + year; + else + year = 1900 + year; + } else { + return buffer2.error("Decoding " + tag + " time is not supported yet"); + } + return Date.UTC(year, mon - 1, day, hour, min, sec, 0); + }; + DERNode.prototype._decodeNull = function decodeNull() { + return null; + }; + DERNode.prototype._decodeBool = function decodeBool(buffer2) { + const res = buffer2.readUInt8(); + if (buffer2.isError(res)) + return res; + else + return res !== 0; + }; + DERNode.prototype._decodeInt = function decodeInt(buffer2, values) { + const raw = buffer2.raw(); + let res = new bignum(raw); + if (values) + res = values[res.toString(10)] || res; + return res; + }; + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === "function") + entity = entity(obj); + return entity._getDecoder("der").tree; + }; + function derDecodeTag(buf, fail) { + let tag = buf.readUInt8(fail); + if (buf.isError(tag)) + return tag; + const cls = der.tagClass[tag >> 6]; + const primitive = (tag & 32) === 0; + if ((tag & 31) === 31) { + let oct = tag; + tag = 0; + while ((oct & 128) === 128) { + oct = buf.readUInt8(fail); + if (buf.isError(oct)) + return oct; + tag <<= 7; + tag |= oct & 127; + } + } else { + tag &= 31; + } + const tagStr = der.tag[tag]; + return { + cls, + primitive, + tag, + tagStr + }; + } + function derDecodeLen(buf, primitive, fail) { + let len = buf.readUInt8(fail); + if (buf.isError(len)) + return len; + if (!primitive && len === 128) + return null; + if ((len & 128) === 0) { + return len; + } + const num = len & 127; + if (num > 4) + return buf.error("length octect is too long"); + len = 0; + for (let i6 = 0; i6 < num; i6++) { + len <<= 8; + const j4 = buf.readUInt8(fail); + if (buf.isError(j4)) + return j4; + len |= j4; + } + return len; + } + return exports$o$1; +} +var exports$n$1 = {}; +var _dewExec$n$1 = false; +function dew$n$1() { + if (_dewExec$n$1) + return exports$n$1; + _dewExec$n$1 = true; + const inherits2 = dew$f$2(); + const Buffer2 = dew$w$1().Buffer; + const DERDecoder = dew$o$1(); + function PEMDecoder(entity) { + DERDecoder.call(this, entity); + this.enc = "pem"; + } + inherits2(PEMDecoder, DERDecoder); + exports$n$1 = PEMDecoder; + PEMDecoder.prototype.decode = function decode(data, options) { + const lines = data.toString().split(/[\r\n]+/g); + const label = options.label.toUpperCase(); + const re3 = /^-----(BEGIN|END) ([^-]+)-----$/; + let start = -1; + let end = -1; + for (let i6 = 0; i6 < lines.length; i6++) { + const match = lines[i6].match(re3); + if (match === null) + continue; + if (match[2] !== label) + continue; + if (start === -1) { + if (match[1] !== "BEGIN") + break; + start = i6; + } else { + if (match[1] !== "END") + break; + end = i6; + break; + } + } + if (start === -1 || end === -1) + throw new Error("PEM section not found for: " + label); + const base64 = lines.slice(start + 1, end).join(""); + base64.replace(/[^a-z0-9+/=]+/gi, ""); + const input = Buffer2.from(base64, "base64"); + return DERDecoder.prototype.decode.call(this, input, options); + }; + return exports$n$1; +} +var exports$m$1 = {}; +var _dewExec$m$1 = false; +function dew$m$1() { + if (_dewExec$m$1) + return exports$m$1; + _dewExec$m$1 = true; + const decoders = exports$m$1; + decoders.der = dew$o$1(); + decoders.pem = dew$n$1(); + return exports$m$1; +} +var exports$l$1 = {}; +var _dewExec$l$1 = false; +function dew$l$1() { + if (_dewExec$l$1) + return exports$l$1; + _dewExec$l$1 = true; + const encoders = dew$p$1(); + const decoders = dew$m$1(); + const inherits2 = dew$f$2(); + const api = exports$l$1; + api.define = function define(name, body) { + return new Entity(name, body); + }; + function Entity(name, body) { + this.name = name; + this.body = body; + this.decoders = {}; + this.encoders = {}; + } + Entity.prototype._createNamed = function createNamed(Base) { + const name = this.name; + function Generated(entity) { + this._initNamed(entity, name); + } + inherits2(Generated, Base); + Generated.prototype._initNamed = function _initNamed(entity, name2) { + Base.call(this, entity, name2); + }; + return new Generated(this); + }; + Entity.prototype._getDecoder = function _getDecoder(enc) { + enc = enc || "der"; + if (!this.decoders.hasOwnProperty(enc)) + this.decoders[enc] = this._createNamed(decoders[enc]); + return this.decoders[enc]; + }; + Entity.prototype.decode = function decode(data, enc, options) { + return this._getDecoder(enc).decode(data, options); + }; + Entity.prototype._getEncoder = function _getEncoder(enc) { + enc = enc || "der"; + if (!this.encoders.hasOwnProperty(enc)) + this.encoders[enc] = this._createNamed(encoders[enc]); + return this.encoders[enc]; + }; + Entity.prototype.encode = function encode(data, enc, reporter) { + return this._getEncoder(enc).encode(data, reporter); + }; + return exports$l$1; +} +var exports$k$1 = {}; +var _dewExec$k$1 = false; +function dew$k$1() { + if (_dewExec$k$1) + return exports$k$1; + _dewExec$k$1 = true; + const base = exports$k$1; + base.Reporter = dew$v$1().Reporter; + base.DecoderBuffer = dew$u$1().DecoderBuffer; + base.EncoderBuffer = dew$u$1().EncoderBuffer; + base.Node = dew$t$1(); + return exports$k$1; +} +var exports$j$1 = {}; +var _dewExec$j$1 = false; +function dew$j$1() { + if (_dewExec$j$1) + return exports$j$1; + _dewExec$j$1 = true; + const constants2 = exports$j$1; + constants2._reverse = function reverse(map) { + const res = {}; + Object.keys(map).forEach(function(key) { + if ((key | 0) == key) + key = key | 0; + const value = map[key]; + res[value] = key; + }); + return res; + }; + constants2.der = dew$s$1(); + return exports$j$1; +} +var exports$i$1 = {}; +var _dewExec$i$1 = false; +function dew$i$1() { + if (_dewExec$i$1) + return exports$i$1; + _dewExec$i$1 = true; + const asn1 = exports$i$1; + asn1.bignum = dew$x$1(); + asn1.define = dew$l$1().define; + asn1.base = dew$k$1(); + asn1.constants = dew$j$1(); + asn1.decoders = dew$m$1(); + asn1.encoders = dew$p$1(); + return exports$i$1; +} +var exports$h$1 = {}; +var _dewExec$h$1 = false; +function dew$h$1() { + if (_dewExec$h$1) + return exports$h$1; + _dewExec$h$1 = true; + var asn = dew$i$1(); + var Time = asn.define("Time", function() { + this.choice({ + utcTime: this.utctime(), + generalTime: this.gentime() + }); + }); + var AttributeTypeValue = asn.define("AttributeTypeValue", function() { + this.seq().obj(this.key("type").objid(), this.key("value").any()); + }); + var AlgorithmIdentifier = asn.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional(), this.key("curve").objid().optional()); + }); + var SubjectPublicKeyInfo = asn.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr()); + }); + var RelativeDistinguishedName = asn.define("RelativeDistinguishedName", function() { + this.setof(AttributeTypeValue); + }); + var RDNSequence = asn.define("RDNSequence", function() { + this.seqof(RelativeDistinguishedName); + }); + var Name = asn.define("Name", function() { + this.choice({ + rdnSequence: this.use(RDNSequence) + }); + }); + var Validity = asn.define("Validity", function() { + this.seq().obj(this.key("notBefore").use(Time), this.key("notAfter").use(Time)); + }); + var Extension = asn.define("Extension", function() { + this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(false), this.key("extnValue").octstr()); + }); + var TBSCertificate = asn.define("TBSCertificate", function() { + this.seq().obj(this.key("version").explicit(0).int().optional(), this.key("serialNumber").int(), this.key("signature").use(AlgorithmIdentifier), this.key("issuer").use(Name), this.key("validity").use(Validity), this.key("subject").use(Name), this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(Extension).optional()); + }); + var X509Certificate = asn.define("X509Certificate", function() { + this.seq().obj(this.key("tbsCertificate").use(TBSCertificate), this.key("signatureAlgorithm").use(AlgorithmIdentifier), this.key("signatureValue").bitstr()); + }); + exports$h$1 = X509Certificate; + return exports$h$1; +} +var exports$g$1 = {}; +var _dewExec$g$1 = false; +function dew$g$1() { + if (_dewExec$g$1) + return exports$g$1; + _dewExec$g$1 = true; + var asn1 = dew$i$1(); + exports$g$1.certificate = dew$h$1(); + var RSAPrivateKey = asn1.define("RSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("modulus").int(), this.key("publicExponent").int(), this.key("privateExponent").int(), this.key("prime1").int(), this.key("prime2").int(), this.key("exponent1").int(), this.key("exponent2").int(), this.key("coefficient").int()); + }); + exports$g$1.RSAPrivateKey = RSAPrivateKey; + var RSAPublicKey = asn1.define("RSAPublicKey", function() { + this.seq().obj(this.key("modulus").int(), this.key("publicExponent").int()); + }); + exports$g$1.RSAPublicKey = RSAPublicKey; + var PublicKey = asn1.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr()); + }); + exports$g$1.PublicKey = PublicKey; + var AlgorithmIdentifier = asn1.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params").seq().obj(this.key("p").int(), this.key("q").int(), this.key("g").int()).optional()); + }); + var PrivateKeyInfo = asn1.define("PrivateKeyInfo", function() { + this.seq().obj(this.key("version").int(), this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPrivateKey").octstr()); + }); + exports$g$1.PrivateKey = PrivateKeyInfo; + var EncryptedPrivateKeyInfo = asn1.define("EncryptedPrivateKeyInfo", function() { + this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(), this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(), this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters").int())), this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()))), this.key("subjectPrivateKey").octstr()); + }); + exports$g$1.EncryptedPrivateKey = EncryptedPrivateKeyInfo; + var DSAPrivateKey = asn1.define("DSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("p").int(), this.key("q").int(), this.key("g").int(), this.key("pub_key").int(), this.key("priv_key").int()); + }); + exports$g$1.DSAPrivateKey = DSAPrivateKey; + exports$g$1.DSAparam = asn1.define("DSAparam", function() { + this.int(); + }); + var ECPrivateKey = asn1.define("ECPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(ECParameters), this.key("publicKey").optional().explicit(1).bitstr()); + }); + exports$g$1.ECPrivateKey = ECPrivateKey; + var ECParameters = asn1.define("ECParameters", function() { + this.choice({ + namedCurve: this.objid() + }); + }); + exports$g$1.signature = asn1.define("signature", function() { + this.seq().obj(this.key("r").int(), this.key("s").int()); + }); + return exports$g$1; +} +var _aesid$1 = { + "2.16.840.1.101.3.4.1.1": "aes-128-ecb", + "2.16.840.1.101.3.4.1.2": "aes-128-cbc", + "2.16.840.1.101.3.4.1.3": "aes-128-ofb", + "2.16.840.1.101.3.4.1.4": "aes-128-cfb", + "2.16.840.1.101.3.4.1.21": "aes-192-ecb", + "2.16.840.1.101.3.4.1.22": "aes-192-cbc", + "2.16.840.1.101.3.4.1.23": "aes-192-ofb", + "2.16.840.1.101.3.4.1.24": "aes-192-cfb", + "2.16.840.1.101.3.4.1.41": "aes-256-ecb", + "2.16.840.1.101.3.4.1.42": "aes-256-cbc", + "2.16.840.1.101.3.4.1.43": "aes-256-ofb", + "2.16.840.1.101.3.4.1.44": "aes-256-cfb" +}; +var exports$f$1 = {}; +var _dewExec$f$1 = false; +function dew$f$1() { + if (_dewExec$f$1) + return exports$f$1; + _dewExec$f$1 = true; + var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m; + var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m; + var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m; + var evp = dew$18(); + var ciphers = dew$15(); + var Buffer2 = dew$1T().Buffer; + exports$f$1 = function(okey, password) { + var key = okey.toString(); + var match = key.match(findProc); + var decrypted; + if (!match) { + var match2 = key.match(fullRegex); + decrypted = Buffer2.from(match2[2].replace(/[\r\n]/g, ""), "base64"); + } else { + var suite = "aes" + match[1]; + var iv = Buffer2.from(match[2], "hex"); + var cipherText = Buffer2.from(match[3].replace(/[\r\n]/g, ""), "base64"); + var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key; + var out = []; + var cipher = ciphers.createDecipheriv(suite, cipherKey, iv); + out.push(cipher.update(cipherText)); + out.push(cipher.final()); + decrypted = Buffer2.concat(out); + } + var tag = key.match(startRegex)[1]; + return { + tag, + data: decrypted + }; + }; + return exports$f$1; +} +var exports$e$1 = {}; +var _dewExec$e$1 = false; +function dew$e$1() { + if (_dewExec$e$1) + return exports$e$1; + _dewExec$e$1 = true; + var asn1 = dew$g$1(); + var aesid = _aesid$1; + var fixProc = dew$f$1(); + var ciphers = dew$15(); + var compat = dew$1v(); + var Buffer2 = dew$1T().Buffer; + exports$e$1 = parseKeys; + function parseKeys(buffer2) { + var password; + if (typeof buffer2 === "object" && !Buffer2.isBuffer(buffer2)) { + password = buffer2.passphrase; + buffer2 = buffer2.key; + } + if (typeof buffer2 === "string") { + buffer2 = Buffer2.from(buffer2); + } + var stripped = fixProc(buffer2, password); + var type = stripped.tag; + var data = stripped.data; + var subtype, ndata; + switch (type) { + case "CERTIFICATE": + ndata = asn1.certificate.decode(data, "der").tbsCertificate.subjectPublicKeyInfo; + case "PUBLIC KEY": + if (!ndata) { + ndata = asn1.PublicKey.decode(data, "der"); + } + subtype = ndata.algorithm.algorithm.join("."); + switch (subtype) { + case "1.2.840.113549.1.1.1": + return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, "der"); + case "1.2.840.10045.2.1": + ndata.subjectPrivateKey = ndata.subjectPublicKey; + return { + type: "ec", + data: ndata + }; + case "1.2.840.10040.4.1": + ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, "der"); + return { + type: "dsa", + data: ndata.algorithm.params + }; + default: + throw new Error("unknown key id " + subtype); + } + case "ENCRYPTED PRIVATE KEY": + data = asn1.EncryptedPrivateKey.decode(data, "der"); + data = decrypt(data, password); + case "PRIVATE KEY": + ndata = asn1.PrivateKey.decode(data, "der"); + subtype = ndata.algorithm.algorithm.join("."); + switch (subtype) { + case "1.2.840.113549.1.1.1": + return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, "der"); + case "1.2.840.10045.2.1": + return { + curve: ndata.algorithm.curve, + privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, "der").privateKey + }; + case "1.2.840.10040.4.1": + ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, "der"); + return { + type: "dsa", + params: ndata.algorithm.params + }; + default: + throw new Error("unknown key id " + subtype); + } + case "RSA PUBLIC KEY": + return asn1.RSAPublicKey.decode(data, "der"); + case "RSA PRIVATE KEY": + return asn1.RSAPrivateKey.decode(data, "der"); + case "DSA PRIVATE KEY": + return { + type: "dsa", + params: asn1.DSAPrivateKey.decode(data, "der") + }; + case "EC PRIVATE KEY": + data = asn1.ECPrivateKey.decode(data, "der"); + return { + curve: data.parameters.value, + privateKey: data.privateKey + }; + default: + throw new Error("unknown key type " + type); + } + } + parseKeys.signature = asn1.signature; + function decrypt(data, password) { + var salt = data.algorithm.decrypt.kde.kdeparams.salt; + var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10); + var algo = aesid[data.algorithm.decrypt.cipher.algo.join(".")]; + var iv = data.algorithm.decrypt.cipher.iv; + var cipherText = data.subjectPrivateKey; + var keylen = parseInt(algo.split("-")[1], 10) / 8; + var key = compat.pbkdf2Sync(password, salt, iters, keylen, "sha1"); + var cipher = ciphers.createDecipheriv(algo, key, iv); + var out = []; + out.push(cipher.update(cipherText)); + out.push(cipher.final()); + return Buffer2.concat(out); + } + return exports$e$1; +} +var _curves$1 = { + "1.3.132.0.10": "secp256k1", + "1.3.132.0.33": "p224", + "1.2.840.10045.3.1.1": "p192", + "1.2.840.10045.3.1.7": "p256", + "1.3.132.0.34": "p384", + "1.3.132.0.35": "p521" +}; +var exports$d$1 = {}; +var _dewExec$d$1 = false; +function dew$d$1() { + if (_dewExec$d$1) + return exports$d$1; + _dewExec$d$1 = true; + var Buffer2 = dew$1T().Buffer; + var createHmac2 = dew$1C(); + var crt = dew$W$1(); + var EC = dew$y$1().ec; + var BN = dew$X$1(); + var parseKeys = dew$e$1(); + var curves = _curves$1; + function sign(hash, key, hashType, signType, tag) { + var priv = parseKeys(key); + if (priv.curve) { + if (signType !== "ecdsa" && signType !== "ecdsa/rsa") + throw new Error("wrong private key type"); + return ecSign(hash, priv); + } else if (priv.type === "dsa") { + if (signType !== "dsa") + throw new Error("wrong private key type"); + return dsaSign(hash, priv, hashType); + } else { + if (signType !== "rsa" && signType !== "ecdsa/rsa") + throw new Error("wrong private key type"); + } + hash = Buffer2.concat([tag, hash]); + var len = priv.modulus.byteLength(); + var pad = [0, 1]; + while (hash.length + pad.length + 1 < len) + pad.push(255); + pad.push(0); + var i6 = -1; + while (++i6 < hash.length) + pad.push(hash[i6]); + var out = crt(pad, priv); + return out; + } + function ecSign(hash, priv) { + var curveId = curves[priv.curve.join(".")]; + if (!curveId) + throw new Error("unknown curve " + priv.curve.join(".")); + var curve = new EC(curveId); + var key = curve.keyFromPrivate(priv.privateKey); + var out = key.sign(hash); + return Buffer2.from(out.toDER()); + } + function dsaSign(hash, priv, algo) { + var x4 = priv.params.priv_key; + var p6 = priv.params.p; + var q3 = priv.params.q; + var g4 = priv.params.g; + var r6 = new BN(0); + var k4; + var H3 = bits2int(hash, q3).mod(q3); + var s6 = false; + var kv = getKey(x4, q3, hash, algo); + while (s6 === false) { + k4 = makeKey(q3, kv, algo); + r6 = makeR(g4, k4, p6, q3); + s6 = k4.invm(q3).imul(H3.add(x4.mul(r6))).mod(q3); + if (s6.cmpn(0) === 0) { + s6 = false; + r6 = new BN(0); + } + } + return toDER(r6, s6); + } + function toDER(r6, s6) { + r6 = r6.toArray(); + s6 = s6.toArray(); + if (r6[0] & 128) + r6 = [0].concat(r6); + if (s6[0] & 128) + s6 = [0].concat(s6); + var total = r6.length + s6.length + 4; + var res = [48, total, 2, r6.length]; + res = res.concat(r6, [2, s6.length], s6); + return Buffer2.from(res); + } + function getKey(x4, q3, hash, algo) { + x4 = Buffer2.from(x4.toArray()); + if (x4.length < q3.byteLength()) { + var zeros = Buffer2.alloc(q3.byteLength() - x4.length); + x4 = Buffer2.concat([zeros, x4]); + } + var hlen = hash.length; + var hbits = bits2octets(hash, q3); + var v5 = Buffer2.alloc(hlen); + v5.fill(1); + var k4 = Buffer2.alloc(hlen); + k4 = createHmac2(algo, k4).update(v5).update(Buffer2.from([0])).update(x4).update(hbits).digest(); + v5 = createHmac2(algo, k4).update(v5).digest(); + k4 = createHmac2(algo, k4).update(v5).update(Buffer2.from([1])).update(x4).update(hbits).digest(); + v5 = createHmac2(algo, k4).update(v5).digest(); + return { + k: k4, + v: v5 + }; + } + function bits2int(obits, q3) { + var bits = new BN(obits); + var shift = (obits.length << 3) - q3.bitLength(); + if (shift > 0) + bits.ishrn(shift); + return bits; + } + function bits2octets(bits, q3) { + bits = bits2int(bits, q3); + bits = bits.mod(q3); + var out = Buffer2.from(bits.toArray()); + if (out.length < q3.byteLength()) { + var zeros = Buffer2.alloc(q3.byteLength() - out.length); + out = Buffer2.concat([zeros, out]); + } + return out; + } + function makeKey(q3, kv, algo) { + var t6; + var k4; + do { + t6 = Buffer2.alloc(0); + while (t6.length * 8 < q3.bitLength()) { + kv.v = createHmac2(algo, kv.k).update(kv.v).digest(); + t6 = Buffer2.concat([t6, kv.v]); + } + k4 = bits2int(t6, q3); + kv.k = createHmac2(algo, kv.k).update(kv.v).update(Buffer2.from([0])).digest(); + kv.v = createHmac2(algo, kv.k).update(kv.v).digest(); + } while (k4.cmp(q3) !== -1); + return k4; + } + function makeR(g4, k4, p6, q3) { + return g4.toRed(BN.mont(p6)).redPow(k4).fromRed().mod(q3); + } + exports$d$1 = sign; + exports$d$1.getKey = getKey; + exports$d$1.makeKey = makeKey; + return exports$d$1; +} +var exports$c$1 = {}; +var _dewExec$c$1 = false; +function dew$c$1() { + if (_dewExec$c$1) + return exports$c$1; + _dewExec$c$1 = true; + var Buffer2 = dew$1T().Buffer; + var BN = dew$X$1(); + var EC = dew$y$1().ec; + var parseKeys = dew$e$1(); + var curves = _curves$1; + function verify(sig, hash, key, signType, tag) { + var pub = parseKeys(key); + if (pub.type === "ec") { + if (signType !== "ecdsa" && signType !== "ecdsa/rsa") + throw new Error("wrong public key type"); + return ecVerify(sig, hash, pub); + } else if (pub.type === "dsa") { + if (signType !== "dsa") + throw new Error("wrong public key type"); + return dsaVerify(sig, hash, pub); + } else { + if (signType !== "rsa" && signType !== "ecdsa/rsa") + throw new Error("wrong public key type"); + } + hash = Buffer2.concat([tag, hash]); + var len = pub.modulus.byteLength(); + var pad = [1]; + var padNum = 0; + while (hash.length + pad.length + 2 < len) { + pad.push(255); + padNum++; + } + pad.push(0); + var i6 = -1; + while (++i6 < hash.length) { + pad.push(hash[i6]); + } + pad = Buffer2.from(pad); + var red = BN.mont(pub.modulus); + sig = new BN(sig).toRed(red); + sig = sig.redPow(new BN(pub.publicExponent)); + sig = Buffer2.from(sig.fromRed().toArray()); + var out = padNum < 8 ? 1 : 0; + len = Math.min(sig.length, pad.length); + if (sig.length !== pad.length) + out = 1; + i6 = -1; + while (++i6 < len) + out |= sig[i6] ^ pad[i6]; + return out === 0; + } + function ecVerify(sig, hash, pub) { + var curveId = curves[pub.data.algorithm.curve.join(".")]; + if (!curveId) + throw new Error("unknown curve " + pub.data.algorithm.curve.join(".")); + var curve = new EC(curveId); + var pubkey = pub.data.subjectPrivateKey.data; + return curve.verify(hash, sig, pubkey); + } + function dsaVerify(sig, hash, pub) { + var p6 = pub.data.p; + var q3 = pub.data.q; + var g4 = pub.data.g; + var y5 = pub.data.pub_key; + var unpacked = parseKeys.signature.decode(sig, "der"); + var s6 = unpacked.s; + var r6 = unpacked.r; + checkValue(s6, q3); + checkValue(r6, q3); + var montp = BN.mont(p6); + var w4 = s6.invm(q3); + var v5 = g4.toRed(montp).redPow(new BN(hash).mul(w4).mod(q3)).fromRed().mul(y5.toRed(montp).redPow(r6.mul(w4).mod(q3)).fromRed()).mod(p6).mod(q3); + return v5.cmp(r6) === 0; + } + function checkValue(b4, q3) { + if (b4.cmpn(0) <= 0) + throw new Error("invalid sig"); + if (b4.cmp(q3) >= q3) + throw new Error("invalid sig"); + } + exports$c$1 = verify; + return exports$c$1; +} +var exports$b$1 = {}; +var _dewExec$b$1 = false; +var _global$4$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$b$1() { + if (_dewExec$b$1) + return exports$b$1; + _dewExec$b$1 = true; + var Buffer2 = dew$1T().Buffer; + var createHash2 = dew$1F(); + var stream2 = dew$1V(); + var inherits2 = dew$f$2(); + var sign = dew$d$1(); + var verify = dew$c$1(); + var algorithms = _algorithms; + Object.keys(algorithms).forEach(function(key) { + algorithms[key].id = Buffer2.from(algorithms[key].id, "hex"); + algorithms[key.toLowerCase()] = algorithms[key]; + }); + function Sign2(algorithm) { + stream2.Writable.call(this || _global$4$1); + var data = algorithms[algorithm]; + if (!data) + throw new Error("Unknown message digest"); + (this || _global$4$1)._hashType = data.hash; + (this || _global$4$1)._hash = createHash2(data.hash); + (this || _global$4$1)._tag = data.id; + (this || _global$4$1)._signType = data.sign; + } + inherits2(Sign2, stream2.Writable); + Sign2.prototype._write = function _write(data, _4, done) { + (this || _global$4$1)._hash.update(data); + done(); + }; + Sign2.prototype.update = function update(data, enc) { + if (typeof data === "string") + data = Buffer2.from(data, enc); + (this || _global$4$1)._hash.update(data); + return this || _global$4$1; + }; + Sign2.prototype.sign = function signMethod(key, enc) { + this.end(); + var hash = (this || _global$4$1)._hash.digest(); + var sig = sign(hash, key, (this || _global$4$1)._hashType, (this || _global$4$1)._signType, (this || _global$4$1)._tag); + return enc ? sig.toString(enc) : sig; + }; + function Verify2(algorithm) { + stream2.Writable.call(this || _global$4$1); + var data = algorithms[algorithm]; + if (!data) + throw new Error("Unknown message digest"); + (this || _global$4$1)._hash = createHash2(data.hash); + (this || _global$4$1)._tag = data.id; + (this || _global$4$1)._signType = data.sign; + } + inherits2(Verify2, stream2.Writable); + Verify2.prototype._write = function _write(data, _4, done) { + (this || _global$4$1)._hash.update(data); + done(); + }; + Verify2.prototype.update = function update(data, enc) { + if (typeof data === "string") + data = Buffer2.from(data, enc); + (this || _global$4$1)._hash.update(data); + return this || _global$4$1; + }; + Verify2.prototype.verify = function verifyMethod(key, sig, enc) { + if (typeof sig === "string") + sig = Buffer2.from(sig, enc); + this.end(); + var hash = (this || _global$4$1)._hash.digest(); + return verify(sig, hash, key, (this || _global$4$1)._signType, (this || _global$4$1)._tag); + }; + function createSign2(algorithm) { + return new Sign2(algorithm); + } + function createVerify2(algorithm) { + return new Verify2(algorithm); + } + exports$b$1 = { + Sign: createSign2, + Verify: createVerify2, + createSign: createSign2, + createVerify: createVerify2 + }; + return exports$b$1; +} +var exports$a$1 = {}; +var _dewExec$a$1 = false; +var module$1$1 = { + exports: exports$a$1 +}; +var _global$3$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$a$1() { + if (_dewExec$a$1) + return module$1$1.exports; + _dewExec$a$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$3$1).negative = 0; + (this || _global$3$1).words = null; + (this || _global$3$1).length = 0; + (this || _global$3$1).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$3$1).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$3$1).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$3$1).words = [number & 67108863]; + (this || _global$3$1).length = 1; + } else if (number < 4503599627370496) { + (this || _global$3$1).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$3$1).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$3$1).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$3$1).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$3$1).words = [0]; + (this || _global$3$1).length = 1; + return this || _global$3$1; + } + (this || _global$3$1).length = Math.ceil(number.length / 3); + (this || _global$3$1).words = new Array((this || _global$3$1).length); + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + (this || _global$3$1).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$3$1).words[j4] |= w4 << off & 67108863; + (this || _global$3$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$3$1).words[j4] |= w4 << off & 67108863; + (this || _global$3$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$3$1).length = Math.ceil((number.length - start) / 6); + (this || _global$3$1).words = new Array((this || _global$3$1).length); + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + (this || _global$3$1).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$3$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$3$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$3$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$3$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$3$1).words = [0]; + (this || _global$3$1).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$3$1).words[0] + word < 67108864) { + (this || _global$3$1).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$3$1).words[0] + word < 67108864) { + (this || _global$3$1).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$3$1).length); + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + dest.words[i6] = (this || _global$3$1).words[i6]; + } + dest.length = (this || _global$3$1).length; + dest.negative = (this || _global$3$1).negative; + dest.red = (this || _global$3$1).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$3$1).length < size) { + (this || _global$3$1).words[(this || _global$3$1).length++] = 0; + } + return this || _global$3$1; + }; + BN.prototype.strip = function strip() { + while ((this || _global$3$1).length > 1 && (this || _global$3$1).words[(this || _global$3$1).length - 1] === 0) { + (this || _global$3$1).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$3$1).length === 1 && (this || _global$3$1).words[0] === 0) { + (this || _global$3$1).negative = 0; + } + return this || _global$3$1; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$3$1).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + var w4 = (this || _global$3$1).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$3$1).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$3$1).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$3$1).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$3$1).words[0]; + if ((this || _global$3$1).length === 2) { + ret += (this || _global$3$1).words[1] * 67108864; + } else if ((this || _global$3$1).length === 3 && (this || _global$3$1).words[2] === 1) { + ret += 4503599627370496 + (this || _global$3$1).words[1] * 67108864; + } else if ((this || _global$3$1).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$3$1).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$3$1).words[(this || _global$3$1).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$3$1).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + var b4 = this._zeroBits((this || _global$3$1).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$3$1).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$3$1).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$3$1).negative ^= 1; + } + return this || _global$3$1; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$3$1).length < num.length) { + (this || _global$3$1).words[(this || _global$3$1).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$3$1).words[i6] = (this || _global$3$1).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$3$1).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$3$1); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$3$1); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$3$1).length > num.length) { + b4 = num; + } else { + b4 = this || _global$3$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$3$1).words[i6] = (this || _global$3$1).words[i6] & num.words[i6]; + } + (this || _global$3$1).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$3$1).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$3$1); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$3$1); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$3$1).length > num.length) { + a6 = this || _global$3$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$3$1).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$3$1) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$3$1).words[i6] = a6.words[i6]; + } + } + (this || _global$3$1).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$3$1).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$3$1); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$3$1).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$3$1); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$3$1).words[i6] = ~(this || _global$3$1).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$3$1).words[i6] = ~(this || _global$3$1).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$3$1).words[off] = (this || _global$3$1).words[off] | 1 << wbit; + } else { + (this || _global$3$1).words[off] = (this || _global$3$1).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$3$1).negative !== 0 && num.negative === 0) { + (this || _global$3$1).negative = 0; + r6 = this.isub(num); + (this || _global$3$1).negative ^= 1; + return this._normSign(); + } else if ((this || _global$3$1).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$3$1).length > num.length) { + a6 = this || _global$3$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$3$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$3$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$3$1).length = a6.length; + if (carry !== 0) { + (this || _global$3$1).words[(this || _global$3$1).length] = carry; + (this || _global$3$1).length++; + } else if (a6 !== (this || _global$3$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$3$1).words[i6] = a6.words[i6]; + } + } + return this || _global$3$1; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$3$1).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$3$1).negative !== 0) { + (this || _global$3$1).negative = 0; + res = num.sub(this || _global$3$1); + (this || _global$3$1).negative = 1; + return res; + } + if ((this || _global$3$1).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$3$1); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$3$1).negative !== 0) { + (this || _global$3$1).negative = 0; + this.iadd(num); + (this || _global$3$1).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$3$1).negative = 0; + (this || _global$3$1).length = 1; + (this || _global$3$1).words[0] = 0; + return this || _global$3$1; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$3$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$3$1).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$3$1).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$3$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$3$1).words[i6] = a6.words[i6]; + } + } + (this || _global$3$1).length = Math.max((this || _global$3$1).length, i6); + if (a6 !== (this || _global$3$1)) { + (this || _global$3$1).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$3$1).length + num.length; + if ((this || _global$3$1).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$3$1, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$3$1, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$3$1, num, out); + } else { + res = jumboMulTo(this || _global$3$1, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$3$1).x = x4; + (this || _global$3$1).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$3$1).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$3$1).length + num.length); + return jumboMulTo(this || _global$3$1, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$3$1); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$3$1).length; i6++) { + var w4 = ((this || _global$3$1).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$3$1).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$3$1).words[i6] = carry; + (this || _global$3$1).length++; + } + return this || _global$3$1; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$3$1); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$3$1; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$3$1).length; i6++) { + var newCarry = (this || _global$3$1).words[i6] & carryMask; + var c6 = ((this || _global$3$1).words[i6] | 0) - newCarry << r6; + (this || _global$3$1).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$3$1).words[i6] = carry; + (this || _global$3$1).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$3$1).length - 1; i6 >= 0; i6--) { + (this || _global$3$1).words[i6 + s6] = (this || _global$3$1).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$3$1).words[i6] = 0; + } + (this || _global$3$1).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$3$1).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$3$1).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$3$1).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$3$1).length > s6) { + (this || _global$3$1).length -= s6; + for (i6 = 0; i6 < (this || _global$3$1).length; i6++) { + (this || _global$3$1).words[i6] = (this || _global$3$1).words[i6 + s6]; + } + } else { + (this || _global$3$1).words[0] = 0; + (this || _global$3$1).length = 1; + } + var carry = 0; + for (i6 = (this || _global$3$1).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$3$1).words[i6] | 0; + (this || _global$3$1).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$3$1).length === 0) { + (this || _global$3$1).words[0] = 0; + (this || _global$3$1).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$3$1).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$3$1).length <= s6) + return false; + var w4 = (this || _global$3$1).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$3$1).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$3$1).length <= s6) { + return this || _global$3$1; + } + if (r6 !== 0) { + s6++; + } + (this || _global$3$1).length = Math.min(s6, (this || _global$3$1).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$3$1).words[(this || _global$3$1).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$3$1).negative !== 0) { + if ((this || _global$3$1).length === 1 && ((this || _global$3$1).words[0] | 0) < num) { + (this || _global$3$1).words[0] = num - ((this || _global$3$1).words[0] | 0); + (this || _global$3$1).negative = 0; + return this || _global$3$1; + } + (this || _global$3$1).negative = 0; + this.isubn(num); + (this || _global$3$1).negative = 1; + return this || _global$3$1; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$3$1).words[0] += num; + for (var i6 = 0; i6 < (this || _global$3$1).length && (this || _global$3$1).words[i6] >= 67108864; i6++) { + (this || _global$3$1).words[i6] -= 67108864; + if (i6 === (this || _global$3$1).length - 1) { + (this || _global$3$1).words[i6 + 1] = 1; + } else { + (this || _global$3$1).words[i6 + 1]++; + } + } + (this || _global$3$1).length = Math.max((this || _global$3$1).length, i6 + 1); + return this || _global$3$1; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$3$1).negative !== 0) { + (this || _global$3$1).negative = 0; + this.iaddn(num); + (this || _global$3$1).negative = 1; + return this || _global$3$1; + } + (this || _global$3$1).words[0] -= num; + if ((this || _global$3$1).length === 1 && (this || _global$3$1).words[0] < 0) { + (this || _global$3$1).words[0] = -(this || _global$3$1).words[0]; + (this || _global$3$1).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$3$1).length && (this || _global$3$1).words[i6] < 0; i6++) { + (this || _global$3$1).words[i6] += 67108864; + (this || _global$3$1).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$3$1).negative = 0; + return this || _global$3$1; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$3$1).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$3$1).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$3$1).length - shift; i6++) { + w4 = ((this || _global$3$1).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$3$1).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$3$1).length; i6++) { + w4 = -((this || _global$3$1).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$3$1).words[i6] = w4 & 67108863; + } + (this || _global$3$1).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$3$1).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$3$1).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$3$1).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$3$1).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$3$1).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$3$1 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$3$1).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$3$1).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$3$1).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$3$1).words[i6] | 0) + carry * 67108864; + (this || _global$3$1).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$3$1; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$3$1; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$3$1).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$3$1).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$3$1).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$3$1).length <= s6) { + this._expand(s6 + 1); + (this || _global$3$1).words[s6] |= q3; + return this || _global$3$1; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$3$1).length; i6++) { + var w4 = (this || _global$3$1).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$3$1).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$3$1).words[i6] = carry; + (this || _global$3$1).length++; + } + return this || _global$3$1; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$3$1).length === 1 && (this || _global$3$1).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$3$1).negative !== 0 && !negative) + return -1; + if ((this || _global$3$1).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$3$1).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$3$1).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$3$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$3$1).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$3$1).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$3$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$3$1).length > num.length) + return 1; + if ((this || _global$3$1).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$3$1).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$3$1).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$3$1).red, "Already a number in reduction context"); + assert((this || _global$3$1).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$3$1)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$3$1).red, "fromRed works only with numbers in reduction context"); + return (this || _global$3$1).red.convertFrom(this || _global$3$1); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$3$1).red = ctx; + return this || _global$3$1; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$3$1).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$3$1).red, "redAdd works only with red numbers"); + return (this || _global$3$1).red.add(this || _global$3$1, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$3$1).red, "redIAdd works only with red numbers"); + return (this || _global$3$1).red.iadd(this || _global$3$1, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$3$1).red, "redSub works only with red numbers"); + return (this || _global$3$1).red.sub(this || _global$3$1, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$3$1).red, "redISub works only with red numbers"); + return (this || _global$3$1).red.isub(this || _global$3$1, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$3$1).red, "redShl works only with red numbers"); + return (this || _global$3$1).red.shl(this || _global$3$1, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$3$1).red, "redMul works only with red numbers"); + (this || _global$3$1).red._verify2(this || _global$3$1, num); + return (this || _global$3$1).red.mul(this || _global$3$1, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$3$1).red, "redMul works only with red numbers"); + (this || _global$3$1).red._verify2(this || _global$3$1, num); + return (this || _global$3$1).red.imul(this || _global$3$1, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$3$1).red, "redSqr works only with red numbers"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.sqr(this || _global$3$1); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$3$1).red, "redISqr works only with red numbers"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.isqr(this || _global$3$1); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$3$1).red, "redSqrt works only with red numbers"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.sqrt(this || _global$3$1); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$3$1).red, "redInvm works only with red numbers"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.invm(this || _global$3$1); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$3$1).red, "redNeg works only with red numbers"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.neg(this || _global$3$1); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$3$1).red && !num.red, "redPow(normalNum)"); + (this || _global$3$1).red._verify1(this || _global$3$1); + return (this || _global$3$1).red.pow(this || _global$3$1, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$3$1).name = name; + (this || _global$3$1).p = new BN(p6, 16); + (this || _global$3$1).n = (this || _global$3$1).p.bitLength(); + (this || _global$3$1).k = new BN(1).iushln((this || _global$3$1).n).isub((this || _global$3$1).p); + (this || _global$3$1).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$3$1).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$3$1).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$3$1).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$3$1).n); + var cmp = rlen < (this || _global$3$1).n ? -1 : r6.ucmp((this || _global$3$1).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$3$1).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$3$1).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$3$1).k); + }; + function K256() { + MPrime.call(this || _global$3$1, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$3$1, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$3$1, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$3$1, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$3$1).m = prime.p; + (this || _global$3$1).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$3$1).m = m5; + (this || _global$3$1).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$3$1).prime) + return (this || _global$3$1).prime.ireduce(a6)._forceRed(this || _global$3$1); + return a6.umod((this || _global$3$1).m)._forceRed(this || _global$3$1); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$3$1).m.sub(a6)._forceRed(this || _global$3$1); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$3$1).m) >= 0) { + res.isub((this || _global$3$1).m); + } + return res._forceRed(this || _global$3$1); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$3$1).m) >= 0) { + res.isub((this || _global$3$1).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$3$1).m); + } + return res._forceRed(this || _global$3$1); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$3$1).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$3$1).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$3$1).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$3$1).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$3$1); + var nOne = one.redNeg(); + var lpow = (this || _global$3$1).m.subn(1).iushrn(1); + var z4 = (this || _global$3$1).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$3$1); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$3$1).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$3$1); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$3$1); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$3$1).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$3$1, m5); + (this || _global$3$1).shift = (this || _global$3$1).m.bitLength(); + if ((this || _global$3$1).shift % 26 !== 0) { + (this || _global$3$1).shift += 26 - (this || _global$3$1).shift % 26; + } + (this || _global$3$1).r = new BN(1).iushln((this || _global$3$1).shift); + (this || _global$3$1).r2 = this.imod((this || _global$3$1).r.sqr()); + (this || _global$3$1).rinv = (this || _global$3$1).r._invmp((this || _global$3$1).m); + (this || _global$3$1).minv = (this || _global$3$1).rinv.mul((this || _global$3$1).r).isubn(1).div((this || _global$3$1).m); + (this || _global$3$1).minv = (this || _global$3$1).minv.umod((this || _global$3$1).r); + (this || _global$3$1).minv = (this || _global$3$1).r.sub((this || _global$3$1).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$3$1).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$3$1).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$3$1).shift).mul((this || _global$3$1).minv).imaskn((this || _global$3$1).shift).mul((this || _global$3$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$3$1).shift); + var res = u6; + if (u6.cmp((this || _global$3$1).m) >= 0) { + res = u6.isub((this || _global$3$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$3$1).m); + } + return res._forceRed(this || _global$3$1); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$3$1); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$3$1).shift).mul((this || _global$3$1).minv).imaskn((this || _global$3$1).shift).mul((this || _global$3$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$3$1).shift); + var res = u6; + if (u6.cmp((this || _global$3$1).m) >= 0) { + res = u6.isub((this || _global$3$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$3$1).m); + } + return res._forceRed(this || _global$3$1); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$3$1).m).mul((this || _global$3$1).r2)); + return res._forceRed(this || _global$3$1); + }; + })(module$1$1, exports$a$1); + return module$1$1.exports; +} +var exports$9$1 = {}; +var _dewExec$9$1 = false; +var _global$2$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$9$1() { + if (_dewExec$9$1) + return exports$9$1; + _dewExec$9$1 = true; + var Buffer2 = e$1$1.Buffer; + var elliptic = dew$y$1(); + var BN = dew$a$1(); + exports$9$1 = function createECDH2(curve) { + return new ECDH(curve); + }; + var aliases = { + secp256k1: { + name: "secp256k1", + byteLength: 32 + }, + secp224r1: { + name: "p224", + byteLength: 28 + }, + prime256v1: { + name: "p256", + byteLength: 32 + }, + prime192v1: { + name: "p192", + byteLength: 24 + }, + ed25519: { + name: "ed25519", + byteLength: 32 + }, + secp384r1: { + name: "p384", + byteLength: 48 + }, + secp521r1: { + name: "p521", + byteLength: 66 + } + }; + aliases.p224 = aliases.secp224r1; + aliases.p256 = aliases.secp256r1 = aliases.prime256v1; + aliases.p192 = aliases.secp192r1 = aliases.prime192v1; + aliases.p384 = aliases.secp384r1; + aliases.p521 = aliases.secp521r1; + function ECDH(curve) { + (this || _global$2$1).curveType = aliases[curve]; + if (!(this || _global$2$1).curveType) { + (this || _global$2$1).curveType = { + name: curve + }; + } + (this || _global$2$1).curve = new elliptic.ec((this || _global$2$1).curveType.name); + (this || _global$2$1).keys = void 0; + } + ECDH.prototype.generateKeys = function(enc, format2) { + (this || _global$2$1).keys = (this || _global$2$1).curve.genKeyPair(); + return this.getPublicKey(enc, format2); + }; + ECDH.prototype.computeSecret = function(other, inenc, enc) { + inenc = inenc || "utf8"; + if (!Buffer2.isBuffer(other)) { + other = new Buffer2(other, inenc); + } + var otherPub = (this || _global$2$1).curve.keyFromPublic(other).getPublic(); + var out = otherPub.mul((this || _global$2$1).keys.getPrivate()).getX(); + return formatReturnValue(out, enc, (this || _global$2$1).curveType.byteLength); + }; + ECDH.prototype.getPublicKey = function(enc, format2) { + var key = (this || _global$2$1).keys.getPublic(format2 === "compressed", true); + if (format2 === "hybrid") { + if (key[key.length - 1] % 2) { + key[0] = 7; + } else { + key[0] = 6; + } + } + return formatReturnValue(key, enc); + }; + ECDH.prototype.getPrivateKey = function(enc) { + return formatReturnValue((this || _global$2$1).keys.getPrivate(), enc); + }; + ECDH.prototype.setPublicKey = function(pub, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(pub)) { + pub = new Buffer2(pub, enc); + } + (this || _global$2$1).keys._importPublic(pub); + return this || _global$2$1; + }; + ECDH.prototype.setPrivateKey = function(priv, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(priv)) { + priv = new Buffer2(priv, enc); + } + var _priv = new BN(priv); + _priv = _priv.toString(16); + (this || _global$2$1).keys = (this || _global$2$1).curve.genKeyPair(); + (this || _global$2$1).keys._importPrivate(_priv); + return this || _global$2$1; + }; + function formatReturnValue(bn, enc, len) { + if (!Array.isArray(bn)) { + bn = bn.toArray(); + } + var buf = new Buffer2(bn); + if (len && buf.length < len) { + var zeros = new Buffer2(len - buf.length); + zeros.fill(0); + buf = Buffer2.concat([zeros, buf]); + } + if (!enc) { + return buf; + } else { + return buf.toString(enc); + } + } + return exports$9$1; +} +var exports$8$1 = {}; +var _dewExec$8$1 = false; +function dew$8$1() { + if (_dewExec$8$1) + return exports$8$1; + _dewExec$8$1 = true; + var createHash2 = dew$1F(); + var Buffer2 = dew$1T().Buffer; + exports$8$1 = function(seed, len) { + var t6 = Buffer2.alloc(0); + var i6 = 0; + var c6; + while (t6.length < len) { + c6 = i2ops(i6++); + t6 = Buffer2.concat([t6, createHash2("sha1").update(seed).update(c6).digest()]); + } + return t6.slice(0, len); + }; + function i2ops(c6) { + var out = Buffer2.allocUnsafe(4); + out.writeUInt32BE(c6, 0); + return out; + } + return exports$8$1; +} +var exports$7$1 = {}; +var _dewExec$7$1 = false; +function dew$7$1() { + if (_dewExec$7$1) + return exports$7$1; + _dewExec$7$1 = true; + exports$7$1 = function xor(a6, b4) { + var len = a6.length; + var i6 = -1; + while (++i6 < len) { + a6[i6] ^= b4[i6]; + } + return a6; + }; + return exports$7$1; +} +var exports$6$1 = {}; +var _dewExec$6$1 = false; +var module$8 = { + exports: exports$6$1 +}; +var _global$1$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$6$1() { + if (_dewExec$6$1) + return module$8.exports; + _dewExec$6$1 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$1$1).negative = 0; + (this || _global$1$1).words = null; + (this || _global$1$1).length = 0; + (this || _global$1$1).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = e$1$1.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$1$1).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$1$1).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$1$1).words = [number & 67108863]; + (this || _global$1$1).length = 1; + } else if (number < 4503599627370496) { + (this || _global$1$1).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$1$1).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$1$1).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$1$1).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$1$1).words = [0]; + (this || _global$1$1).length = 1; + return this || _global$1$1; + } + (this || _global$1$1).length = Math.ceil(number.length / 3); + (this || _global$1$1).words = new Array((this || _global$1$1).length); + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + (this || _global$1$1).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$1$1).words[j4] |= w4 << off & 67108863; + (this || _global$1$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$1$1).words[j4] |= w4 << off & 67108863; + (this || _global$1$1).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$1$1).length = Math.ceil((number.length - start) / 6); + (this || _global$1$1).words = new Array((this || _global$1$1).length); + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + (this || _global$1$1).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$1$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$1$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$1$1).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$1$1).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$1$1).words = [0]; + (this || _global$1$1).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$1$1).words[0] + word < 67108864) { + (this || _global$1$1).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$1$1).words[0] + word < 67108864) { + (this || _global$1$1).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$1$1).length); + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + dest.words[i6] = (this || _global$1$1).words[i6]; + } + dest.length = (this || _global$1$1).length; + dest.negative = (this || _global$1$1).negative; + dest.red = (this || _global$1$1).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$1$1).length < size) { + (this || _global$1$1).words[(this || _global$1$1).length++] = 0; + } + return this || _global$1$1; + }; + BN.prototype.strip = function strip() { + while ((this || _global$1$1).length > 1 && (this || _global$1$1).words[(this || _global$1$1).length - 1] === 0) { + (this || _global$1$1).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$1$1).length === 1 && (this || _global$1$1).words[0] === 0) { + (this || _global$1$1).negative = 0; + } + return this || _global$1$1; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$1$1).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + var w4 = (this || _global$1$1).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$1$1).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$1$1).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$1$1).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$1$1).words[0]; + if ((this || _global$1$1).length === 2) { + ret += (this || _global$1$1).words[1] * 67108864; + } else if ((this || _global$1$1).length === 3 && (this || _global$1$1).words[2] === 1) { + ret += 4503599627370496 + (this || _global$1$1).words[1] * 67108864; + } else if ((this || _global$1$1).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$1$1).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$1$1).words[(this || _global$1$1).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$1$1).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + var b4 = this._zeroBits((this || _global$1$1).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$1$1).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$1$1).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$1$1).negative ^= 1; + } + return this || _global$1$1; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$1$1).length < num.length) { + (this || _global$1$1).words[(this || _global$1$1).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$1$1).words[i6] = (this || _global$1$1).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$1$1).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$1$1); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$1$1); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$1$1).length > num.length) { + b4 = num; + } else { + b4 = this || _global$1$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$1$1).words[i6] = (this || _global$1$1).words[i6] & num.words[i6]; + } + (this || _global$1$1).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$1$1).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$1$1); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$1$1); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$1$1).length > num.length) { + a6 = this || _global$1$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$1$1; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$1$1).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$1$1) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$1$1).words[i6] = a6.words[i6]; + } + } + (this || _global$1$1).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$1$1).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$1$1); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$1$1).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$1$1); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$1$1).words[i6] = ~(this || _global$1$1).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$1$1).words[i6] = ~(this || _global$1$1).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$1$1).words[off] = (this || _global$1$1).words[off] | 1 << wbit; + } else { + (this || _global$1$1).words[off] = (this || _global$1$1).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$1$1).negative !== 0 && num.negative === 0) { + (this || _global$1$1).negative = 0; + r6 = this.isub(num); + (this || _global$1$1).negative ^= 1; + return this._normSign(); + } else if ((this || _global$1$1).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$1$1).length > num.length) { + a6 = this || _global$1$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$1$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$1$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$1$1).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$1$1).length = a6.length; + if (carry !== 0) { + (this || _global$1$1).words[(this || _global$1$1).length] = carry; + (this || _global$1$1).length++; + } else if (a6 !== (this || _global$1$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$1$1).words[i6] = a6.words[i6]; + } + } + return this || _global$1$1; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$1$1).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$1$1).negative !== 0) { + (this || _global$1$1).negative = 0; + res = num.sub(this || _global$1$1); + (this || _global$1$1).negative = 1; + return res; + } + if ((this || _global$1$1).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$1$1); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$1$1).negative !== 0) { + (this || _global$1$1).negative = 0; + this.iadd(num); + (this || _global$1$1).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$1$1).negative = 0; + (this || _global$1$1).length = 1; + (this || _global$1$1).words[0] = 0; + return this || _global$1$1; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$1$1; + b4 = num; + } else { + a6 = num; + b4 = this || _global$1$1; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$1$1).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$1$1).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$1$1)) { + for (; i6 < a6.length; i6++) { + (this || _global$1$1).words[i6] = a6.words[i6]; + } + } + (this || _global$1$1).length = Math.max((this || _global$1$1).length, i6); + if (a6 !== (this || _global$1$1)) { + (this || _global$1$1).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$1$1).length + num.length; + if ((this || _global$1$1).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$1$1, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$1$1, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$1$1, num, out); + } else { + res = jumboMulTo(this || _global$1$1, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$1$1).x = x4; + (this || _global$1$1).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$1$1).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$1$1).length + num.length); + return jumboMulTo(this || _global$1$1, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$1$1); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$1$1).length; i6++) { + var w4 = ((this || _global$1$1).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$1$1).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$1$1).words[i6] = carry; + (this || _global$1$1).length++; + } + return this || _global$1$1; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$1$1); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$1$1; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$1$1).length; i6++) { + var newCarry = (this || _global$1$1).words[i6] & carryMask; + var c6 = ((this || _global$1$1).words[i6] | 0) - newCarry << r6; + (this || _global$1$1).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$1$1).words[i6] = carry; + (this || _global$1$1).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$1$1).length - 1; i6 >= 0; i6--) { + (this || _global$1$1).words[i6 + s6] = (this || _global$1$1).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$1$1).words[i6] = 0; + } + (this || _global$1$1).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$1$1).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$1$1).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$1$1).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$1$1).length > s6) { + (this || _global$1$1).length -= s6; + for (i6 = 0; i6 < (this || _global$1$1).length; i6++) { + (this || _global$1$1).words[i6] = (this || _global$1$1).words[i6 + s6]; + } + } else { + (this || _global$1$1).words[0] = 0; + (this || _global$1$1).length = 1; + } + var carry = 0; + for (i6 = (this || _global$1$1).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$1$1).words[i6] | 0; + (this || _global$1$1).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$1$1).length === 0) { + (this || _global$1$1).words[0] = 0; + (this || _global$1$1).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$1$1).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$1$1).length <= s6) + return false; + var w4 = (this || _global$1$1).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$1$1).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$1$1).length <= s6) { + return this || _global$1$1; + } + if (r6 !== 0) { + s6++; + } + (this || _global$1$1).length = Math.min(s6, (this || _global$1$1).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$1$1).words[(this || _global$1$1).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$1$1).negative !== 0) { + if ((this || _global$1$1).length === 1 && ((this || _global$1$1).words[0] | 0) < num) { + (this || _global$1$1).words[0] = num - ((this || _global$1$1).words[0] | 0); + (this || _global$1$1).negative = 0; + return this || _global$1$1; + } + (this || _global$1$1).negative = 0; + this.isubn(num); + (this || _global$1$1).negative = 1; + return this || _global$1$1; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$1$1).words[0] += num; + for (var i6 = 0; i6 < (this || _global$1$1).length && (this || _global$1$1).words[i6] >= 67108864; i6++) { + (this || _global$1$1).words[i6] -= 67108864; + if (i6 === (this || _global$1$1).length - 1) { + (this || _global$1$1).words[i6 + 1] = 1; + } else { + (this || _global$1$1).words[i6 + 1]++; + } + } + (this || _global$1$1).length = Math.max((this || _global$1$1).length, i6 + 1); + return this || _global$1$1; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$1$1).negative !== 0) { + (this || _global$1$1).negative = 0; + this.iaddn(num); + (this || _global$1$1).negative = 1; + return this || _global$1$1; + } + (this || _global$1$1).words[0] -= num; + if ((this || _global$1$1).length === 1 && (this || _global$1$1).words[0] < 0) { + (this || _global$1$1).words[0] = -(this || _global$1$1).words[0]; + (this || _global$1$1).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$1$1).length && (this || _global$1$1).words[i6] < 0; i6++) { + (this || _global$1$1).words[i6] += 67108864; + (this || _global$1$1).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$1$1).negative = 0; + return this || _global$1$1; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$1$1).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$1$1).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$1$1).length - shift; i6++) { + w4 = ((this || _global$1$1).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$1$1).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$1$1).length; i6++) { + w4 = -((this || _global$1$1).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$1$1).words[i6] = w4 & 67108863; + } + (this || _global$1$1).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$1$1).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$1$1).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$1$1).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$1$1).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$1$1).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$1$1 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$1$1).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$1$1).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$1$1).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$1$1).words[i6] | 0) + carry * 67108864; + (this || _global$1$1).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$1$1; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$1$1; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$1$1).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$1$1).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$1$1).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$1$1).length <= s6) { + this._expand(s6 + 1); + (this || _global$1$1).words[s6] |= q3; + return this || _global$1$1; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$1$1).length; i6++) { + var w4 = (this || _global$1$1).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$1$1).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$1$1).words[i6] = carry; + (this || _global$1$1).length++; + } + return this || _global$1$1; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$1$1).length === 1 && (this || _global$1$1).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$1$1).negative !== 0 && !negative) + return -1; + if ((this || _global$1$1).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$1$1).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$1$1).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$1$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$1$1).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$1$1).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$1$1).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$1$1).length > num.length) + return 1; + if ((this || _global$1$1).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$1$1).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$1$1).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$1$1).red, "Already a number in reduction context"); + assert((this || _global$1$1).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$1$1)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$1$1).red, "fromRed works only with numbers in reduction context"); + return (this || _global$1$1).red.convertFrom(this || _global$1$1); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$1$1).red = ctx; + return this || _global$1$1; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$1$1).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$1$1).red, "redAdd works only with red numbers"); + return (this || _global$1$1).red.add(this || _global$1$1, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$1$1).red, "redIAdd works only with red numbers"); + return (this || _global$1$1).red.iadd(this || _global$1$1, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$1$1).red, "redSub works only with red numbers"); + return (this || _global$1$1).red.sub(this || _global$1$1, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$1$1).red, "redISub works only with red numbers"); + return (this || _global$1$1).red.isub(this || _global$1$1, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$1$1).red, "redShl works only with red numbers"); + return (this || _global$1$1).red.shl(this || _global$1$1, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$1$1).red, "redMul works only with red numbers"); + (this || _global$1$1).red._verify2(this || _global$1$1, num); + return (this || _global$1$1).red.mul(this || _global$1$1, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$1$1).red, "redMul works only with red numbers"); + (this || _global$1$1).red._verify2(this || _global$1$1, num); + return (this || _global$1$1).red.imul(this || _global$1$1, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$1$1).red, "redSqr works only with red numbers"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.sqr(this || _global$1$1); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$1$1).red, "redISqr works only with red numbers"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.isqr(this || _global$1$1); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$1$1).red, "redSqrt works only with red numbers"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.sqrt(this || _global$1$1); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$1$1).red, "redInvm works only with red numbers"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.invm(this || _global$1$1); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$1$1).red, "redNeg works only with red numbers"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.neg(this || _global$1$1); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$1$1).red && !num.red, "redPow(normalNum)"); + (this || _global$1$1).red._verify1(this || _global$1$1); + return (this || _global$1$1).red.pow(this || _global$1$1, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$1$1).name = name; + (this || _global$1$1).p = new BN(p6, 16); + (this || _global$1$1).n = (this || _global$1$1).p.bitLength(); + (this || _global$1$1).k = new BN(1).iushln((this || _global$1$1).n).isub((this || _global$1$1).p); + (this || _global$1$1).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$1$1).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$1$1).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$1$1).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$1$1).n); + var cmp = rlen < (this || _global$1$1).n ? -1 : r6.ucmp((this || _global$1$1).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$1$1).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$1$1).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$1$1).k); + }; + function K256() { + MPrime.call(this || _global$1$1, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$1$1, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$1$1, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$1$1, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$1$1).m = prime.p; + (this || _global$1$1).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$1$1).m = m5; + (this || _global$1$1).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$1$1).prime) + return (this || _global$1$1).prime.ireduce(a6)._forceRed(this || _global$1$1); + return a6.umod((this || _global$1$1).m)._forceRed(this || _global$1$1); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$1$1).m.sub(a6)._forceRed(this || _global$1$1); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$1$1).m) >= 0) { + res.isub((this || _global$1$1).m); + } + return res._forceRed(this || _global$1$1); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$1$1).m) >= 0) { + res.isub((this || _global$1$1).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$1$1).m); + } + return res._forceRed(this || _global$1$1); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$1$1).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$1$1).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$1$1).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$1$1).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$1$1); + var nOne = one.redNeg(); + var lpow = (this || _global$1$1).m.subn(1).iushrn(1); + var z4 = (this || _global$1$1).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$1$1); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$1$1).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$1$1); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$1$1); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$1$1).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$1$1, m5); + (this || _global$1$1).shift = (this || _global$1$1).m.bitLength(); + if ((this || _global$1$1).shift % 26 !== 0) { + (this || _global$1$1).shift += 26 - (this || _global$1$1).shift % 26; + } + (this || _global$1$1).r = new BN(1).iushln((this || _global$1$1).shift); + (this || _global$1$1).r2 = this.imod((this || _global$1$1).r.sqr()); + (this || _global$1$1).rinv = (this || _global$1$1).r._invmp((this || _global$1$1).m); + (this || _global$1$1).minv = (this || _global$1$1).rinv.mul((this || _global$1$1).r).isubn(1).div((this || _global$1$1).m); + (this || _global$1$1).minv = (this || _global$1$1).minv.umod((this || _global$1$1).r); + (this || _global$1$1).minv = (this || _global$1$1).r.sub((this || _global$1$1).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$1$1).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$1$1).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$1$1).shift).mul((this || _global$1$1).minv).imaskn((this || _global$1$1).shift).mul((this || _global$1$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$1$1).shift); + var res = u6; + if (u6.cmp((this || _global$1$1).m) >= 0) { + res = u6.isub((this || _global$1$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$1$1).m); + } + return res._forceRed(this || _global$1$1); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$1$1); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$1$1).shift).mul((this || _global$1$1).minv).imaskn((this || _global$1$1).shift).mul((this || _global$1$1).m); + var u6 = t6.isub(c6).iushrn((this || _global$1$1).shift); + var res = u6; + if (u6.cmp((this || _global$1$1).m) >= 0) { + res = u6.isub((this || _global$1$1).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$1$1).m); + } + return res._forceRed(this || _global$1$1); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$1$1).m).mul((this || _global$1$1).r2)); + return res._forceRed(this || _global$1$1); + }; + })(module$8, exports$6$1); + return module$8.exports; +} +var exports$5$1 = {}; +var _dewExec$5$1 = false; +function dew$5$1() { + if (_dewExec$5$1) + return exports$5$1; + _dewExec$5$1 = true; + var BN = dew$6$1(); + var Buffer2 = dew$1T().Buffer; + function withPublic(paddedMsg, key) { + return Buffer2.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray()); + } + exports$5$1 = withPublic; + return exports$5$1; +} +var exports$4$1 = {}; +var _dewExec$4$1 = false; +function dew$4$1() { + if (_dewExec$4$1) + return exports$4$1; + _dewExec$4$1 = true; + var parseKeys = dew$e$1(); + var randomBytes2 = dew$1S(); + var createHash2 = dew$1F(); + var mgf = dew$8$1(); + var xor = dew$7$1(); + var BN = dew$6$1(); + var withPublic = dew$5$1(); + var crt = dew$W$1(); + var Buffer2 = dew$1T().Buffer; + exports$4$1 = function publicEncrypt2(publicKey, msg, reverse) { + var padding; + if (publicKey.padding) { + padding = publicKey.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + var key = parseKeys(publicKey); + var paddedMsg; + if (padding === 4) { + paddedMsg = oaep(key, msg); + } else if (padding === 1) { + paddedMsg = pkcs1(key, msg, reverse); + } else if (padding === 3) { + paddedMsg = new BN(msg); + if (paddedMsg.cmp(key.modulus) >= 0) { + throw new Error("data too long for modulus"); + } + } else { + throw new Error("unknown padding"); + } + if (reverse) { + return crt(paddedMsg, key); + } else { + return withPublic(paddedMsg, key); + } + }; + function oaep(key, msg) { + var k4 = key.modulus.byteLength(); + var mLen = msg.length; + var iHash = createHash2("sha1").update(Buffer2.alloc(0)).digest(); + var hLen = iHash.length; + var hLen2 = 2 * hLen; + if (mLen > k4 - hLen2 - 2) { + throw new Error("message too long"); + } + var ps = Buffer2.alloc(k4 - mLen - hLen2 - 2); + var dblen = k4 - hLen - 1; + var seed = randomBytes2(hLen); + var maskedDb = xor(Buffer2.concat([iHash, ps, Buffer2.alloc(1, 1), msg], dblen), mgf(seed, dblen)); + var maskedSeed = xor(seed, mgf(maskedDb, hLen)); + return new BN(Buffer2.concat([Buffer2.alloc(1), maskedSeed, maskedDb], k4)); + } + function pkcs1(key, msg, reverse) { + var mLen = msg.length; + var k4 = key.modulus.byteLength(); + if (mLen > k4 - 11) { + throw new Error("message too long"); + } + var ps; + if (reverse) { + ps = Buffer2.alloc(k4 - mLen - 3, 255); + } else { + ps = nonZero(k4 - mLen - 3); + } + return new BN(Buffer2.concat([Buffer2.from([0, reverse ? 1 : 2]), ps, Buffer2.alloc(1), msg], k4)); + } + function nonZero(len) { + var out = Buffer2.allocUnsafe(len); + var i6 = 0; + var cache = randomBytes2(len * 2); + var cur = 0; + var num; + while (i6 < len) { + if (cur === cache.length) { + cache = randomBytes2(len * 2); + cur = 0; + } + num = cache[cur++]; + if (num) { + out[i6++] = num; + } + } + return out; + } + return exports$4$1; +} +var exports$3$1 = {}; +var _dewExec$3$1 = false; +function dew$3$1() { + if (_dewExec$3$1) + return exports$3$1; + _dewExec$3$1 = true; + var parseKeys = dew$e$1(); + var mgf = dew$8$1(); + var xor = dew$7$1(); + var BN = dew$6$1(); + var crt = dew$W$1(); + var createHash2 = dew$1F(); + var withPublic = dew$5$1(); + var Buffer2 = dew$1T().Buffer; + exports$3$1 = function privateDecrypt2(privateKey, enc, reverse) { + var padding; + if (privateKey.padding) { + padding = privateKey.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + var key = parseKeys(privateKey); + var k4 = key.modulus.byteLength(); + if (enc.length > k4 || new BN(enc).cmp(key.modulus) >= 0) { + throw new Error("decryption error"); + } + var msg; + if (reverse) { + msg = withPublic(new BN(enc), key); + } else { + msg = crt(enc, key); + } + var zBuffer = Buffer2.alloc(k4 - msg.length); + msg = Buffer2.concat([zBuffer, msg], k4); + if (padding === 4) { + return oaep(key, msg); + } else if (padding === 1) { + return pkcs1(key, msg, reverse); + } else if (padding === 3) { + return msg; + } else { + throw new Error("unknown padding"); + } + }; + function oaep(key, msg) { + var k4 = key.modulus.byteLength(); + var iHash = createHash2("sha1").update(Buffer2.alloc(0)).digest(); + var hLen = iHash.length; + if (msg[0] !== 0) { + throw new Error("decryption error"); + } + var maskedSeed = msg.slice(1, hLen + 1); + var maskedDb = msg.slice(hLen + 1); + var seed = xor(maskedSeed, mgf(maskedDb, hLen)); + var db = xor(maskedDb, mgf(seed, k4 - hLen - 1)); + if (compare(iHash, db.slice(0, hLen))) { + throw new Error("decryption error"); + } + var i6 = hLen; + while (db[i6] === 0) { + i6++; + } + if (db[i6++] !== 1) { + throw new Error("decryption error"); + } + return db.slice(i6); + } + function pkcs1(key, msg, reverse) { + var p1 = msg.slice(0, 2); + var i6 = 2; + var status = 0; + while (msg[i6++] !== 0) { + if (i6 >= msg.length) { + status++; + break; + } + } + var ps = msg.slice(2, i6 - 1); + if (p1.toString("hex") !== "0002" && !reverse || p1.toString("hex") !== "0001" && reverse) { + status++; + } + if (ps.length < 8) { + status++; + } + if (status) { + throw new Error("decryption error"); + } + return msg.slice(i6); + } + function compare(a6, b4) { + a6 = Buffer2.from(a6); + b4 = Buffer2.from(b4); + var dif = 0; + var len = a6.length; + if (a6.length !== b4.length) { + dif++; + len = Math.min(a6.length, b4.length); + } + var i6 = -1; + while (++i6 < len) { + dif += a6[i6] ^ b4[i6]; + } + return dif; + } + return exports$3$1; +} +var exports$2$12 = {}; +var _dewExec$2$12 = false; +function dew$2$12() { + if (_dewExec$2$12) + return exports$2$12; + _dewExec$2$12 = true; + exports$2$12.publicEncrypt = dew$4$1(); + exports$2$12.privateDecrypt = dew$3$1(); + exports$2$12.privateEncrypt = function privateEncrypt2(key, buf) { + return exports$2$12.publicEncrypt(key, buf, true); + }; + exports$2$12.publicDecrypt = function publicDecrypt2(key, buf) { + return exports$2$12.privateDecrypt(key, buf, true); + }; + return exports$2$12; +} +var exports$1$12 = {}; +var _dewExec$1$12 = false; +var _global$x = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$1$12() { + if (_dewExec$1$12) + return exports$1$12; + _dewExec$1$12 = true; + var process2 = T; + function oldBrowser() { + throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11"); + } + var safeBuffer = dew$1T(); + var randombytes = dew$1S(); + var Buffer2 = safeBuffer.Buffer; + var kBufferMaxLength = safeBuffer.kMaxLength; + var crypto2 = _global$x.crypto || _global$x.msCrypto; + var kMaxUint32 = Math.pow(2, 32) - 1; + function assertOffset(offset, length) { + if (typeof offset !== "number" || offset !== offset) { + throw new TypeError("offset must be a number"); + } + if (offset > kMaxUint32 || offset < 0) { + throw new TypeError("offset must be a uint32"); + } + if (offset > kBufferMaxLength || offset > length) { + throw new RangeError("offset out of range"); + } + } + function assertSize(size, offset, length) { + if (typeof size !== "number" || size !== size) { + throw new TypeError("size must be a number"); + } + if (size > kMaxUint32 || size < 0) { + throw new TypeError("size must be a uint32"); + } + if (size + offset > length || size > kBufferMaxLength) { + throw new RangeError("buffer too small"); + } + } + if (crypto2 && crypto2.getRandomValues || !process2.browser) { + exports$1$12.randomFill = randomFill2; + exports$1$12.randomFillSync = randomFillSync2; + } else { + exports$1$12.randomFill = oldBrowser; + exports$1$12.randomFillSync = oldBrowser; + } + function randomFill2(buf, offset, size, cb) { + if (!Buffer2.isBuffer(buf) && !(buf instanceof _global$x.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + if (typeof offset === "function") { + cb = offset; + offset = 0; + size = buf.length; + } else if (typeof size === "function") { + cb = size; + size = buf.length - offset; + } else if (typeof cb !== "function") { + throw new TypeError('"cb" argument must be a function'); + } + assertOffset(offset, buf.length); + assertSize(size, offset, buf.length); + return actualFill(buf, offset, size, cb); + } + function actualFill(buf, offset, size, cb) { + if (process2.browser) { + var ourBuf = buf.buffer; + var uint = new Uint8Array(ourBuf, offset, size); + crypto2.getRandomValues(uint); + if (cb) { + process2.nextTick(function() { + cb(null, buf); + }); + return; + } + return buf; + } + if (cb) { + randombytes(size, function(err, bytes2) { + if (err) { + return cb(err); + } + bytes2.copy(buf, offset); + cb(null, buf); + }); + return; + } + var bytes = randombytes(size); + bytes.copy(buf, offset); + return buf; + } + function randomFillSync2(buf, offset, size) { + if (typeof offset === "undefined") { + offset = 0; + } + if (!Buffer2.isBuffer(buf) && !(buf instanceof _global$x.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + assertOffset(offset, buf.length); + if (size === void 0) + size = buf.length - offset; + assertSize(size, offset, buf.length); + return actualFill(buf, offset, size); + } + return exports$1$12; +} +var exports$1V = {}; +var _dewExec$1U = false; +function dew$1U() { + if (_dewExec$1U) + return exports$1V; + _dewExec$1U = true; + exports$1V.randomBytes = exports$1V.rng = exports$1V.pseudoRandomBytes = exports$1V.prng = dew$1S(); + exports$1V.createHash = exports$1V.Hash = dew$1F(); + exports$1V.createHmac = exports$1V.Hmac = dew$1C(); + var algos = dew$1B(); + var algoKeys = Object.keys(algos); + var hashes = ["sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160"].concat(algoKeys); + exports$1V.getHashes = function() { + return hashes; + }; + var p6 = dew$1v(); + exports$1V.pbkdf2 = p6.pbkdf2; + exports$1V.pbkdf2Sync = p6.pbkdf2Sync; + var aes = dew$13(); + exports$1V.Cipher = aes.Cipher; + exports$1V.createCipher = aes.createCipher; + exports$1V.Cipheriv = aes.Cipheriv; + exports$1V.createCipheriv = aes.createCipheriv; + exports$1V.Decipher = aes.Decipher; + exports$1V.createDecipher = aes.createDecipher; + exports$1V.Decipheriv = aes.Decipheriv; + exports$1V.createDecipheriv = aes.createDecipheriv; + exports$1V.getCiphers = aes.getCiphers; + exports$1V.listCiphers = aes.listCiphers; + var dh = dew$Y$1(); + exports$1V.DiffieHellmanGroup = dh.DiffieHellmanGroup; + exports$1V.createDiffieHellmanGroup = dh.createDiffieHellmanGroup; + exports$1V.getDiffieHellman = dh.getDiffieHellman; + exports$1V.createDiffieHellman = dh.createDiffieHellman; + exports$1V.DiffieHellman = dh.DiffieHellman; + var sign = dew$b$1(); + exports$1V.createSign = sign.createSign; + exports$1V.Sign = sign.Sign; + exports$1V.createVerify = sign.createVerify; + exports$1V.Verify = sign.Verify; + exports$1V.createECDH = dew$9$1(); + var publicEncrypt2 = dew$2$12(); + exports$1V.publicEncrypt = publicEncrypt2.publicEncrypt; + exports$1V.privateEncrypt = publicEncrypt2.privateEncrypt; + exports$1V.publicDecrypt = publicEncrypt2.publicDecrypt; + exports$1V.privateDecrypt = publicEncrypt2.privateDecrypt; + var rf = dew$1$12(); + exports$1V.randomFill = rf.randomFill; + exports$1V.randomFillSync = rf.randomFillSync; + exports$1V.createCredentials = function() { + throw new Error(["sorry, createCredentials is not implemented yet", "we accept pull requests", "https://github.com/crypto-browserify/crypto-browserify"].join("\n")); + }; + exports$1V.constants = { + "DH_CHECK_P_NOT_SAFE_PRIME": 2, + "DH_CHECK_P_NOT_PRIME": 1, + "DH_UNABLE_TO_CHECK_GENERATOR": 4, + "DH_NOT_SUITABLE_GENERATOR": 8, + "NPN_ENABLED": 1, + "ALPN_ENABLED": 1, + "RSA_PKCS1_PADDING": 1, + "RSA_SSLV23_PADDING": 2, + "RSA_NO_PADDING": 3, + "RSA_PKCS1_OAEP_PADDING": 4, + "RSA_X931_PADDING": 5, + "RSA_PKCS1_PSS_PADDING": 6, + "POINT_CONVERSION_COMPRESSED": 2, + "POINT_CONVERSION_UNCOMPRESSED": 4, + "POINT_CONVERSION_HYBRID": 6 + }; + return exports$1V; +} +var crypto = dew$1U(); +crypto.Cipher; +crypto.Cipheriv; +crypto.Decipher; +crypto.Decipheriv; +crypto.DiffieHellman; +crypto.DiffieHellmanGroup; +crypto.Hash; +crypto.Hmac; +crypto.Sign; +crypto.Verify; +crypto.constants; +crypto.createCipher; +crypto.createCipheriv; +crypto.createCredentials; +crypto.createDecipher; +crypto.createDecipheriv; +crypto.createDiffieHellman; +crypto.createDiffieHellmanGroup; +crypto.createECDH; +crypto.createHash; +crypto.createHmac; +crypto.createSign; +crypto.createVerify; +crypto.getCiphers; +crypto.getDiffieHellman; +crypto.getHashes; +crypto.listCiphers; +crypto.pbkdf2; +crypto.pbkdf2Sync; +crypto.privateDecrypt; +crypto.privateEncrypt; +crypto.prng; +crypto.pseudoRandomBytes; +crypto.publicDecrypt; +crypto.publicEncrypt; +crypto.randomBytes; +crypto.randomFill; +crypto.randomFillSync; +crypto.rng; +var exports$12 = {}; +var _dewExec$11 = false; +var _global$a = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$11() { + if (_dewExec$11) + return exports$12; + _dewExec$11 = true; + var r6; + exports$12 = function rand(len) { + if (!r6) + r6 = new Rand(null); + return r6.generate(len); + }; + function Rand(rand) { + (this || _global$a).rand = rand; + } + exports$12.Rand = Rand; + Rand.prototype.generate = function generate(len) { + return this._rand(len); + }; + Rand.prototype._rand = function _rand(n6) { + if ((this || _global$a).rand.getBytes) + return (this || _global$a).rand.getBytes(n6); + var res = new Uint8Array(n6); + for (var i6 = 0; i6 < res.length; i6++) + res[i6] = (this || _global$a).rand.getByte(); + return res; + }; + if (typeof self === "object") { + if (self.crypto && self.crypto.getRandomValues) { + Rand.prototype._rand = function _rand(n6) { + var arr = new Uint8Array(n6); + self.crypto.getRandomValues(arr); + return arr; + }; + } else if (self.msCrypto && self.msCrypto.getRandomValues) { + Rand.prototype._rand = function _rand(n6) { + var arr = new Uint8Array(n6); + self.msCrypto.getRandomValues(arr); + return arr; + }; + } else if (typeof window === "object") { + Rand.prototype._rand = function() { + throw new Error("Not implemented yet"); + }; + } + } else { + try { + var crypto$1 = crypto; + if (typeof crypto$1.randomBytes !== "function") + throw new Error("Not supported"); + Rand.prototype._rand = function _rand(n6) { + return crypto$1.randomBytes(n6); + }; + } catch (e8) { + } + } + return exports$12; +} +var exports$11 = {}; +var _dewExec$10 = false; +var _global$9 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$10() { + if (_dewExec$10) + return exports$11; + _dewExec$10 = true; + var bn = dew$1W(); + var brorand = dew$11(); + function MillerRabin(rand) { + (this || _global$9).rand = rand || new brorand.Rand(); + } + exports$11 = MillerRabin; + MillerRabin.create = function create(rand) { + return new MillerRabin(rand); + }; + MillerRabin.prototype._randbelow = function _randbelow(n6) { + var len = n6.bitLength(); + var min_bytes = Math.ceil(len / 8); + do + var a6 = new bn((this || _global$9).rand.generate(min_bytes)); + while (a6.cmp(n6) >= 0); + return a6; + }; + MillerRabin.prototype._randrange = function _randrange(start, stop) { + var size = stop.sub(start); + return start.add(this._randbelow(size)); + }; + MillerRabin.prototype.test = function test(n6, k4, cb) { + var len = n6.bitLength(); + var red = bn.mont(n6); + var rone = new bn(1).toRed(red); + if (!k4) + k4 = Math.max(1, len / 48 | 0); + var n1 = n6.subn(1); + for (var s6 = 0; !n1.testn(s6); s6++) { + } + var d5 = n6.shrn(s6); + var rn1 = n1.toRed(red); + var prime = true; + for (; k4 > 0; k4--) { + var a6 = this._randrange(new bn(2), n1); + if (cb) + cb(a6); + var x4 = a6.toRed(red).redPow(d5); + if (x4.cmp(rone) === 0 || x4.cmp(rn1) === 0) + continue; + for (var i6 = 1; i6 < s6; i6++) { + x4 = x4.redSqr(); + if (x4.cmp(rone) === 0) + return false; + if (x4.cmp(rn1) === 0) + break; + } + if (i6 === s6) + return false; + } + return prime; + }; + MillerRabin.prototype.getDivisor = function getDivisor(n6, k4) { + var len = n6.bitLength(); + var red = bn.mont(n6); + var rone = new bn(1).toRed(red); + if (!k4) + k4 = Math.max(1, len / 48 | 0); + var n1 = n6.subn(1); + for (var s6 = 0; !n1.testn(s6); s6++) { + } + var d5 = n6.shrn(s6); + var rn1 = n1.toRed(red); + for (; k4 > 0; k4--) { + var a6 = this._randrange(new bn(2), n1); + var g4 = n6.gcd(a6); + if (g4.cmpn(1) !== 0) + return g4; + var x4 = a6.toRed(red).redPow(d5); + if (x4.cmp(rone) === 0 || x4.cmp(rn1) === 0) + continue; + for (var i6 = 1; i6 < s6; i6++) { + x4 = x4.redSqr(); + if (x4.cmp(rone) === 0) + return x4.fromRed().subn(1).gcd(n6); + if (x4.cmp(rn1) === 0) + break; + } + if (i6 === s6) { + x4 = x4.redSqr(); + return x4.fromRed().subn(1).gcd(n6); + } + } + return false; + }; + return exports$11; +} +var exports$10 = {}; +var _dewExec$$ = false; +function dew$$() { + if (_dewExec$$) + return exports$10; + _dewExec$$ = true; + var randomBytes2 = dew$2O(); + exports$10 = findPrime; + findPrime.simpleSieve = simpleSieve; + findPrime.fermatTest = fermatTest; + var BN = dew$1X(); + var TWENTYFOUR = new BN(24); + var MillerRabin = dew$10(); + var millerRabin = new MillerRabin(); + var ONE = new BN(1); + var TWO = new BN(2); + var FIVE = new BN(5); + new BN(16); + new BN(8); + var TEN = new BN(10); + var THREE = new BN(3); + new BN(7); + var ELEVEN = new BN(11); + var FOUR = new BN(4); + new BN(12); + var primes = null; + function _getPrimes() { + if (primes !== null) + return primes; + var limit = 1048576; + var res = []; + res[0] = 2; + for (var i6 = 1, k4 = 3; k4 < limit; k4 += 2) { + var sqrt = Math.ceil(Math.sqrt(k4)); + for (var j4 = 0; j4 < i6 && res[j4] <= sqrt; j4++) + if (k4 % res[j4] === 0) + break; + if (i6 !== j4 && res[j4] <= sqrt) + continue; + res[i6++] = k4; + } + primes = res; + return res; + } + function simpleSieve(p6) { + var primes2 = _getPrimes(); + for (var i6 = 0; i6 < primes2.length; i6++) + if (p6.modn(primes2[i6]) === 0) { + if (p6.cmpn(primes2[i6]) === 0) { + return true; + } else { + return false; + } + } + return true; + } + function fermatTest(p6) { + var red = BN.mont(p6); + return TWO.toRed(red).redPow(p6.subn(1)).fromRed().cmpn(1) === 0; + } + function findPrime(bits, gen) { + if (bits < 16) { + if (gen === 2 || gen === 5) { + return new BN([140, 123]); + } else { + return new BN([140, 39]); + } + } + gen = new BN(gen); + var num, n22; + while (true) { + num = new BN(randomBytes2(Math.ceil(bits / 8))); + while (num.bitLength() > bits) { + num.ishrn(1); + } + if (num.isEven()) { + num.iadd(ONE); + } + if (!num.testn(1)) { + num.iadd(TWO); + } + if (!gen.cmp(TWO)) { + while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { + num.iadd(FOUR); + } + } else if (!gen.cmp(FIVE)) { + while (num.mod(TEN).cmp(THREE)) { + num.iadd(FOUR); + } + } + n22 = num.shrn(1); + if (simpleSieve(n22) && simpleSieve(num) && fermatTest(n22) && fermatTest(num) && millerRabin.test(n22) && millerRabin.test(num)) { + return num; + } + } + } + return exports$10; +} +var _primes = { + "modp1": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff" + }, + "modp2": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff" + }, + "modp5": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff" + }, + "modp14": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff" + }, + "modp15": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff" + }, + "modp16": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff" + }, + "modp17": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff" + }, + "modp18": { + "gen": "02", + "prime": "ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff" + } +}; +var exports$$ = {}; +var _dewExec$_ = false; +var _global$8 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$_() { + if (_dewExec$_) + return exports$$; + _dewExec$_ = true; + var Buffer2 = buffer.Buffer; + var BN = dew$1X(); + var MillerRabin = dew$10(); + var millerRabin = new MillerRabin(); + var TWENTYFOUR = new BN(24); + var ELEVEN = new BN(11); + var TEN = new BN(10); + var THREE = new BN(3); + var SEVEN = new BN(7); + var primes = dew$$(); + var randomBytes2 = dew$2O(); + exports$$ = DH; + function setPublicKey(pub, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(pub)) { + pub = new Buffer2(pub, enc); + } + (this || _global$8)._pub = new BN(pub); + return this || _global$8; + } + function setPrivateKey(priv, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(priv)) { + priv = new Buffer2(priv, enc); + } + (this || _global$8)._priv = new BN(priv); + return this || _global$8; + } + var primeCache = {}; + function checkPrime(prime, generator) { + var gen = generator.toString("hex"); + var hex = [gen, prime.toString(16)].join("_"); + if (hex in primeCache) { + return primeCache[hex]; + } + var error = 0; + if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) { + error += 1; + if (gen === "02" || gen === "05") { + error += 8; + } else { + error += 4; + } + primeCache[hex] = error; + return error; + } + if (!millerRabin.test(prime.shrn(1))) { + error += 2; + } + var rem; + switch (gen) { + case "02": + if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { + error += 8; + } + break; + case "05": + rem = prime.mod(TEN); + if (rem.cmp(THREE) && rem.cmp(SEVEN)) { + error += 8; + } + break; + default: + error += 4; + } + primeCache[hex] = error; + return error; + } + function DH(prime, generator, malleable) { + this.setGenerator(generator); + (this || _global$8).__prime = new BN(prime); + (this || _global$8)._prime = BN.mont((this || _global$8).__prime); + (this || _global$8)._primeLen = prime.length; + (this || _global$8)._pub = void 0; + (this || _global$8)._priv = void 0; + (this || _global$8)._primeCode = void 0; + if (malleable) { + (this || _global$8).setPublicKey = setPublicKey; + (this || _global$8).setPrivateKey = setPrivateKey; + } else { + (this || _global$8)._primeCode = 8; + } + } + Object.defineProperty(DH.prototype, "verifyError", { + enumerable: true, + get: function() { + if (typeof (this || _global$8)._primeCode !== "number") { + (this || _global$8)._primeCode = checkPrime((this || _global$8).__prime, (this || _global$8).__gen); + } + return (this || _global$8)._primeCode; + } + }); + DH.prototype.generateKeys = function() { + if (!(this || _global$8)._priv) { + (this || _global$8)._priv = new BN(randomBytes2((this || _global$8)._primeLen)); + } + (this || _global$8)._pub = (this || _global$8)._gen.toRed((this || _global$8)._prime).redPow((this || _global$8)._priv).fromRed(); + return this.getPublicKey(); + }; + DH.prototype.computeSecret = function(other) { + other = new BN(other); + other = other.toRed((this || _global$8)._prime); + var secret = other.redPow((this || _global$8)._priv).fromRed(); + var out = new Buffer2(secret.toArray()); + var prime = this.getPrime(); + if (out.length < prime.length) { + var front = new Buffer2(prime.length - out.length); + front.fill(0); + out = Buffer2.concat([front, out]); + } + return out; + }; + DH.prototype.getPublicKey = function getPublicKey(enc) { + return formatReturnValue((this || _global$8)._pub, enc); + }; + DH.prototype.getPrivateKey = function getPrivateKey(enc) { + return formatReturnValue((this || _global$8)._priv, enc); + }; + DH.prototype.getPrime = function(enc) { + return formatReturnValue((this || _global$8).__prime, enc); + }; + DH.prototype.getGenerator = function(enc) { + return formatReturnValue((this || _global$8)._gen, enc); + }; + DH.prototype.setGenerator = function(gen, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(gen)) { + gen = new Buffer2(gen, enc); + } + (this || _global$8).__gen = gen; + (this || _global$8)._gen = new BN(gen); + return this || _global$8; + }; + function formatReturnValue(bn, enc) { + var buf = new Buffer2(bn.toArray()); + if (!enc) { + return buf; + } else { + return buf.toString(enc); + } + } + return exports$$; +} +var exports$_ = {}; +var _dewExec$Z = false; +function dew$Z() { + if (_dewExec$Z) + return exports$_; + _dewExec$Z = true; + var Buffer2 = buffer.Buffer; + var generatePrime = dew$$(); + var primes = _primes; + var DH = dew$_(); + function getDiffieHellman2(mod) { + var prime = new Buffer2(primes[mod].prime, "hex"); + var gen = new Buffer2(primes[mod].gen, "hex"); + return new DH(prime, gen); + } + var ENCODINGS = { + "binary": true, + "hex": true, + "base64": true + }; + function createDiffieHellman2(prime, enc, generator, genc) { + if (Buffer2.isBuffer(enc) || ENCODINGS[enc] === void 0) { + return createDiffieHellman2(prime, "binary", enc, generator); + } + enc = enc || "binary"; + genc = genc || "binary"; + generator = generator || new Buffer2([2]); + if (!Buffer2.isBuffer(generator)) { + generator = new Buffer2(generator, genc); + } + if (typeof prime === "number") { + return new DH(generatePrime(prime, generator), generator, true); + } + if (!Buffer2.isBuffer(prime)) { + prime = new Buffer2(prime, enc); + } + return new DH(prime, generator, true); + } + exports$_.DiffieHellmanGroup = exports$_.createDiffieHellmanGroup = exports$_.getDiffieHellman = getDiffieHellman2; + exports$_.createDiffieHellman = exports$_.DiffieHellman = createDiffieHellman2; + return exports$_; +} +var exports$Z = {}; +var _dewExec$Y = false; +function dew$Y() { + if (_dewExec$Y) + return exports$Z; + _dewExec$Y = true; + var buffer$1 = buffer; + var Buffer2 = buffer$1.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + exports$Z = buffer$1; + } else { + copyProps(buffer$1, exports$Z); + exports$Z.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer$1.SlowBuffer(size); + }; + return exports$Z; +} +var exports$Y = {}; +var _dewExec$X = false; +var module$4 = { + exports: exports$Y +}; +var _global$7 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$X() { + if (_dewExec$X) + return module$4.exports; + _dewExec$X = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$7).negative = 0; + (this || _global$7).words = null; + (this || _global$7).length = 0; + (this || _global$7).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$7).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$7).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$7).words = [number & 67108863]; + (this || _global$7).length = 1; + } else if (number < 4503599627370496) { + (this || _global$7).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$7).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$7).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$7).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$7).words = [0]; + (this || _global$7).length = 1; + return this || _global$7; + } + (this || _global$7).length = Math.ceil(number.length / 3); + (this || _global$7).words = new Array((this || _global$7).length); + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + (this || _global$7).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$7).words[j4] |= w4 << off & 67108863; + (this || _global$7).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$7).words[j4] |= w4 << off & 67108863; + (this || _global$7).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this._strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 48 && c6 <= 57) { + return c6 - 48; + } else if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + assert(false, "Invalid character in " + string); + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$7).length = Math.ceil((number.length - start) / 6); + (this || _global$7).words = new Array((this || _global$7).length); + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + (this || _global$7).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$7).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$7).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$7).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$7).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this._strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var b4 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + b4 = c6 - 49 + 10; + } else if (c6 >= 17) { + b4 = c6 - 17 + 10; + } else { + b4 = c6; + } + assert(c6 >= 0 && b4 < mul, "Invalid character"); + r6 += b4; + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$7).words = [0]; + (this || _global$7).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$7).words[0] + word < 67108864) { + (this || _global$7).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$7).words[0] + word < 67108864) { + (this || _global$7).words[0] += word; + } else { + this._iaddn(word); + } + } + this._strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$7).length); + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + dest.words[i6] = (this || _global$7).words[i6]; + } + dest.length = (this || _global$7).length; + dest.negative = (this || _global$7).negative; + dest.red = (this || _global$7).red; + }; + function move(dest, src) { + dest.words = src.words; + dest.length = src.length; + dest.negative = src.negative; + dest.red = src.red; + } + BN.prototype._move = function _move(dest) { + move(dest, this || _global$7); + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$7).length < size) { + (this || _global$7).words[(this || _global$7).length++] = 0; + } + return this || _global$7; + }; + BN.prototype._strip = function strip() { + while ((this || _global$7).length > 1 && (this || _global$7).words[(this || _global$7).length - 1] === 0) { + (this || _global$7).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$7).length === 1 && (this || _global$7).words[0] === 0) { + (this || _global$7).negative = 0; + } + return this || _global$7; + }; + if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") { + try { + BN.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect2; + } catch (e8) { + BN.prototype.inspect = inspect2; + } + } else { + BN.prototype.inspect = inspect2; + } + function inspect2() { + return ((this || _global$7).red ? ""; + } + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + var w4 = (this || _global$7).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$7).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$7).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modrn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$7).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$7).words[0]; + if ((this || _global$7).length === 2) { + ret += (this || _global$7).words[1] * 67108864; + } else if ((this || _global$7).length === 3 && (this || _global$7).words[2] === 1) { + ret += 4503599627370496 + (this || _global$7).words[1] * 67108864; + } else if ((this || _global$7).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$7).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16, 2); + }; + if (Buffer2) { + BN.prototype.toBuffer = function toBuffer(endian, length) { + return this.toArrayLike(Buffer2, endian, length); + }; + } + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + var allocate = function allocate2(ArrayType, size) { + if (ArrayType.allocUnsafe) { + return ArrayType.allocUnsafe(size); + } + return new ArrayType(size); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + this._strip(); + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + var res = allocate(ArrayType, reqLength); + var postfix = endian === "le" ? "LE" : "BE"; + this["_toArrayLike" + postfix](res, byteLength); + return res; + }; + BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { + var position = 0; + var carry = 0; + for (var i6 = 0, shift = 0; i6 < (this || _global$7).length; i6++) { + var word = (this || _global$7).words[i6] << shift | carry; + res[position++] = word & 255; + if (position < res.length) { + res[position++] = word >> 8 & 255; + } + if (position < res.length) { + res[position++] = word >> 16 & 255; + } + if (shift === 6) { + if (position < res.length) { + res[position++] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position < res.length) { + res[position++] = carry; + while (position < res.length) { + res[position++] = 0; + } + } + }; + BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { + var position = res.length - 1; + var carry = 0; + for (var i6 = 0, shift = 0; i6 < (this || _global$7).length; i6++) { + var word = (this || _global$7).words[i6] << shift | carry; + res[position--] = word & 255; + if (position >= 0) { + res[position--] = word >> 8 & 255; + } + if (position >= 0) { + res[position--] = word >> 16 & 255; + } + if (shift === 6) { + if (position >= 0) { + res[position--] = word >> 24 & 255; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + if (position >= 0) { + res[position--] = carry; + while (position >= 0) { + res[position--] = 0; + } + } + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$7).words[(this || _global$7).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$7).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = num.words[off] >>> wbit & 1; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + var b4 = this._zeroBits((this || _global$7).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$7).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$7).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$7).negative ^= 1; + } + return this || _global$7; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$7).length < num.length) { + (this || _global$7).words[(this || _global$7).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$7).words[i6] = (this || _global$7).words[i6] | num.words[i6]; + } + return this._strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$7).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$7).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$7); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$7).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$7); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$7).length > num.length) { + b4 = num; + } else { + b4 = this || _global$7; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$7).words[i6] = (this || _global$7).words[i6] & num.words[i6]; + } + (this || _global$7).length = b4.length; + return this._strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$7).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$7).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$7); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$7).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$7); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$7).length > num.length) { + a6 = this || _global$7; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$7).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$7) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$7).words[i6] = a6.words[i6]; + } + } + (this || _global$7).length = a6.length; + return this._strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$7).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$7).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$7); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$7).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$7); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$7).words[i6] = ~(this || _global$7).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$7).words[i6] = ~(this || _global$7).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this._strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$7).words[off] = (this || _global$7).words[off] | 1 << wbit; + } else { + (this || _global$7).words[off] = (this || _global$7).words[off] & ~(1 << wbit); + } + return this._strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$7).negative !== 0 && num.negative === 0) { + (this || _global$7).negative = 0; + r6 = this.isub(num); + (this || _global$7).negative ^= 1; + return this._normSign(); + } else if ((this || _global$7).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$7).length > num.length) { + a6 = this || _global$7; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$7).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$7).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$7).length = a6.length; + if (carry !== 0) { + (this || _global$7).words[(this || _global$7).length] = carry; + (this || _global$7).length++; + } else if (a6 !== (this || _global$7)) { + for (; i6 < a6.length; i6++) { + (this || _global$7).words[i6] = a6.words[i6]; + } + } + return this || _global$7; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$7).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$7).negative !== 0) { + (this || _global$7).negative = 0; + res = num.sub(this || _global$7); + (this || _global$7).negative = 1; + return res; + } + if ((this || _global$7).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$7); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$7).negative !== 0) { + (this || _global$7).negative = 0; + this.iadd(num); + (this || _global$7).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$7).negative = 0; + (this || _global$7).length = 1; + (this || _global$7).words[0] = 0; + return this || _global$7; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$7; + b4 = num; + } else { + a6 = num; + b4 = this || _global$7; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$7).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$7).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$7)) { + for (; i6 < a6.length; i6++) { + (this || _global$7).words[i6] = a6.words[i6]; + } + } + (this || _global$7).length = Math.max((this || _global$7).length, i6); + if (a6 !== (this || _global$7)) { + (this || _global$7).negative = 1; + } + return this._strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out._strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out._strip(); + } + function jumboMulTo(self2, num, out) { + return bigMulTo(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$7).length + num.length; + if ((this || _global$7).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$7, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$7, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$7, num, out); + } else { + res = jumboMulTo(this || _global$7, num, out); + } + return res; + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$7).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$7).length + num.length); + return jumboMulTo(this || _global$7, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$7); + }; + BN.prototype.imuln = function imuln(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$7).length; i6++) { + var w4 = ((this || _global$7).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$7).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$7).words[i6] = carry; + (this || _global$7).length++; + } + return isNegNum ? this.ineg() : this || _global$7; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$7); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$7; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$7).length; i6++) { + var newCarry = (this || _global$7).words[i6] & carryMask; + var c6 = ((this || _global$7).words[i6] | 0) - newCarry << r6; + (this || _global$7).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$7).words[i6] = carry; + (this || _global$7).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$7).length - 1; i6 >= 0; i6--) { + (this || _global$7).words[i6 + s6] = (this || _global$7).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$7).words[i6] = 0; + } + (this || _global$7).length += s6; + } + return this._strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$7).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$7).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$7).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$7).length > s6) { + (this || _global$7).length -= s6; + for (i6 = 0; i6 < (this || _global$7).length; i6++) { + (this || _global$7).words[i6] = (this || _global$7).words[i6 + s6]; + } + } else { + (this || _global$7).words[0] = 0; + (this || _global$7).length = 1; + } + var carry = 0; + for (i6 = (this || _global$7).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$7).words[i6] | 0; + (this || _global$7).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$7).length === 0) { + (this || _global$7).words[0] = 0; + (this || _global$7).length = 1; + } + return this._strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$7).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$7).length <= s6) + return false; + var w4 = (this || _global$7).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$7).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$7).length <= s6) { + return this || _global$7; + } + if (r6 !== 0) { + s6++; + } + (this || _global$7).length = Math.min(s6, (this || _global$7).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$7).words[(this || _global$7).length - 1] &= mask; + } + return this._strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$7).negative !== 0) { + if ((this || _global$7).length === 1 && ((this || _global$7).words[0] | 0) <= num) { + (this || _global$7).words[0] = num - ((this || _global$7).words[0] | 0); + (this || _global$7).negative = 0; + return this || _global$7; + } + (this || _global$7).negative = 0; + this.isubn(num); + (this || _global$7).negative = 1; + return this || _global$7; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$7).words[0] += num; + for (var i6 = 0; i6 < (this || _global$7).length && (this || _global$7).words[i6] >= 67108864; i6++) { + (this || _global$7).words[i6] -= 67108864; + if (i6 === (this || _global$7).length - 1) { + (this || _global$7).words[i6 + 1] = 1; + } else { + (this || _global$7).words[i6 + 1]++; + } + } + (this || _global$7).length = Math.max((this || _global$7).length, i6 + 1); + return this || _global$7; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$7).negative !== 0) { + (this || _global$7).negative = 0; + this.iaddn(num); + (this || _global$7).negative = 1; + return this || _global$7; + } + (this || _global$7).words[0] -= num; + if ((this || _global$7).length === 1 && (this || _global$7).words[0] < 0) { + (this || _global$7).words[0] = -(this || _global$7).words[0]; + (this || _global$7).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$7).length && (this || _global$7).words[i6] < 0; i6++) { + (this || _global$7).words[i6] += 67108864; + (this || _global$7).words[i6 + 1] -= 1; + } + } + return this._strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$7).negative = 0; + return this || _global$7; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$7).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$7).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$7).length - shift; i6++) { + w4 = ((this || _global$7).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$7).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this._strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$7).length; i6++) { + w4 = -((this || _global$7).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$7).words[i6] = w4 & 67108863; + } + (this || _global$7).negative = 1; + return this._strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$7).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3._strip(); + } + a6._strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$7).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$7).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$7).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$7).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$7 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modrn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modrn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modrn = function modrn(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$7).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$7).words[i6] | 0)) % num; + } + return isNegNum ? -acc : acc; + }; + BN.prototype.modn = function modn(num) { + return this.modrn(num); + }; + BN.prototype.idivn = function idivn(num) { + var isNegNum = num < 0; + if (isNegNum) + num = -num; + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$7).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$7).words[i6] | 0) + carry * 67108864; + (this || _global$7).words[i6] = w4 / num | 0; + carry = w4 % num; + } + this._strip(); + return isNegNum ? this.ineg() : this || _global$7; + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$7; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$7; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$7).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$7).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$7).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$7).length <= s6) { + this._expand(s6 + 1); + (this || _global$7).words[s6] |= q3; + return this || _global$7; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$7).length; i6++) { + var w4 = (this || _global$7).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$7).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$7).words[i6] = carry; + (this || _global$7).length++; + } + return this || _global$7; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$7).length === 1 && (this || _global$7).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$7).negative !== 0 && !negative) + return -1; + if ((this || _global$7).negative === 0 && negative) + return 1; + this._strip(); + var res; + if ((this || _global$7).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$7).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$7).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$7).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$7).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$7).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$7).length > num.length) + return 1; + if ((this || _global$7).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$7).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$7).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$7).red, "Already a number in reduction context"); + assert((this || _global$7).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$7)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$7).red, "fromRed works only with numbers in reduction context"); + return (this || _global$7).red.convertFrom(this || _global$7); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$7).red = ctx; + return this || _global$7; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$7).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$7).red, "redAdd works only with red numbers"); + return (this || _global$7).red.add(this || _global$7, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$7).red, "redIAdd works only with red numbers"); + return (this || _global$7).red.iadd(this || _global$7, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$7).red, "redSub works only with red numbers"); + return (this || _global$7).red.sub(this || _global$7, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$7).red, "redISub works only with red numbers"); + return (this || _global$7).red.isub(this || _global$7, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$7).red, "redShl works only with red numbers"); + return (this || _global$7).red.shl(this || _global$7, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$7).red, "redMul works only with red numbers"); + (this || _global$7).red._verify2(this || _global$7, num); + return (this || _global$7).red.mul(this || _global$7, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$7).red, "redMul works only with red numbers"); + (this || _global$7).red._verify2(this || _global$7, num); + return (this || _global$7).red.imul(this || _global$7, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$7).red, "redSqr works only with red numbers"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.sqr(this || _global$7); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$7).red, "redISqr works only with red numbers"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.isqr(this || _global$7); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$7).red, "redSqrt works only with red numbers"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.sqrt(this || _global$7); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$7).red, "redInvm works only with red numbers"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.invm(this || _global$7); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$7).red, "redNeg works only with red numbers"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.neg(this || _global$7); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$7).red && !num.red, "redPow(normalNum)"); + (this || _global$7).red._verify1(this || _global$7); + return (this || _global$7).red.pow(this || _global$7, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$7).name = name; + (this || _global$7).p = new BN(p6, 16); + (this || _global$7).n = (this || _global$7).p.bitLength(); + (this || _global$7).k = new BN(1).iushln((this || _global$7).n).isub((this || _global$7).p); + (this || _global$7).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$7).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$7).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$7).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$7).n); + var cmp = rlen < (this || _global$7).n ? -1 : r6.ucmp((this || _global$7).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$7).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$7).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$7).k); + }; + function K256() { + MPrime.call(this || _global$7, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$7, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$7, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$7, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$7).m = prime.p; + (this || _global$7).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$7).m = m5; + (this || _global$7).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$7).prime) + return (this || _global$7).prime.ireduce(a6)._forceRed(this || _global$7); + move(a6, a6.umod((this || _global$7).m)._forceRed(this || _global$7)); + return a6; + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$7).m.sub(a6)._forceRed(this || _global$7); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$7).m) >= 0) { + res.isub((this || _global$7).m); + } + return res._forceRed(this || _global$7); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$7).m) >= 0) { + res.isub((this || _global$7).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$7).m); + } + return res._forceRed(this || _global$7); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$7).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$7).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$7).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$7).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$7); + var nOne = one.redNeg(); + var lpow = (this || _global$7).m.subn(1).iushrn(1); + var z4 = (this || _global$7).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$7); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$7).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$7); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$7); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$7).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$7, m5); + (this || _global$7).shift = (this || _global$7).m.bitLength(); + if ((this || _global$7).shift % 26 !== 0) { + (this || _global$7).shift += 26 - (this || _global$7).shift % 26; + } + (this || _global$7).r = new BN(1).iushln((this || _global$7).shift); + (this || _global$7).r2 = this.imod((this || _global$7).r.sqr()); + (this || _global$7).rinv = (this || _global$7).r._invmp((this || _global$7).m); + (this || _global$7).minv = (this || _global$7).rinv.mul((this || _global$7).r).isubn(1).div((this || _global$7).m); + (this || _global$7).minv = (this || _global$7).minv.umod((this || _global$7).r); + (this || _global$7).minv = (this || _global$7).r.sub((this || _global$7).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$7).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$7).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$7).shift).mul((this || _global$7).minv).imaskn((this || _global$7).shift).mul((this || _global$7).m); + var u6 = t6.isub(c6).iushrn((this || _global$7).shift); + var res = u6; + if (u6.cmp((this || _global$7).m) >= 0) { + res = u6.isub((this || _global$7).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$7).m); + } + return res._forceRed(this || _global$7); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$7); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$7).shift).mul((this || _global$7).minv).imaskn((this || _global$7).shift).mul((this || _global$7).m); + var u6 = t6.isub(c6).iushrn((this || _global$7).shift); + var res = u6; + if (u6.cmp((this || _global$7).m) >= 0) { + res = u6.isub((this || _global$7).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$7).m); + } + return res._forceRed(this || _global$7); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$7).m).mul((this || _global$7).r2)); + return res._forceRed(this || _global$7); + }; + })(module$4, exports$Y); + return module$4.exports; +} +var exports$X = {}; +var _dewExec$W = false; +function dew$W() { + if (_dewExec$W) + return exports$X; + _dewExec$W = true; + var Buffer2 = buffer.Buffer; + var BN = dew$X(); + var randomBytes2 = dew$2O(); + function blind(priv) { + var r6 = getr(priv); + var blinder = r6.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed(); + return { + blinder, + unblinder: r6.invm(priv.modulus) + }; + } + function getr(priv) { + var len = priv.modulus.byteLength(); + var r6; + do { + r6 = new BN(randomBytes2(len)); + } while (r6.cmp(priv.modulus) >= 0 || !r6.umod(priv.prime1) || !r6.umod(priv.prime2)); + return r6; + } + function crt(msg, priv) { + var blinds = blind(priv); + var len = priv.modulus.byteLength(); + var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus); + var c1 = blinded.toRed(BN.mont(priv.prime1)); + var c22 = blinded.toRed(BN.mont(priv.prime2)); + var qinv = priv.coefficient; + var p6 = priv.prime1; + var q3 = priv.prime2; + var m1 = c1.redPow(priv.exponent1).fromRed(); + var m22 = c22.redPow(priv.exponent2).fromRed(); + var h6 = m1.isub(m22).imul(qinv).umod(p6).imul(q3); + return m22.iadd(h6).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer2, "be", len); + } + crt.getr = getr; + exports$X = crt; + return exports$X; +} +var _package = { + "name": "elliptic", + "version": "6.5.4", + "description": "EC cryptography", + "main": "lib/elliptic.js", + "files": [ + "lib" + ], + "scripts": { + "lint": "eslint lib test", + "lint:fix": "npm run lint -- --fix", + "unit": "istanbul test _mocha --reporter=spec test/index.js", + "test": "npm run lint && npm run unit", + "version": "grunt dist && git add dist/" + }, + "repository": { + "type": "git", + "url": "git@github.com:indutny/elliptic" + }, + "keywords": [ + "EC", + "Elliptic", + "curve", + "Cryptography" + ], + "author": "Fedor Indutny ", + "license": "MIT", + "bugs": { + "url": "https://github.com/indutny/elliptic/issues" + }, + "homepage": "https://github.com/indutny/elliptic", + "devDependencies": { + "brfs": "^2.0.2", + "coveralls": "^3.1.0", + "eslint": "^7.6.0", + "grunt": "^1.2.1", + "grunt-browserify": "^5.3.0", + "grunt-cli": "^1.3.2", + "grunt-contrib-connect": "^3.0.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-uglify": "^5.0.0", + "grunt-mocha-istanbul": "^5.0.2", + "grunt-saucelabs": "^9.0.1", + "istanbul": "^0.4.5", + "mocha": "^8.0.1" + }, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } +}; +var exports$W = {}; +var _dewExec$V = false; +var module$3 = { + exports: exports$W +}; +var _global$6 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$V() { + if (_dewExec$V) + return module$3.exports; + _dewExec$V = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$6).negative = 0; + (this || _global$6).words = null; + (this || _global$6).length = 0; + (this || _global$6).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$6).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$6).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$6).words = [number & 67108863]; + (this || _global$6).length = 1; + } else if (number < 4503599627370496) { + (this || _global$6).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$6).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$6).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$6).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$6).words = [0]; + (this || _global$6).length = 1; + return this || _global$6; + } + (this || _global$6).length = Math.ceil(number.length / 3); + (this || _global$6).words = new Array((this || _global$6).length); + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + (this || _global$6).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$6).words[j4] |= w4 << off & 67108863; + (this || _global$6).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$6).words[j4] |= w4 << off & 67108863; + (this || _global$6).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$6).length = Math.ceil((number.length - start) / 6); + (this || _global$6).words = new Array((this || _global$6).length); + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + (this || _global$6).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$6).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$6).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$6).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$6).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$6).words = [0]; + (this || _global$6).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$6).words[0] + word < 67108864) { + (this || _global$6).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$6).words[0] + word < 67108864) { + (this || _global$6).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$6).length); + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + dest.words[i6] = (this || _global$6).words[i6]; + } + dest.length = (this || _global$6).length; + dest.negative = (this || _global$6).negative; + dest.red = (this || _global$6).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$6).length < size) { + (this || _global$6).words[(this || _global$6).length++] = 0; + } + return this || _global$6; + }; + BN.prototype.strip = function strip() { + while ((this || _global$6).length > 1 && (this || _global$6).words[(this || _global$6).length - 1] === 0) { + (this || _global$6).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$6).length === 1 && (this || _global$6).words[0] === 0) { + (this || _global$6).negative = 0; + } + return this || _global$6; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$6).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + var w4 = (this || _global$6).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$6).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$6).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$6).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$6).words[0]; + if ((this || _global$6).length === 2) { + ret += (this || _global$6).words[1] * 67108864; + } else if ((this || _global$6).length === 3 && (this || _global$6).words[2] === 1) { + ret += 4503599627370496 + (this || _global$6).words[1] * 67108864; + } else if ((this || _global$6).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$6).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$6).words[(this || _global$6).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$6).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + var b4 = this._zeroBits((this || _global$6).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$6).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$6).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$6).negative ^= 1; + } + return this || _global$6; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$6).length < num.length) { + (this || _global$6).words[(this || _global$6).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$6).words[i6] = (this || _global$6).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$6).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$6).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$6); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$6).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$6); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$6).length > num.length) { + b4 = num; + } else { + b4 = this || _global$6; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$6).words[i6] = (this || _global$6).words[i6] & num.words[i6]; + } + (this || _global$6).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$6).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$6).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$6); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$6).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$6); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$6).length > num.length) { + a6 = this || _global$6; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$6).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$6) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$6).words[i6] = a6.words[i6]; + } + } + (this || _global$6).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$6).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$6).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$6); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$6).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$6); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$6).words[i6] = ~(this || _global$6).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$6).words[i6] = ~(this || _global$6).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$6).words[off] = (this || _global$6).words[off] | 1 << wbit; + } else { + (this || _global$6).words[off] = (this || _global$6).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$6).negative !== 0 && num.negative === 0) { + (this || _global$6).negative = 0; + r6 = this.isub(num); + (this || _global$6).negative ^= 1; + return this._normSign(); + } else if ((this || _global$6).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$6).length > num.length) { + a6 = this || _global$6; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$6).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$6).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$6).length = a6.length; + if (carry !== 0) { + (this || _global$6).words[(this || _global$6).length] = carry; + (this || _global$6).length++; + } else if (a6 !== (this || _global$6)) { + for (; i6 < a6.length; i6++) { + (this || _global$6).words[i6] = a6.words[i6]; + } + } + return this || _global$6; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$6).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$6).negative !== 0) { + (this || _global$6).negative = 0; + res = num.sub(this || _global$6); + (this || _global$6).negative = 1; + return res; + } + if ((this || _global$6).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$6); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$6).negative !== 0) { + (this || _global$6).negative = 0; + this.iadd(num); + (this || _global$6).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$6).negative = 0; + (this || _global$6).length = 1; + (this || _global$6).words[0] = 0; + return this || _global$6; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$6; + b4 = num; + } else { + a6 = num; + b4 = this || _global$6; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$6).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$6).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$6)) { + for (; i6 < a6.length; i6++) { + (this || _global$6).words[i6] = a6.words[i6]; + } + } + (this || _global$6).length = Math.max((this || _global$6).length, i6); + if (a6 !== (this || _global$6)) { + (this || _global$6).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$6).length + num.length; + if ((this || _global$6).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$6, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$6, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$6, num, out); + } else { + res = jumboMulTo(this || _global$6, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$6).x = x4; + (this || _global$6).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$6).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$6).length + num.length); + return jumboMulTo(this || _global$6, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$6); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$6).length; i6++) { + var w4 = ((this || _global$6).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$6).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$6).words[i6] = carry; + (this || _global$6).length++; + } + return this || _global$6; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$6); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$6; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$6).length; i6++) { + var newCarry = (this || _global$6).words[i6] & carryMask; + var c6 = ((this || _global$6).words[i6] | 0) - newCarry << r6; + (this || _global$6).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$6).words[i6] = carry; + (this || _global$6).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$6).length - 1; i6 >= 0; i6--) { + (this || _global$6).words[i6 + s6] = (this || _global$6).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$6).words[i6] = 0; + } + (this || _global$6).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$6).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$6).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$6).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$6).length > s6) { + (this || _global$6).length -= s6; + for (i6 = 0; i6 < (this || _global$6).length; i6++) { + (this || _global$6).words[i6] = (this || _global$6).words[i6 + s6]; + } + } else { + (this || _global$6).words[0] = 0; + (this || _global$6).length = 1; + } + var carry = 0; + for (i6 = (this || _global$6).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$6).words[i6] | 0; + (this || _global$6).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$6).length === 0) { + (this || _global$6).words[0] = 0; + (this || _global$6).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$6).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$6).length <= s6) + return false; + var w4 = (this || _global$6).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$6).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$6).length <= s6) { + return this || _global$6; + } + if (r6 !== 0) { + s6++; + } + (this || _global$6).length = Math.min(s6, (this || _global$6).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$6).words[(this || _global$6).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$6).negative !== 0) { + if ((this || _global$6).length === 1 && ((this || _global$6).words[0] | 0) < num) { + (this || _global$6).words[0] = num - ((this || _global$6).words[0] | 0); + (this || _global$6).negative = 0; + return this || _global$6; + } + (this || _global$6).negative = 0; + this.isubn(num); + (this || _global$6).negative = 1; + return this || _global$6; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$6).words[0] += num; + for (var i6 = 0; i6 < (this || _global$6).length && (this || _global$6).words[i6] >= 67108864; i6++) { + (this || _global$6).words[i6] -= 67108864; + if (i6 === (this || _global$6).length - 1) { + (this || _global$6).words[i6 + 1] = 1; + } else { + (this || _global$6).words[i6 + 1]++; + } + } + (this || _global$6).length = Math.max((this || _global$6).length, i6 + 1); + return this || _global$6; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$6).negative !== 0) { + (this || _global$6).negative = 0; + this.iaddn(num); + (this || _global$6).negative = 1; + return this || _global$6; + } + (this || _global$6).words[0] -= num; + if ((this || _global$6).length === 1 && (this || _global$6).words[0] < 0) { + (this || _global$6).words[0] = -(this || _global$6).words[0]; + (this || _global$6).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$6).length && (this || _global$6).words[i6] < 0; i6++) { + (this || _global$6).words[i6] += 67108864; + (this || _global$6).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$6).negative = 0; + return this || _global$6; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$6).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$6).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$6).length - shift; i6++) { + w4 = ((this || _global$6).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$6).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$6).length; i6++) { + w4 = -((this || _global$6).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$6).words[i6] = w4 & 67108863; + } + (this || _global$6).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$6).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$6).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$6).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$6).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$6).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$6 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$6).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$6).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$6).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$6).words[i6] | 0) + carry * 67108864; + (this || _global$6).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$6; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$6; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$6).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$6).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$6).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$6).length <= s6) { + this._expand(s6 + 1); + (this || _global$6).words[s6] |= q3; + return this || _global$6; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$6).length; i6++) { + var w4 = (this || _global$6).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$6).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$6).words[i6] = carry; + (this || _global$6).length++; + } + return this || _global$6; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$6).length === 1 && (this || _global$6).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$6).negative !== 0 && !negative) + return -1; + if ((this || _global$6).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$6).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$6).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$6).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$6).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$6).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$6).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$6).length > num.length) + return 1; + if ((this || _global$6).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$6).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$6).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$6).red, "Already a number in reduction context"); + assert((this || _global$6).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$6)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$6).red, "fromRed works only with numbers in reduction context"); + return (this || _global$6).red.convertFrom(this || _global$6); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$6).red = ctx; + return this || _global$6; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$6).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$6).red, "redAdd works only with red numbers"); + return (this || _global$6).red.add(this || _global$6, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$6).red, "redIAdd works only with red numbers"); + return (this || _global$6).red.iadd(this || _global$6, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$6).red, "redSub works only with red numbers"); + return (this || _global$6).red.sub(this || _global$6, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$6).red, "redISub works only with red numbers"); + return (this || _global$6).red.isub(this || _global$6, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$6).red, "redShl works only with red numbers"); + return (this || _global$6).red.shl(this || _global$6, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$6).red, "redMul works only with red numbers"); + (this || _global$6).red._verify2(this || _global$6, num); + return (this || _global$6).red.mul(this || _global$6, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$6).red, "redMul works only with red numbers"); + (this || _global$6).red._verify2(this || _global$6, num); + return (this || _global$6).red.imul(this || _global$6, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$6).red, "redSqr works only with red numbers"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.sqr(this || _global$6); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$6).red, "redISqr works only with red numbers"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.isqr(this || _global$6); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$6).red, "redSqrt works only with red numbers"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.sqrt(this || _global$6); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$6).red, "redInvm works only with red numbers"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.invm(this || _global$6); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$6).red, "redNeg works only with red numbers"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.neg(this || _global$6); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$6).red && !num.red, "redPow(normalNum)"); + (this || _global$6).red._verify1(this || _global$6); + return (this || _global$6).red.pow(this || _global$6, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$6).name = name; + (this || _global$6).p = new BN(p6, 16); + (this || _global$6).n = (this || _global$6).p.bitLength(); + (this || _global$6).k = new BN(1).iushln((this || _global$6).n).isub((this || _global$6).p); + (this || _global$6).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$6).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$6).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$6).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$6).n); + var cmp = rlen < (this || _global$6).n ? -1 : r6.ucmp((this || _global$6).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$6).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$6).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$6).k); + }; + function K256() { + MPrime.call(this || _global$6, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$6, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$6, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$6, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$6).m = prime.p; + (this || _global$6).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$6).m = m5; + (this || _global$6).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$6).prime) + return (this || _global$6).prime.ireduce(a6)._forceRed(this || _global$6); + return a6.umod((this || _global$6).m)._forceRed(this || _global$6); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$6).m.sub(a6)._forceRed(this || _global$6); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$6).m) >= 0) { + res.isub((this || _global$6).m); + } + return res._forceRed(this || _global$6); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$6).m) >= 0) { + res.isub((this || _global$6).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$6).m); + } + return res._forceRed(this || _global$6); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$6).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$6).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$6).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$6).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$6); + var nOne = one.redNeg(); + var lpow = (this || _global$6).m.subn(1).iushrn(1); + var z4 = (this || _global$6).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$6); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$6).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$6); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$6); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$6).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$6, m5); + (this || _global$6).shift = (this || _global$6).m.bitLength(); + if ((this || _global$6).shift % 26 !== 0) { + (this || _global$6).shift += 26 - (this || _global$6).shift % 26; + } + (this || _global$6).r = new BN(1).iushln((this || _global$6).shift); + (this || _global$6).r2 = this.imod((this || _global$6).r.sqr()); + (this || _global$6).rinv = (this || _global$6).r._invmp((this || _global$6).m); + (this || _global$6).minv = (this || _global$6).rinv.mul((this || _global$6).r).isubn(1).div((this || _global$6).m); + (this || _global$6).minv = (this || _global$6).minv.umod((this || _global$6).r); + (this || _global$6).minv = (this || _global$6).r.sub((this || _global$6).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$6).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$6).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$6).shift).mul((this || _global$6).minv).imaskn((this || _global$6).shift).mul((this || _global$6).m); + var u6 = t6.isub(c6).iushrn((this || _global$6).shift); + var res = u6; + if (u6.cmp((this || _global$6).m) >= 0) { + res = u6.isub((this || _global$6).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$6).m); + } + return res._forceRed(this || _global$6); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$6); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$6).shift).mul((this || _global$6).minv).imaskn((this || _global$6).shift).mul((this || _global$6).m); + var u6 = t6.isub(c6).iushrn((this || _global$6).shift); + var res = u6; + if (u6.cmp((this || _global$6).m) >= 0) { + res = u6.isub((this || _global$6).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$6).m); + } + return res._forceRed(this || _global$6); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$6).m).mul((this || _global$6).r2)); + return res._forceRed(this || _global$6); + }; + })(module$3, exports$W); + return module$3.exports; +} +var exports$V = {}; +var _dewExec$U = false; +function dew$U() { + if (_dewExec$U) + return exports$V; + _dewExec$U = true; + var utils = exports$V; + function toArray(msg, enc) { + if (Array.isArray(msg)) + return msg.slice(); + if (!msg) + return []; + var res = []; + if (typeof msg !== "string") { + for (var i6 = 0; i6 < msg.length; i6++) + res[i6] = msg[i6] | 0; + return res; + } + if (enc === "hex") { + msg = msg.replace(/[^a-z0-9]+/ig, ""); + if (msg.length % 2 !== 0) + msg = "0" + msg; + for (var i6 = 0; i6 < msg.length; i6 += 2) + res.push(parseInt(msg[i6] + msg[i6 + 1], 16)); + } else { + for (var i6 = 0; i6 < msg.length; i6++) { + var c6 = msg.charCodeAt(i6); + var hi = c6 >> 8; + var lo = c6 & 255; + if (hi) + res.push(hi, lo); + else + res.push(lo); + } + } + return res; + } + utils.toArray = toArray; + function zero2(word) { + if (word.length === 1) + return "0" + word; + else + return word; + } + utils.zero2 = zero2; + function toHex(msg) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) + res += zero2(msg[i6].toString(16)); + return res; + } + utils.toHex = toHex; + utils.encode = function encode(arr, enc) { + if (enc === "hex") + return toHex(arr); + else + return arr; + }; + return exports$V; +} +var exports$U = {}; +var _dewExec$T = false; +function dew$T() { + if (_dewExec$T) + return exports$U; + _dewExec$T = true; + var utils = exports$U; + var BN = dew$V(); + var minAssert = dew$2m(); + var minUtils = dew$U(); + utils.assert = minAssert; + utils.toArray = minUtils.toArray; + utils.zero2 = minUtils.zero2; + utils.toHex = minUtils.toHex; + utils.encode = minUtils.encode; + function getNAF(num, w4, bits) { + var naf = new Array(Math.max(num.bitLength(), bits) + 1); + naf.fill(0); + var ws = 1 << w4 + 1; + var k4 = num.clone(); + for (var i6 = 0; i6 < naf.length; i6++) { + var z4; + var mod = k4.andln(ws - 1); + if (k4.isOdd()) { + if (mod > (ws >> 1) - 1) + z4 = (ws >> 1) - mod; + else + z4 = mod; + k4.isubn(z4); + } else { + z4 = 0; + } + naf[i6] = z4; + k4.iushrn(1); + } + return naf; + } + utils.getNAF = getNAF; + function getJSF(k1, k22) { + var jsf = [[], []]; + k1 = k1.clone(); + k22 = k22.clone(); + var d1 = 0; + var d22 = 0; + var m8; + while (k1.cmpn(-d1) > 0 || k22.cmpn(-d22) > 0) { + var m14 = k1.andln(3) + d1 & 3; + var m24 = k22.andln(3) + d22 & 3; + if (m14 === 3) + m14 = -1; + if (m24 === 3) + m24 = -1; + var u1; + if ((m14 & 1) === 0) { + u1 = 0; + } else { + m8 = k1.andln(7) + d1 & 7; + if ((m8 === 3 || m8 === 5) && m24 === 2) + u1 = -m14; + else + u1 = m14; + } + jsf[0].push(u1); + var u22; + if ((m24 & 1) === 0) { + u22 = 0; + } else { + m8 = k22.andln(7) + d22 & 7; + if ((m8 === 3 || m8 === 5) && m14 === 2) + u22 = -m24; + else + u22 = m24; + } + jsf[1].push(u22); + if (2 * d1 === u1 + 1) + d1 = 1 - d1; + if (2 * d22 === u22 + 1) + d22 = 1 - d22; + k1.iushrn(1); + k22.iushrn(1); + } + return jsf; + } + utils.getJSF = getJSF; + function cachedProperty(obj, name, computer) { + var key = "_" + name; + obj.prototype[name] = function cachedProperty2() { + return this[key] !== void 0 ? this[key] : this[key] = computer.call(this); + }; + } + utils.cachedProperty = cachedProperty; + function parseBytes(bytes) { + return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes; + } + utils.parseBytes = parseBytes; + function intFromLE(bytes) { + return new BN(bytes, "hex", "le"); + } + utils.intFromLE = intFromLE; + return exports$U; +} +var exports$T = {}; +var _dewExec$S = false; +function dew$S() { + if (_dewExec$S) + return exports$T; + _dewExec$S = true; + var BN = dew$V(); + var utils = dew$T(); + var getNAF = utils.getNAF; + var getJSF = utils.getJSF; + var assert = utils.assert; + function BaseCurve(type, conf) { + this.type = type; + this.p = new BN(conf.p, 16); + this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); + this.zero = new BN(0).toRed(this.red); + this.one = new BN(1).toRed(this.red); + this.two = new BN(2).toRed(this.red); + this.n = conf.n && new BN(conf.n, 16); + this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); + this._wnafT1 = new Array(4); + this._wnafT2 = new Array(4); + this._wnafT3 = new Array(4); + this._wnafT4 = new Array(4); + this._bitLength = this.n ? this.n.bitLength() : 0; + var adjustCount = this.n && this.p.div(this.n); + if (!adjustCount || adjustCount.cmpn(100) > 0) { + this.redN = null; + } else { + this._maxwellTrick = true; + this.redN = this.n.toRed(this.red); + } + } + exports$T = BaseCurve; + BaseCurve.prototype.point = function point() { + throw new Error("Not implemented"); + }; + BaseCurve.prototype.validate = function validate() { + throw new Error("Not implemented"); + }; + BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p6, k4) { + assert(p6.precomputed); + var doubles = p6._getDoubles(); + var naf = getNAF(k4, 1, this._bitLength); + var I4 = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1); + I4 /= 3; + var repr = []; + var j4; + var nafW; + for (j4 = 0; j4 < naf.length; j4 += doubles.step) { + nafW = 0; + for (var l6 = j4 + doubles.step - 1; l6 >= j4; l6--) + nafW = (nafW << 1) + naf[l6]; + repr.push(nafW); + } + var a6 = this.jpoint(null, null, null); + var b4 = this.jpoint(null, null, null); + for (var i6 = I4; i6 > 0; i6--) { + for (j4 = 0; j4 < repr.length; j4++) { + nafW = repr[j4]; + if (nafW === i6) + b4 = b4.mixedAdd(doubles.points[j4]); + else if (nafW === -i6) + b4 = b4.mixedAdd(doubles.points[j4].neg()); + } + a6 = a6.add(b4); + } + return a6.toP(); + }; + BaseCurve.prototype._wnafMul = function _wnafMul(p6, k4) { + var w4 = 4; + var nafPoints = p6._getNAFPoints(w4); + w4 = nafPoints.wnd; + var wnd = nafPoints.points; + var naf = getNAF(k4, w4, this._bitLength); + var acc = this.jpoint(null, null, null); + for (var i6 = naf.length - 1; i6 >= 0; i6--) { + for (var l6 = 0; i6 >= 0 && naf[i6] === 0; i6--) + l6++; + if (i6 >= 0) + l6++; + acc = acc.dblp(l6); + if (i6 < 0) + break; + var z4 = naf[i6]; + assert(z4 !== 0); + if (p6.type === "affine") { + if (z4 > 0) + acc = acc.mixedAdd(wnd[z4 - 1 >> 1]); + else + acc = acc.mixedAdd(wnd[-z4 - 1 >> 1].neg()); + } else { + if (z4 > 0) + acc = acc.add(wnd[z4 - 1 >> 1]); + else + acc = acc.add(wnd[-z4 - 1 >> 1].neg()); + } + } + return p6.type === "affine" ? acc.toP() : acc; + }; + BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { + var wndWidth = this._wnafT1; + var wnd = this._wnafT2; + var naf = this._wnafT3; + var max = 0; + var i6; + var j4; + var p6; + for (i6 = 0; i6 < len; i6++) { + p6 = points[i6]; + var nafPoints = p6._getNAFPoints(defW); + wndWidth[i6] = nafPoints.wnd; + wnd[i6] = nafPoints.points; + } + for (i6 = len - 1; i6 >= 1; i6 -= 2) { + var a6 = i6 - 1; + var b4 = i6; + if (wndWidth[a6] !== 1 || wndWidth[b4] !== 1) { + naf[a6] = getNAF(coeffs[a6], wndWidth[a6], this._bitLength); + naf[b4] = getNAF(coeffs[b4], wndWidth[b4], this._bitLength); + max = Math.max(naf[a6].length, max); + max = Math.max(naf[b4].length, max); + continue; + } + var comb = [ + points[a6], + /* 1 */ + null, + /* 3 */ + null, + /* 5 */ + points[b4] + /* 7 */ + ]; + if (points[a6].y.cmp(points[b4].y) === 0) { + comb[1] = points[a6].add(points[b4]); + comb[2] = points[a6].toJ().mixedAdd(points[b4].neg()); + } else if (points[a6].y.cmp(points[b4].y.redNeg()) === 0) { + comb[1] = points[a6].toJ().mixedAdd(points[b4]); + comb[2] = points[a6].add(points[b4].neg()); + } else { + comb[1] = points[a6].toJ().mixedAdd(points[b4]); + comb[2] = points[a6].toJ().mixedAdd(points[b4].neg()); + } + var index = [ + -3, + /* -1 -1 */ + -1, + /* -1 0 */ + -5, + /* -1 1 */ + -7, + /* 0 -1 */ + 0, + /* 0 0 */ + 7, + /* 0 1 */ + 5, + /* 1 -1 */ + 1, + /* 1 0 */ + 3 + /* 1 1 */ + ]; + var jsf = getJSF(coeffs[a6], coeffs[b4]); + max = Math.max(jsf[0].length, max); + naf[a6] = new Array(max); + naf[b4] = new Array(max); + for (j4 = 0; j4 < max; j4++) { + var ja = jsf[0][j4] | 0; + var jb = jsf[1][j4] | 0; + naf[a6][j4] = index[(ja + 1) * 3 + (jb + 1)]; + naf[b4][j4] = 0; + wnd[a6] = comb; + } + } + var acc = this.jpoint(null, null, null); + var tmp = this._wnafT4; + for (i6 = max; i6 >= 0; i6--) { + var k4 = 0; + while (i6 >= 0) { + var zero = true; + for (j4 = 0; j4 < len; j4++) { + tmp[j4] = naf[j4][i6] | 0; + if (tmp[j4] !== 0) + zero = false; + } + if (!zero) + break; + k4++; + i6--; + } + if (i6 >= 0) + k4++; + acc = acc.dblp(k4); + if (i6 < 0) + break; + for (j4 = 0; j4 < len; j4++) { + var z4 = tmp[j4]; + if (z4 === 0) + continue; + else if (z4 > 0) + p6 = wnd[j4][z4 - 1 >> 1]; + else if (z4 < 0) + p6 = wnd[j4][-z4 - 1 >> 1].neg(); + if (p6.type === "affine") + acc = acc.mixedAdd(p6); + else + acc = acc.add(p6); + } + } + for (i6 = 0; i6 < len; i6++) + wnd[i6] = null; + if (jacobianResult) + return acc; + else + return acc.toP(); + }; + function BasePoint(curve, type) { + this.curve = curve; + this.type = type; + this.precomputed = null; + } + BaseCurve.BasePoint = BasePoint; + BasePoint.prototype.eq = function eq() { + throw new Error("Not implemented"); + }; + BasePoint.prototype.validate = function validate() { + return this.curve.validate(this); + }; + BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + bytes = utils.toArray(bytes, enc); + var len = this.p.byteLength(); + if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) { + if (bytes[0] === 6) + assert(bytes[bytes.length - 1] % 2 === 0); + else if (bytes[0] === 7) + assert(bytes[bytes.length - 1] % 2 === 1); + var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)); + return res; + } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { + return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3); + } + throw new Error("Unknown point format"); + }; + BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { + return this.encode(enc, true); + }; + BasePoint.prototype._encode = function _encode(compact) { + var len = this.curve.p.byteLength(); + var x4 = this.getX().toArray("be", len); + if (compact) + return [this.getY().isEven() ? 2 : 3].concat(x4); + return [4].concat(x4, this.getY().toArray("be", len)); + }; + BasePoint.prototype.encode = function encode(enc, compact) { + return utils.encode(this._encode(compact), enc); + }; + BasePoint.prototype.precompute = function precompute(power) { + if (this.precomputed) + return this; + var precomputed = { + doubles: null, + naf: null, + beta: null + }; + precomputed.naf = this._getNAFPoints(8); + precomputed.doubles = this._getDoubles(4, power); + precomputed.beta = this._getBeta(); + this.precomputed = precomputed; + return this; + }; + BasePoint.prototype._hasDoubles = function _hasDoubles(k4) { + if (!this.precomputed) + return false; + var doubles = this.precomputed.doubles; + if (!doubles) + return false; + return doubles.points.length >= Math.ceil((k4.bitLength() + 1) / doubles.step); + }; + BasePoint.prototype._getDoubles = function _getDoubles(step, power) { + if (this.precomputed && this.precomputed.doubles) + return this.precomputed.doubles; + var doubles = [this]; + var acc = this; + for (var i6 = 0; i6 < power; i6 += step) { + for (var j4 = 0; j4 < step; j4++) + acc = acc.dbl(); + doubles.push(acc); + } + return { + step, + points: doubles + }; + }; + BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { + if (this.precomputed && this.precomputed.naf) + return this.precomputed.naf; + var res = [this]; + var max = (1 << wnd) - 1; + var dbl = max === 1 ? null : this.dbl(); + for (var i6 = 1; i6 < max; i6++) + res[i6] = res[i6 - 1].add(dbl); + return { + wnd, + points: res + }; + }; + BasePoint.prototype._getBeta = function _getBeta() { + return null; + }; + BasePoint.prototype.dblp = function dblp(k4) { + var r6 = this; + for (var i6 = 0; i6 < k4; i6++) + r6 = r6.dbl(); + return r6; + }; + return exports$T; +} +var exports$S = {}; +var _dewExec$R = false; +function dew$R() { + if (_dewExec$R) + return exports$S; + _dewExec$R = true; + var utils = dew$T(); + var BN = dew$V(); + var inherits2 = dew$f(); + var Base = dew$S(); + var assert = utils.assert; + function ShortCurve(conf) { + Base.call(this, "short", conf); + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.tinv = this.two.redInvm(); + this.zeroA = this.a.fromRed().cmpn(0) === 0; + this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; + this.endo = this._getEndomorphism(conf); + this._endoWnafT1 = new Array(4); + this._endoWnafT2 = new Array(4); + } + inherits2(ShortCurve, Base); + exports$S = ShortCurve; + ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { + if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) + return; + var beta; + var lambda; + if (conf.beta) { + beta = new BN(conf.beta, 16).toRed(this.red); + } else { + var betas = this._getEndoRoots(this.p); + beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; + beta = beta.toRed(this.red); + } + if (conf.lambda) { + lambda = new BN(conf.lambda, 16); + } else { + var lambdas = this._getEndoRoots(this.n); + if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { + lambda = lambdas[0]; + } else { + lambda = lambdas[1]; + assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); + } + } + var basis; + if (conf.basis) { + basis = conf.basis.map(function(vec) { + return { + a: new BN(vec.a, 16), + b: new BN(vec.b, 16) + }; + }); + } else { + basis = this._getEndoBasis(lambda); + } + return { + beta, + lambda, + basis + }; + }; + ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { + var red = num === this.p ? this.red : BN.mont(num); + var tinv = new BN(2).toRed(red).redInvm(); + var ntinv = tinv.redNeg(); + var s6 = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); + var l1 = ntinv.redAdd(s6).fromRed(); + var l22 = ntinv.redSub(s6).fromRed(); + return [l1, l22]; + }; + ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { + var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); + var u6 = lambda; + var v5 = this.n.clone(); + var x1 = new BN(1); + var y1 = new BN(0); + var x22 = new BN(0); + var y22 = new BN(1); + var a0; + var b0; + var a1; + var b1; + var a22; + var b22; + var prevR; + var i6 = 0; + var r6; + var x4; + while (u6.cmpn(0) !== 0) { + var q3 = v5.div(u6); + r6 = v5.sub(q3.mul(u6)); + x4 = x22.sub(q3.mul(x1)); + var y5 = y22.sub(q3.mul(y1)); + if (!a1 && r6.cmp(aprxSqrt) < 0) { + a0 = prevR.neg(); + b0 = x1; + a1 = r6.neg(); + b1 = x4; + } else if (a1 && ++i6 === 2) { + break; + } + prevR = r6; + v5 = u6; + u6 = r6; + x22 = x1; + x1 = x4; + y22 = y1; + y1 = y5; + } + a22 = r6.neg(); + b22 = x4; + var len1 = a1.sqr().add(b1.sqr()); + var len2 = a22.sqr().add(b22.sqr()); + if (len2.cmp(len1) >= 0) { + a22 = a0; + b22 = b0; + } + if (a1.negative) { + a1 = a1.neg(); + b1 = b1.neg(); + } + if (a22.negative) { + a22 = a22.neg(); + b22 = b22.neg(); + } + return [{ + a: a1, + b: b1 + }, { + a: a22, + b: b22 + }]; + }; + ShortCurve.prototype._endoSplit = function _endoSplit(k4) { + var basis = this.endo.basis; + var v1 = basis[0]; + var v22 = basis[1]; + var c1 = v22.b.mul(k4).divRound(this.n); + var c22 = v1.b.neg().mul(k4).divRound(this.n); + var p1 = c1.mul(v1.a); + var p22 = c22.mul(v22.a); + var q1 = c1.mul(v1.b); + var q22 = c22.mul(v22.b); + var k1 = k4.sub(p1).sub(p22); + var k22 = q1.add(q22).neg(); + return { + k1, + k2: k22 + }; + }; + ShortCurve.prototype.pointFromX = function pointFromX(x4, odd) { + x4 = new BN(x4, 16); + if (!x4.red) + x4 = x4.toRed(this.red); + var y22 = x4.redSqr().redMul(x4).redIAdd(x4.redMul(this.a)).redIAdd(this.b); + var y5 = y22.redSqrt(); + if (y5.redSqr().redSub(y22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + var isOdd = y5.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y5 = y5.redNeg(); + return this.point(x4, y5); + }; + ShortCurve.prototype.validate = function validate(point) { + if (point.inf) + return true; + var x4 = point.x; + var y5 = point.y; + var ax = this.a.redMul(x4); + var rhs = x4.redSqr().redMul(x4).redIAdd(ax).redIAdd(this.b); + return y5.redSqr().redISub(rhs).cmpn(0) === 0; + }; + ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { + var npoints = this._endoWnafT1; + var ncoeffs = this._endoWnafT2; + for (var i6 = 0; i6 < points.length; i6++) { + var split = this._endoSplit(coeffs[i6]); + var p6 = points[i6]; + var beta = p6._getBeta(); + if (split.k1.negative) { + split.k1.ineg(); + p6 = p6.neg(true); + } + if (split.k2.negative) { + split.k2.ineg(); + beta = beta.neg(true); + } + npoints[i6 * 2] = p6; + npoints[i6 * 2 + 1] = beta; + ncoeffs[i6 * 2] = split.k1; + ncoeffs[i6 * 2 + 1] = split.k2; + } + var res = this._wnafMulAdd(1, npoints, ncoeffs, i6 * 2, jacobianResult); + for (var j4 = 0; j4 < i6 * 2; j4++) { + npoints[j4] = null; + ncoeffs[j4] = null; + } + return res; + }; + function Point(curve, x4, y5, isRed) { + Base.BasePoint.call(this, curve, "affine"); + if (x4 === null && y5 === null) { + this.x = null; + this.y = null; + this.inf = true; + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + if (isRed) { + this.x.forceRed(this.curve.red); + this.y.forceRed(this.curve.red); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + this.inf = false; + } + } + inherits2(Point, Base.BasePoint); + ShortCurve.prototype.point = function point(x4, y5, isRed) { + return new Point(this, x4, y5, isRed); + }; + ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { + return Point.fromJSON(this, obj, red); + }; + Point.prototype._getBeta = function _getBeta() { + if (!this.curve.endo) + return; + var pre = this.precomputed; + if (pre && pre.beta) + return pre.beta; + var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); + if (pre) { + var curve = this.curve; + var endoMul = function(p6) { + return curve.point(p6.x.redMul(curve.endo.beta), p6.y); + }; + pre.beta = beta; + beta.precomputed = { + beta: null, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(endoMul) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(endoMul) + } + }; + } + return beta; + }; + Point.prototype.toJSON = function toJSON() { + if (!this.precomputed) + return [this.x, this.y]; + return [this.x, this.y, this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1) + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1) + } + }]; + }; + Point.fromJSON = function fromJSON(curve, obj, red) { + if (typeof obj === "string") + obj = JSON.parse(obj); + var res = curve.point(obj[0], obj[1], red); + if (!obj[2]) + return res; + function obj2point(obj2) { + return curve.point(obj2[0], obj2[1], red); + } + var pre = obj[2]; + res.precomputed = { + beta: null, + doubles: pre.doubles && { + step: pre.doubles.step, + points: [res].concat(pre.doubles.points.map(obj2point)) + }, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: [res].concat(pre.naf.points.map(obj2point)) + } + }; + return res; + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.inf; + }; + Point.prototype.add = function add(p6) { + if (this.inf) + return p6; + if (p6.inf) + return this; + if (this.eq(p6)) + return this.dbl(); + if (this.neg().eq(p6)) + return this.curve.point(null, null); + if (this.x.cmp(p6.x) === 0) + return this.curve.point(null, null); + var c6 = this.y.redSub(p6.y); + if (c6.cmpn(0) !== 0) + c6 = c6.redMul(this.x.redSub(p6.x).redInvm()); + var nx = c6.redSqr().redISub(this.x).redISub(p6.x); + var ny = c6.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); + }; + Point.prototype.dbl = function dbl() { + if (this.inf) + return this; + var ys1 = this.y.redAdd(this.y); + if (ys1.cmpn(0) === 0) + return this.curve.point(null, null); + var a6 = this.curve.a; + var x22 = this.x.redSqr(); + var dyinv = ys1.redInvm(); + var c6 = x22.redAdd(x22).redIAdd(x22).redIAdd(a6).redMul(dyinv); + var nx = c6.redSqr().redISub(this.x.redAdd(this.x)); + var ny = c6.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); + }; + Point.prototype.getX = function getX() { + return this.x.fromRed(); + }; + Point.prototype.getY = function getY() { + return this.y.fromRed(); + }; + Point.prototype.mul = function mul(k4) { + k4 = new BN(k4, 16); + if (this.isInfinity()) + return this; + else if (this._hasDoubles(k4)) + return this.curve._fixedNafMul(this, k4); + else if (this.curve.endo) + return this.curve._endoWnafMulAdd([this], [k4]); + else + return this.curve._wnafMul(this, k4); + }; + Point.prototype.mulAdd = function mulAdd(k1, p22, k22) { + var points = [this, p22]; + var coeffs = [k1, k22]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2); + }; + Point.prototype.jmulAdd = function jmulAdd(k1, p22, k22) { + var points = [this, p22]; + var coeffs = [k1, k22]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs, true); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2, true); + }; + Point.prototype.eq = function eq(p6) { + return this === p6 || this.inf === p6.inf && (this.inf || this.x.cmp(p6.x) === 0 && this.y.cmp(p6.y) === 0); + }; + Point.prototype.neg = function neg(_precompute) { + if (this.inf) + return this; + var res = this.curve.point(this.x, this.y.redNeg()); + if (_precompute && this.precomputed) { + var pre = this.precomputed; + var negate = function(p6) { + return p6.neg(); + }; + res.precomputed = { + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(negate) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(negate) + } + }; + } + return res; + }; + Point.prototype.toJ = function toJ() { + if (this.inf) + return this.curve.jpoint(null, null, null); + var res = this.curve.jpoint(this.x, this.y, this.curve.one); + return res; + }; + function JPoint(curve, x4, y5, z4) { + Base.BasePoint.call(this, curve, "jacobian"); + if (x4 === null && y5 === null && z4 === null) { + this.x = this.curve.one; + this.y = this.curve.one; + this.z = new BN(0); + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + this.z = new BN(z4, 16); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; + } + inherits2(JPoint, Base.BasePoint); + ShortCurve.prototype.jpoint = function jpoint(x4, y5, z4) { + return new JPoint(this, x4, y5, z4); + }; + JPoint.prototype.toP = function toP() { + if (this.isInfinity()) + return this.curve.point(null, null); + var zinv = this.z.redInvm(); + var zinv2 = zinv.redSqr(); + var ax = this.x.redMul(zinv2); + var ay = this.y.redMul(zinv2).redMul(zinv); + return this.curve.point(ax, ay); + }; + JPoint.prototype.neg = function neg() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); + }; + JPoint.prototype.add = function add(p6) { + if (this.isInfinity()) + return p6; + if (p6.isInfinity()) + return this; + var pz2 = p6.z.redSqr(); + var z22 = this.z.redSqr(); + var u1 = this.x.redMul(pz2); + var u22 = p6.x.redMul(z22); + var s1 = this.y.redMul(pz2.redMul(p6.z)); + var s22 = p6.y.redMul(z22.redMul(this.z)); + var h6 = u1.redSub(u22); + var r6 = s1.redSub(s22); + if (h6.cmpn(0) === 0) { + if (r6.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + var h22 = h6.redSqr(); + var h32 = h22.redMul(h6); + var v5 = u1.redMul(h22); + var nx = r6.redSqr().redIAdd(h32).redISub(v5).redISub(v5); + var ny = r6.redMul(v5.redISub(nx)).redISub(s1.redMul(h32)); + var nz = this.z.redMul(p6.z).redMul(h6); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.mixedAdd = function mixedAdd(p6) { + if (this.isInfinity()) + return p6.toJ(); + if (p6.isInfinity()) + return this; + var z22 = this.z.redSqr(); + var u1 = this.x; + var u22 = p6.x.redMul(z22); + var s1 = this.y; + var s22 = p6.y.redMul(z22).redMul(this.z); + var h6 = u1.redSub(u22); + var r6 = s1.redSub(s22); + if (h6.cmpn(0) === 0) { + if (r6.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + var h22 = h6.redSqr(); + var h32 = h22.redMul(h6); + var v5 = u1.redMul(h22); + var nx = r6.redSqr().redIAdd(h32).redISub(v5).redISub(v5); + var ny = r6.redMul(v5.redISub(nx)).redISub(s1.redMul(h32)); + var nz = this.z.redMul(h6); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.dblp = function dblp(pow) { + if (pow === 0) + return this; + if (this.isInfinity()) + return this; + if (!pow) + return this.dbl(); + var i6; + if (this.curve.zeroA || this.curve.threeA) { + var r6 = this; + for (i6 = 0; i6 < pow; i6++) + r6 = r6.dbl(); + return r6; + } + var a6 = this.curve.a; + var tinv = this.curve.tinv; + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + var jyd = jy.redAdd(jy); + for (i6 = 0; i6 < pow; i6++) { + var jx2 = jx.redSqr(); + var jyd2 = jyd.redSqr(); + var jyd4 = jyd2.redSqr(); + var c6 = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a6.redMul(jz4)); + var t1 = jx.redMul(jyd2); + var nx = c6.redSqr().redISub(t1.redAdd(t1)); + var t22 = t1.redISub(nx); + var dny = c6.redMul(t22); + dny = dny.redIAdd(dny).redISub(jyd4); + var nz = jyd.redMul(jz); + if (i6 + 1 < pow) + jz4 = jz4.redMul(jyd4); + jx = nx; + jz = nz; + jyd = dny; + } + return this.curve.jpoint(jx, jyd.redMul(tinv), jz); + }; + JPoint.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + if (this.curve.zeroA) + return this._zeroDbl(); + else if (this.curve.threeA) + return this._threeDbl(); + else + return this._dbl(); + }; + JPoint.prototype._zeroDbl = function _zeroDbl() { + var nx; + var ny; + var nz; + if (this.zOne) { + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var yyyy = yy.redSqr(); + var s6 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s6 = s6.redIAdd(s6); + var m5 = xx.redAdd(xx).redIAdd(xx); + var t6 = m5.redSqr().redISub(s6).redISub(s6); + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + nx = t6; + ny = m5.redMul(s6.redISub(t6)).redISub(yyyy8); + nz = this.y.redAdd(this.y); + } else { + var a6 = this.x.redSqr(); + var b4 = this.y.redSqr(); + var c6 = b4.redSqr(); + var d5 = this.x.redAdd(b4).redSqr().redISub(a6).redISub(c6); + d5 = d5.redIAdd(d5); + var e8 = a6.redAdd(a6).redIAdd(a6); + var f7 = e8.redSqr(); + var c8 = c6.redIAdd(c6); + c8 = c8.redIAdd(c8); + c8 = c8.redIAdd(c8); + nx = f7.redISub(d5).redISub(d5); + ny = e8.redMul(d5.redISub(nx)).redISub(c8); + nz = this.y.redMul(this.z); + nz = nz.redIAdd(nz); + } + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype._threeDbl = function _threeDbl() { + var nx; + var ny; + var nz; + if (this.zOne) { + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var yyyy = yy.redSqr(); + var s6 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s6 = s6.redIAdd(s6); + var m5 = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); + var t6 = m5.redSqr().redISub(s6).redISub(s6); + nx = t6; + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + ny = m5.redMul(s6.redISub(t6)).redISub(yyyy8); + nz = this.y.redAdd(this.y); + } else { + var delta = this.z.redSqr(); + var gamma = this.y.redSqr(); + var beta = this.x.redMul(gamma); + var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); + alpha = alpha.redAdd(alpha).redIAdd(alpha); + var beta4 = beta.redIAdd(beta); + beta4 = beta4.redIAdd(beta4); + var beta8 = beta4.redAdd(beta4); + nx = alpha.redSqr().redISub(beta8); + nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); + var ggamma8 = gamma.redSqr(); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); + } + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype._dbl = function _dbl() { + var a6 = this.curve.a; + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + var jx2 = jx.redSqr(); + var jy2 = jy.redSqr(); + var c6 = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a6.redMul(jz4)); + var jxd4 = jx.redAdd(jx); + jxd4 = jxd4.redIAdd(jxd4); + var t1 = jxd4.redMul(jy2); + var nx = c6.redSqr().redISub(t1.redAdd(t1)); + var t22 = t1.redISub(nx); + var jyd8 = jy2.redSqr(); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + var ny = c6.redMul(t22).redISub(jyd8); + var nz = jy.redAdd(jy).redMul(jz); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.trpl = function trpl() { + if (!this.curve.zeroA) + return this.dbl().add(this); + var xx = this.x.redSqr(); + var yy = this.y.redSqr(); + var zz = this.z.redSqr(); + var yyyy = yy.redSqr(); + var m5 = xx.redAdd(xx).redIAdd(xx); + var mm = m5.redSqr(); + var e8 = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + e8 = e8.redIAdd(e8); + e8 = e8.redAdd(e8).redIAdd(e8); + e8 = e8.redISub(mm); + var ee3 = e8.redSqr(); + var t6 = yyyy.redIAdd(yyyy); + t6 = t6.redIAdd(t6); + t6 = t6.redIAdd(t6); + t6 = t6.redIAdd(t6); + var u6 = m5.redIAdd(e8).redSqr().redISub(mm).redISub(ee3).redISub(t6); + var yyu4 = yy.redMul(u6); + yyu4 = yyu4.redIAdd(yyu4); + yyu4 = yyu4.redIAdd(yyu4); + var nx = this.x.redMul(ee3).redISub(yyu4); + nx = nx.redIAdd(nx); + nx = nx.redIAdd(nx); + var ny = this.y.redMul(u6.redMul(t6.redISub(u6)).redISub(e8.redMul(ee3))); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + var nz = this.z.redAdd(e8).redSqr().redISub(zz).redISub(ee3); + return this.curve.jpoint(nx, ny, nz); + }; + JPoint.prototype.mul = function mul(k4, kbase) { + k4 = new BN(k4, kbase); + return this.curve._wnafMul(this, k4); + }; + JPoint.prototype.eq = function eq(p6) { + if (p6.type === "affine") + return this.eq(p6.toJ()); + if (this === p6) + return true; + var z22 = this.z.redSqr(); + var pz2 = p6.z.redSqr(); + if (this.x.redMul(pz2).redISub(p6.x.redMul(z22)).cmpn(0) !== 0) + return false; + var z32 = z22.redMul(this.z); + var pz3 = pz2.redMul(p6.z); + return this.y.redMul(pz3).redISub(p6.y.redMul(z32)).cmpn(0) === 0; + }; + JPoint.prototype.eqXToP = function eqXToP(x4) { + var zs = this.z.redSqr(); + var rx = x4.toRed(this.curve.red).redMul(zs); + if (this.x.cmp(rx) === 0) + return true; + var xc = x4.clone(); + var t6 = this.curve.redN.redMul(zs); + for (; ; ) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + rx.redIAdd(t6); + if (this.x.cmp(rx) === 0) + return true; + } + }; + JPoint.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + JPoint.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0; + }; + return exports$S; +} +var exports$R = {}; +var _dewExec$Q = false; +function dew$Q() { + if (_dewExec$Q) + return exports$R; + _dewExec$Q = true; + var BN = dew$V(); + var inherits2 = dew$f(); + var Base = dew$S(); + var utils = dew$T(); + function MontCurve(conf) { + Base.call(this, "mont", conf); + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.i4 = new BN(4).toRed(this.red).redInvm(); + this.two = new BN(2).toRed(this.red); + this.a24 = this.i4.redMul(this.a.redAdd(this.two)); + } + inherits2(MontCurve, Base); + exports$R = MontCurve; + MontCurve.prototype.validate = function validate(point) { + var x4 = point.normalize().x; + var x22 = x4.redSqr(); + var rhs = x22.redMul(x4).redAdd(x22.redMul(this.a)).redAdd(x4); + var y5 = rhs.redSqrt(); + return y5.redSqr().cmp(rhs) === 0; + }; + function Point(curve, x4, z4) { + Base.BasePoint.call(this, curve, "projective"); + if (x4 === null && z4 === null) { + this.x = this.curve.one; + this.z = this.curve.zero; + } else { + this.x = new BN(x4, 16); + this.z = new BN(z4, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + } + } + inherits2(Point, Base.BasePoint); + MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + return this.point(utils.toArray(bytes, enc), 1); + }; + MontCurve.prototype.point = function point(x4, z4) { + return new Point(this, x4, z4); + }; + MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); + }; + Point.prototype.precompute = function precompute() { + }; + Point.prototype._encode = function _encode() { + return this.getX().toArray("be", this.curve.p.byteLength()); + }; + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1] || curve.one); + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0; + }; + Point.prototype.dbl = function dbl() { + var a6 = this.x.redAdd(this.z); + var aa = a6.redSqr(); + var b4 = this.x.redSub(this.z); + var bb = b4.redSqr(); + var c6 = aa.redSub(bb); + var nx = aa.redMul(bb); + var nz = c6.redMul(bb.redAdd(this.curve.a24.redMul(c6))); + return this.curve.point(nx, nz); + }; + Point.prototype.add = function add() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.diffAdd = function diffAdd(p6, diff) { + var a6 = this.x.redAdd(this.z); + var b4 = this.x.redSub(this.z); + var c6 = p6.x.redAdd(p6.z); + var d5 = p6.x.redSub(p6.z); + var da = d5.redMul(a6); + var cb = c6.redMul(b4); + var nx = diff.z.redMul(da.redAdd(cb).redSqr()); + var nz = diff.x.redMul(da.redISub(cb).redSqr()); + return this.curve.point(nx, nz); + }; + Point.prototype.mul = function mul(k4) { + var t6 = k4.clone(); + var a6 = this; + var b4 = this.curve.point(null, null); + var c6 = this; + for (var bits = []; t6.cmpn(0) !== 0; t6.iushrn(1)) + bits.push(t6.andln(1)); + for (var i6 = bits.length - 1; i6 >= 0; i6--) { + if (bits[i6] === 0) { + a6 = a6.diffAdd(b4, c6); + b4 = b4.dbl(); + } else { + b4 = a6.diffAdd(b4, c6); + a6 = a6.dbl(); + } + } + return b4; + }; + Point.prototype.mulAdd = function mulAdd() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.jumlAdd = function jumlAdd() { + throw new Error("Not supported on Montgomery curve"); + }; + Point.prototype.eq = function eq(other) { + return this.getX().cmp(other.getX()) === 0; + }; + Point.prototype.normalize = function normalize() { + this.x = this.x.redMul(this.z.redInvm()); + this.z = this.curve.one; + return this; + }; + Point.prototype.getX = function getX() { + this.normalize(); + return this.x.fromRed(); + }; + return exports$R; +} +var exports$Q = {}; +var _dewExec$P = false; +function dew$P() { + if (_dewExec$P) + return exports$Q; + _dewExec$P = true; + var utils = dew$T(); + var BN = dew$V(); + var inherits2 = dew$f(); + var Base = dew$S(); + var assert = utils.assert; + function EdwardsCurve(conf) { + this.twisted = (conf.a | 0) !== 1; + this.mOneA = this.twisted && (conf.a | 0) === -1; + this.extended = this.mOneA; + Base.call(this, "edwards", conf); + this.a = new BN(conf.a, 16).umod(this.red.m); + this.a = this.a.toRed(this.red); + this.c = new BN(conf.c, 16).toRed(this.red); + this.c2 = this.c.redSqr(); + this.d = new BN(conf.d, 16).toRed(this.red); + this.dd = this.d.redAdd(this.d); + assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); + this.oneC = (conf.c | 0) === 1; + } + inherits2(EdwardsCurve, Base); + exports$Q = EdwardsCurve; + EdwardsCurve.prototype._mulA = function _mulA(num) { + if (this.mOneA) + return num.redNeg(); + else + return this.a.redMul(num); + }; + EdwardsCurve.prototype._mulC = function _mulC(num) { + if (this.oneC) + return num; + else + return this.c.redMul(num); + }; + EdwardsCurve.prototype.jpoint = function jpoint(x4, y5, z4, t6) { + return this.point(x4, y5, z4, t6); + }; + EdwardsCurve.prototype.pointFromX = function pointFromX(x4, odd) { + x4 = new BN(x4, 16); + if (!x4.red) + x4 = x4.toRed(this.red); + var x22 = x4.redSqr(); + var rhs = this.c2.redSub(this.a.redMul(x22)); + var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x22)); + var y22 = rhs.redMul(lhs.redInvm()); + var y5 = y22.redSqrt(); + if (y5.redSqr().redSub(y22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + var isOdd = y5.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y5 = y5.redNeg(); + return this.point(x4, y5); + }; + EdwardsCurve.prototype.pointFromY = function pointFromY(y5, odd) { + y5 = new BN(y5, 16); + if (!y5.red) + y5 = y5.toRed(this.red); + var y22 = y5.redSqr(); + var lhs = y22.redSub(this.c2); + var rhs = y22.redMul(this.d).redMul(this.c2).redSub(this.a); + var x22 = lhs.redMul(rhs.redInvm()); + if (x22.cmp(this.zero) === 0) { + if (odd) + throw new Error("invalid point"); + else + return this.point(this.zero, y5); + } + var x4 = x22.redSqrt(); + if (x4.redSqr().redSub(x22).cmp(this.zero) !== 0) + throw new Error("invalid point"); + if (x4.fromRed().isOdd() !== odd) + x4 = x4.redNeg(); + return this.point(x4, y5); + }; + EdwardsCurve.prototype.validate = function validate(point) { + if (point.isInfinity()) + return true; + point.normalize(); + var x22 = point.x.redSqr(); + var y22 = point.y.redSqr(); + var lhs = x22.redMul(this.a).redAdd(y22); + var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x22).redMul(y22))); + return lhs.cmp(rhs) === 0; + }; + function Point(curve, x4, y5, z4, t6) { + Base.BasePoint.call(this, curve, "projective"); + if (x4 === null && y5 === null && z4 === null) { + this.x = this.curve.zero; + this.y = this.curve.one; + this.z = this.curve.one; + this.t = this.curve.zero; + this.zOne = true; + } else { + this.x = new BN(x4, 16); + this.y = new BN(y5, 16); + this.z = z4 ? new BN(z4, 16) : this.curve.one; + this.t = t6 && new BN(t6, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + if (this.t && !this.t.red) + this.t = this.t.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; + if (this.curve.extended && !this.t) { + this.t = this.x.redMul(this.y); + if (!this.zOne) + this.t = this.t.redMul(this.z.redInvm()); + } + } + } + inherits2(Point, Base.BasePoint); + EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); + }; + EdwardsCurve.prototype.point = function point(x4, y5, z4, t6) { + return new Point(this, x4, y5, z4, t6); + }; + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1], obj[2]); + }; + Point.prototype.inspect = function inspect2() { + if (this.isInfinity()) + return ""; + return ""; + }; + Point.prototype.isInfinity = function isInfinity() { + return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0); + }; + Point.prototype._extDbl = function _extDbl() { + var a6 = this.x.redSqr(); + var b4 = this.y.redSqr(); + var c6 = this.z.redSqr(); + c6 = c6.redIAdd(c6); + var d5 = this.curve._mulA(a6); + var e8 = this.x.redAdd(this.y).redSqr().redISub(a6).redISub(b4); + var g4 = d5.redAdd(b4); + var f7 = g4.redSub(c6); + var h6 = d5.redSub(b4); + var nx = e8.redMul(f7); + var ny = g4.redMul(h6); + var nt2 = e8.redMul(h6); + var nz = f7.redMul(g4); + return this.curve.point(nx, ny, nz, nt2); + }; + Point.prototype._projDbl = function _projDbl() { + var b4 = this.x.redAdd(this.y).redSqr(); + var c6 = this.x.redSqr(); + var d5 = this.y.redSqr(); + var nx; + var ny; + var nz; + var e8; + var h6; + var j4; + if (this.curve.twisted) { + e8 = this.curve._mulA(c6); + var f7 = e8.redAdd(d5); + if (this.zOne) { + nx = b4.redSub(c6).redSub(d5).redMul(f7.redSub(this.curve.two)); + ny = f7.redMul(e8.redSub(d5)); + nz = f7.redSqr().redSub(f7).redSub(f7); + } else { + h6 = this.z.redSqr(); + j4 = f7.redSub(h6).redISub(h6); + nx = b4.redSub(c6).redISub(d5).redMul(j4); + ny = f7.redMul(e8.redSub(d5)); + nz = f7.redMul(j4); + } + } else { + e8 = c6.redAdd(d5); + h6 = this.curve._mulC(this.z).redSqr(); + j4 = e8.redSub(h6).redSub(h6); + nx = this.curve._mulC(b4.redISub(e8)).redMul(j4); + ny = this.curve._mulC(e8).redMul(c6.redISub(d5)); + nz = e8.redMul(j4); + } + return this.curve.point(nx, ny, nz); + }; + Point.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + if (this.curve.extended) + return this._extDbl(); + else + return this._projDbl(); + }; + Point.prototype._extAdd = function _extAdd(p6) { + var a6 = this.y.redSub(this.x).redMul(p6.y.redSub(p6.x)); + var b4 = this.y.redAdd(this.x).redMul(p6.y.redAdd(p6.x)); + var c6 = this.t.redMul(this.curve.dd).redMul(p6.t); + var d5 = this.z.redMul(p6.z.redAdd(p6.z)); + var e8 = b4.redSub(a6); + var f7 = d5.redSub(c6); + var g4 = d5.redAdd(c6); + var h6 = b4.redAdd(a6); + var nx = e8.redMul(f7); + var ny = g4.redMul(h6); + var nt2 = e8.redMul(h6); + var nz = f7.redMul(g4); + return this.curve.point(nx, ny, nz, nt2); + }; + Point.prototype._projAdd = function _projAdd(p6) { + var a6 = this.z.redMul(p6.z); + var b4 = a6.redSqr(); + var c6 = this.x.redMul(p6.x); + var d5 = this.y.redMul(p6.y); + var e8 = this.curve.d.redMul(c6).redMul(d5); + var f7 = b4.redSub(e8); + var g4 = b4.redAdd(e8); + var tmp = this.x.redAdd(this.y).redMul(p6.x.redAdd(p6.y)).redISub(c6).redISub(d5); + var nx = a6.redMul(f7).redMul(tmp); + var ny; + var nz; + if (this.curve.twisted) { + ny = a6.redMul(g4).redMul(d5.redSub(this.curve._mulA(c6))); + nz = f7.redMul(g4); + } else { + ny = a6.redMul(g4).redMul(d5.redSub(c6)); + nz = this.curve._mulC(f7).redMul(g4); + } + return this.curve.point(nx, ny, nz); + }; + Point.prototype.add = function add(p6) { + if (this.isInfinity()) + return p6; + if (p6.isInfinity()) + return this; + if (this.curve.extended) + return this._extAdd(p6); + else + return this._projAdd(p6); + }; + Point.prototype.mul = function mul(k4) { + if (this._hasDoubles(k4)) + return this.curve._fixedNafMul(this, k4); + else + return this.curve._wnafMul(this, k4); + }; + Point.prototype.mulAdd = function mulAdd(k1, p6, k22) { + return this.curve._wnafMulAdd(1, [this, p6], [k1, k22], 2, false); + }; + Point.prototype.jmulAdd = function jmulAdd(k1, p6, k22) { + return this.curve._wnafMulAdd(1, [this, p6], [k1, k22], 2, true); + }; + Point.prototype.normalize = function normalize() { + if (this.zOne) + return this; + var zi = this.z.redInvm(); + this.x = this.x.redMul(zi); + this.y = this.y.redMul(zi); + if (this.t) + this.t = this.t.redMul(zi); + this.z = this.curve.one; + this.zOne = true; + return this; + }; + Point.prototype.neg = function neg() { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()); + }; + Point.prototype.getX = function getX() { + this.normalize(); + return this.x.fromRed(); + }; + Point.prototype.getY = function getY() { + this.normalize(); + return this.y.fromRed(); + }; + Point.prototype.eq = function eq(other) { + return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0; + }; + Point.prototype.eqXToP = function eqXToP(x4) { + var rx = x4.toRed(this.curve.red).redMul(this.z); + if (this.x.cmp(rx) === 0) + return true; + var xc = x4.clone(); + var t6 = this.curve.redN.redMul(this.z); + for (; ; ) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + rx.redIAdd(t6); + if (this.x.cmp(rx) === 0) + return true; + } + }; + Point.prototype.toP = Point.prototype.normalize; + Point.prototype.mixedAdd = Point.prototype.add; + return exports$Q; +} +var exports$P = {}; +var _dewExec$O = false; +function dew$O() { + if (_dewExec$O) + return exports$P; + _dewExec$O = true; + var curve = exports$P; + curve.base = dew$S(); + curve.short = dew$R(); + curve.mont = dew$Q(); + curve.edwards = dew$P(); + return exports$P; +} +var exports$O = {}; +var _dewExec$N = false; +function dew$N() { + if (_dewExec$N) + return exports$O; + _dewExec$N = true; + var assert = dew$2m(); + var inherits2 = dew$f(); + exports$O.inherits = inherits2; + function isSurrogatePair(msg, i6) { + if ((msg.charCodeAt(i6) & 64512) !== 55296) { + return false; + } + if (i6 < 0 || i6 + 1 >= msg.length) { + return false; + } + return (msg.charCodeAt(i6 + 1) & 64512) === 56320; + } + function toArray(msg, enc) { + if (Array.isArray(msg)) + return msg.slice(); + if (!msg) + return []; + var res = []; + if (typeof msg === "string") { + if (!enc) { + var p6 = 0; + for (var i6 = 0; i6 < msg.length; i6++) { + var c6 = msg.charCodeAt(i6); + if (c6 < 128) { + res[p6++] = c6; + } else if (c6 < 2048) { + res[p6++] = c6 >> 6 | 192; + res[p6++] = c6 & 63 | 128; + } else if (isSurrogatePair(msg, i6)) { + c6 = 65536 + ((c6 & 1023) << 10) + (msg.charCodeAt(++i6) & 1023); + res[p6++] = c6 >> 18 | 240; + res[p6++] = c6 >> 12 & 63 | 128; + res[p6++] = c6 >> 6 & 63 | 128; + res[p6++] = c6 & 63 | 128; + } else { + res[p6++] = c6 >> 12 | 224; + res[p6++] = c6 >> 6 & 63 | 128; + res[p6++] = c6 & 63 | 128; + } + } + } else if (enc === "hex") { + msg = msg.replace(/[^a-z0-9]+/ig, ""); + if (msg.length % 2 !== 0) + msg = "0" + msg; + for (i6 = 0; i6 < msg.length; i6 += 2) + res.push(parseInt(msg[i6] + msg[i6 + 1], 16)); + } + } else { + for (i6 = 0; i6 < msg.length; i6++) + res[i6] = msg[i6] | 0; + } + return res; + } + exports$O.toArray = toArray; + function toHex(msg) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) + res += zero2(msg[i6].toString(16)); + return res; + } + exports$O.toHex = toHex; + function htonl(w4) { + var res = w4 >>> 24 | w4 >>> 8 & 65280 | w4 << 8 & 16711680 | (w4 & 255) << 24; + return res >>> 0; + } + exports$O.htonl = htonl; + function toHex32(msg, endian) { + var res = ""; + for (var i6 = 0; i6 < msg.length; i6++) { + var w4 = msg[i6]; + if (endian === "little") + w4 = htonl(w4); + res += zero8(w4.toString(16)); + } + return res; + } + exports$O.toHex32 = toHex32; + function zero2(word) { + if (word.length === 1) + return "0" + word; + else + return word; + } + exports$O.zero2 = zero2; + function zero8(word) { + if (word.length === 7) + return "0" + word; + else if (word.length === 6) + return "00" + word; + else if (word.length === 5) + return "000" + word; + else if (word.length === 4) + return "0000" + word; + else if (word.length === 3) + return "00000" + word; + else if (word.length === 2) + return "000000" + word; + else if (word.length === 1) + return "0000000" + word; + else + return word; + } + exports$O.zero8 = zero8; + function join32(msg, start, end, endian) { + var len = end - start; + assert(len % 4 === 0); + var res = new Array(len / 4); + for (var i6 = 0, k4 = start; i6 < res.length; i6++, k4 += 4) { + var w4; + if (endian === "big") + w4 = msg[k4] << 24 | msg[k4 + 1] << 16 | msg[k4 + 2] << 8 | msg[k4 + 3]; + else + w4 = msg[k4 + 3] << 24 | msg[k4 + 2] << 16 | msg[k4 + 1] << 8 | msg[k4]; + res[i6] = w4 >>> 0; + } + return res; + } + exports$O.join32 = join32; + function split32(msg, endian) { + var res = new Array(msg.length * 4); + for (var i6 = 0, k4 = 0; i6 < msg.length; i6++, k4 += 4) { + var m5 = msg[i6]; + if (endian === "big") { + res[k4] = m5 >>> 24; + res[k4 + 1] = m5 >>> 16 & 255; + res[k4 + 2] = m5 >>> 8 & 255; + res[k4 + 3] = m5 & 255; + } else { + res[k4 + 3] = m5 >>> 24; + res[k4 + 2] = m5 >>> 16 & 255; + res[k4 + 1] = m5 >>> 8 & 255; + res[k4] = m5 & 255; + } + } + return res; + } + exports$O.split32 = split32; + function rotr32(w4, b4) { + return w4 >>> b4 | w4 << 32 - b4; + } + exports$O.rotr32 = rotr32; + function rotl32(w4, b4) { + return w4 << b4 | w4 >>> 32 - b4; + } + exports$O.rotl32 = rotl32; + function sum32(a6, b4) { + return a6 + b4 >>> 0; + } + exports$O.sum32 = sum32; + function sum32_3(a6, b4, c6) { + return a6 + b4 + c6 >>> 0; + } + exports$O.sum32_3 = sum32_3; + function sum32_4(a6, b4, c6, d5) { + return a6 + b4 + c6 + d5 >>> 0; + } + exports$O.sum32_4 = sum32_4; + function sum32_5(a6, b4, c6, d5, e8) { + return a6 + b4 + c6 + d5 + e8 >>> 0; + } + exports$O.sum32_5 = sum32_5; + function sum64(buf, pos, ah, al) { + var bh = buf[pos]; + var bl = buf[pos + 1]; + var lo = al + bl >>> 0; + var hi = (lo < al ? 1 : 0) + ah + bh; + buf[pos] = hi >>> 0; + buf[pos + 1] = lo; + } + exports$O.sum64 = sum64; + function sum64_hi(ah, al, bh, bl) { + var lo = al + bl >>> 0; + var hi = (lo < al ? 1 : 0) + ah + bh; + return hi >>> 0; + } + exports$O.sum64_hi = sum64_hi; + function sum64_lo(ah, al, bh, bl) { + var lo = al + bl; + return lo >>> 0; + } + exports$O.sum64_lo = sum64_lo; + function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { + var carry = 0; + var lo = al; + lo = lo + bl >>> 0; + carry += lo < al ? 1 : 0; + lo = lo + cl >>> 0; + carry += lo < cl ? 1 : 0; + lo = lo + dl >>> 0; + carry += lo < dl ? 1 : 0; + var hi = ah + bh + ch + dh + carry; + return hi >>> 0; + } + exports$O.sum64_4_hi = sum64_4_hi; + function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { + var lo = al + bl + cl + dl; + return lo >>> 0; + } + exports$O.sum64_4_lo = sum64_4_lo; + function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var carry = 0; + var lo = al; + lo = lo + bl >>> 0; + carry += lo < al ? 1 : 0; + lo = lo + cl >>> 0; + carry += lo < cl ? 1 : 0; + lo = lo + dl >>> 0; + carry += lo < dl ? 1 : 0; + lo = lo + el >>> 0; + carry += lo < el ? 1 : 0; + var hi = ah + bh + ch + dh + eh + carry; + return hi >>> 0; + } + exports$O.sum64_5_hi = sum64_5_hi; + function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var lo = al + bl + cl + dl + el; + return lo >>> 0; + } + exports$O.sum64_5_lo = sum64_5_lo; + function rotr64_hi(ah, al, num) { + var r6 = al << 32 - num | ah >>> num; + return r6 >>> 0; + } + exports$O.rotr64_hi = rotr64_hi; + function rotr64_lo(ah, al, num) { + var r6 = ah << 32 - num | al >>> num; + return r6 >>> 0; + } + exports$O.rotr64_lo = rotr64_lo; + function shr64_hi(ah, al, num) { + return ah >>> num; + } + exports$O.shr64_hi = shr64_hi; + function shr64_lo(ah, al, num) { + var r6 = ah << 32 - num | al >>> num; + return r6 >>> 0; + } + exports$O.shr64_lo = shr64_lo; + return exports$O; +} +var exports$N = {}; +var _dewExec$M = false; +function dew$M() { + if (_dewExec$M) + return exports$N; + _dewExec$M = true; + var utils = dew$N(); + var assert = dew$2m(); + function BlockHash() { + this.pending = null; + this.pendingTotal = 0; + this.blockSize = this.constructor.blockSize; + this.outSize = this.constructor.outSize; + this.hmacStrength = this.constructor.hmacStrength; + this.padLength = this.constructor.padLength / 8; + this.endian = "big"; + this._delta8 = this.blockSize / 8; + this._delta32 = this.blockSize / 32; + } + exports$N.BlockHash = BlockHash; + BlockHash.prototype.update = function update(msg, enc) { + msg = utils.toArray(msg, enc); + if (!this.pending) + this.pending = msg; + else + this.pending = this.pending.concat(msg); + this.pendingTotal += msg.length; + if (this.pending.length >= this._delta8) { + msg = this.pending; + var r6 = msg.length % this._delta8; + this.pending = msg.slice(msg.length - r6, msg.length); + if (this.pending.length === 0) + this.pending = null; + msg = utils.join32(msg, 0, msg.length - r6, this.endian); + for (var i6 = 0; i6 < msg.length; i6 += this._delta32) + this._update(msg, i6, i6 + this._delta32); + } + return this; + }; + BlockHash.prototype.digest = function digest(enc) { + this.update(this._pad()); + assert(this.pending === null); + return this._digest(enc); + }; + BlockHash.prototype._pad = function pad() { + var len = this.pendingTotal; + var bytes = this._delta8; + var k4 = bytes - (len + this.padLength) % bytes; + var res = new Array(k4 + this.padLength); + res[0] = 128; + for (var i6 = 1; i6 < k4; i6++) + res[i6] = 0; + len <<= 3; + if (this.endian === "big") { + for (var t6 = 8; t6 < this.padLength; t6++) + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = len >>> 24 & 255; + res[i6++] = len >>> 16 & 255; + res[i6++] = len >>> 8 & 255; + res[i6++] = len & 255; + } else { + res[i6++] = len & 255; + res[i6++] = len >>> 8 & 255; + res[i6++] = len >>> 16 & 255; + res[i6++] = len >>> 24 & 255; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + res[i6++] = 0; + for (t6 = 8; t6 < this.padLength; t6++) + res[i6++] = 0; + } + return res; + }; + return exports$N; +} +var exports$M = {}; +var _dewExec$L = false; +function dew$L() { + if (_dewExec$L) + return exports$M; + _dewExec$L = true; + return exports$M; +} +var exports$L = {}; +var _dewExec$K = false; +function dew$K() { + if (_dewExec$K) + return exports$L; + _dewExec$K = true; + var utils = dew$N(); + var common = dew$M(); + var rotl32 = utils.rotl32; + var sum32 = utils.sum32; + var sum32_3 = utils.sum32_3; + var sum32_4 = utils.sum32_4; + var BlockHash = common.BlockHash; + function RIPEMD160() { + if (!(this instanceof RIPEMD160)) + return new RIPEMD160(); + BlockHash.call(this); + this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; + this.endian = "little"; + } + utils.inherits(RIPEMD160, BlockHash); + exports$L.ripemd160 = RIPEMD160; + RIPEMD160.blockSize = 512; + RIPEMD160.outSize = 160; + RIPEMD160.hmacStrength = 192; + RIPEMD160.padLength = 64; + RIPEMD160.prototype._update = function update(msg, start) { + var A4 = this.h[0]; + var B4 = this.h[1]; + var C4 = this.h[2]; + var D4 = this.h[3]; + var E4 = this.h[4]; + var Ah = A4; + var Bh = B4; + var Ch = C4; + var Dh = D4; + var Eh = E4; + for (var j4 = 0; j4 < 80; j4++) { + var T5 = sum32(rotl32(sum32_4(A4, f7(j4, B4, C4, D4), msg[r6[j4] + start], K3(j4)), s6[j4]), E4); + A4 = E4; + E4 = D4; + D4 = rotl32(C4, 10); + C4 = B4; + B4 = T5; + T5 = sum32(rotl32(sum32_4(Ah, f7(79 - j4, Bh, Ch, Dh), msg[rh[j4] + start], Kh(j4)), sh[j4]), Eh); + Ah = Eh; + Eh = Dh; + Dh = rotl32(Ch, 10); + Ch = Bh; + Bh = T5; + } + T5 = sum32_3(this.h[1], C4, Dh); + this.h[1] = sum32_3(this.h[2], D4, Eh); + this.h[2] = sum32_3(this.h[3], E4, Ah); + this.h[3] = sum32_3(this.h[4], A4, Bh); + this.h[4] = sum32_3(this.h[0], B4, Ch); + this.h[0] = T5; + }; + RIPEMD160.prototype._digest = function digest(enc) { + if (enc === "hex") + return utils.toHex32(this.h, "little"); + else + return utils.split32(this.h, "little"); + }; + function f7(j4, x4, y5, z4) { + if (j4 <= 15) + return x4 ^ y5 ^ z4; + else if (j4 <= 31) + return x4 & y5 | ~x4 & z4; + else if (j4 <= 47) + return (x4 | ~y5) ^ z4; + else if (j4 <= 63) + return x4 & z4 | y5 & ~z4; + else + return x4 ^ (y5 | ~z4); + } + function K3(j4) { + if (j4 <= 15) + return 0; + else if (j4 <= 31) + return 1518500249; + else if (j4 <= 47) + return 1859775393; + else if (j4 <= 63) + return 2400959708; + else + return 2840853838; + } + function Kh(j4) { + if (j4 <= 15) + return 1352829926; + else if (j4 <= 31) + return 1548603684; + else if (j4 <= 47) + return 1836072691; + else if (j4 <= 63) + return 2053994217; + else + return 0; + } + var r6 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]; + var rh = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]; + var s6 = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]; + var sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; + return exports$L; +} +var exports$K = {}; +var _dewExec$J = false; +function dew$J() { + if (_dewExec$J) + return exports$K; + _dewExec$J = true; + var utils = dew$N(); + var assert = dew$2m(); + function Hmac2(hash, key, enc) { + if (!(this instanceof Hmac2)) + return new Hmac2(hash, key, enc); + this.Hash = hash; + this.blockSize = hash.blockSize / 8; + this.outSize = hash.outSize / 8; + this.inner = null; + this.outer = null; + this._init(utils.toArray(key, enc)); + } + exports$K = Hmac2; + Hmac2.prototype._init = function init(key) { + if (key.length > this.blockSize) + key = new this.Hash().update(key).digest(); + assert(key.length <= this.blockSize); + for (var i6 = key.length; i6 < this.blockSize; i6++) + key.push(0); + for (i6 = 0; i6 < key.length; i6++) + key[i6] ^= 54; + this.inner = new this.Hash().update(key); + for (i6 = 0; i6 < key.length; i6++) + key[i6] ^= 106; + this.outer = new this.Hash().update(key); + }; + Hmac2.prototype.update = function update(msg, enc) { + this.inner.update(msg, enc); + return this; + }; + Hmac2.prototype.digest = function digest(enc) { + this.outer.update(this.inner.digest()); + return this.outer.digest(enc); + }; + return exports$K; +} +var exports$J = {}; +var _dewExec$I = false; +function dew$I() { + if (_dewExec$I) + return exports$J; + _dewExec$I = true; + var hash = exports$J; + hash.utils = dew$N(); + hash.common = dew$M(); + hash.sha = dew$L(); + hash.ripemd = dew$K(); + hash.hmac = dew$J(); + hash.sha1 = hash.sha.sha1; + hash.sha256 = hash.sha.sha256; + hash.sha224 = hash.sha.sha224; + hash.sha384 = hash.sha.sha384; + hash.sha512 = hash.sha.sha512; + hash.ripemd160 = hash.ripemd.ripemd160; + return exports$J; +} +var exports$I = {}; +var _dewExec$H = false; +function dew$H() { + if (_dewExec$H) + return exports$I; + _dewExec$H = true; + exports$I = { + doubles: { + step: 4, + points: [["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a", "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"], ["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"], ["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739", "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"], ["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"], ["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c", "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"], ["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda", "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"], ["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa", "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"], ["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0", "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"], ["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d", "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"], ["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d", "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"], ["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1", "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"], ["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0", "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"], ["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047", "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"], ["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862", "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"], ["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7", "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"], ["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd", "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"], ["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83", "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"], ["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a", "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"], ["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8", "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"], ["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d", "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"], ["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725", "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"], ["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754", "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"], ["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c", "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"], ["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6", "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"], ["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39", "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"], ["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891", "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"], ["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b", "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"], ["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03", "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"], ["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d", "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"], ["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070", "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"], ["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4", "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"], ["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da", "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"], ["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11", "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"], ["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e", "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"], ["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41", "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"], ["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef", "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"], ["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8", "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"], ["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d", "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"], ["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96", "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"], ["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd", "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"], ["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5", "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"], ["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266", "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"], ["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71", "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"], ["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac", "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"], ["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751", "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"], ["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e", "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"], ["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241", "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"], ["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3", "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"], ["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f", "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"], ["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19", "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"], ["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be", "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"], ["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9", "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"], ["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2", "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"], ["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13", "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"], ["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c", "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"], ["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba", "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"], ["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151", "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"], ["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073", "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"], ["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458", "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"], ["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b", "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"], ["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366", "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"], ["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa", "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"], ["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0", "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"], ["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787", "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"], ["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e", "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]] + }, + naf: { + wnd: 7, + points: [["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9", "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"], ["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4", "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"], ["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc", "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"], ["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe", "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"], ["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb", "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"], ["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8", "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"], ["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e", "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"], ["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34", "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"], ["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c", "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"], ["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5", "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"], ["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f", "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"], ["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714", "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"], ["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729", "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"], ["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db", "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"], ["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4", "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"], ["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5", "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"], ["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479", "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"], ["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d", "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"], ["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f", "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"], ["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb", "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"], ["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9", "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"], ["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963", "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"], ["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74", "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"], ["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530", "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"], ["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b", "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"], ["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247", "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"], ["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1", "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"], ["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120", "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"], ["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435", "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"], ["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18", "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"], ["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8", "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"], ["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb", "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"], ["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f", "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"], ["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143", "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"], ["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba", "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"], ["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45", "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"], ["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a", "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"], ["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e", "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"], ["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8", "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"], ["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c", "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"], ["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519", "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"], ["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab", "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"], ["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca", "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"], ["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf", "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"], ["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610", "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"], ["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4", "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"], ["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c", "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"], ["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940", "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"], ["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980", "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"], ["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3", "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"], ["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf", "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"], ["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63", "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"], ["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448", "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"], ["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf", "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"], ["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5", "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"], ["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6", "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"], ["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5", "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"], ["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99", "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"], ["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51", "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"], ["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5", "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"], ["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5", "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"], ["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997", "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"], ["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881", "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"], ["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5", "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"], ["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66", "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"], ["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726", "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"], ["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede", "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"], ["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94", "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"], ["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31", "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"], ["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51", "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"], ["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252", "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"], ["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5", "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"], ["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b", "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"], ["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4", "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"], ["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f", "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"], ["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889", "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"], ["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246", "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"], ["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984", "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"], ["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a", "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"], ["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030", "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"], ["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197", "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"], ["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593", "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"], ["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef", "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"], ["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38", "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"], ["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a", "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"], ["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111", "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"], ["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502", "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"], ["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea", "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"], ["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26", "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"], ["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986", "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"], ["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e", "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"], ["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4", "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"], ["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda", "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"], ["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859", "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"], ["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f", "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"], ["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c", "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"], ["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942", "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"], ["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a", "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"], ["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80", "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"], ["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d", "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"], ["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1", "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"], ["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63", "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"], ["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352", "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"], ["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193", "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"], ["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00", "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"], ["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58", "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"], ["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7", "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"], ["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8", "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"], ["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e", "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"], ["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d", "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"], ["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b", "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"], ["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f", "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"], ["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6", "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"], ["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297", "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"], ["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a", "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"], ["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c", "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"], ["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52", "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"], ["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb", "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"], ["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065", "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"], ["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917", "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"], ["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9", "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"], ["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3", "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"], ["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57", "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"], ["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66", "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"], ["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8", "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"], ["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721", "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"], ["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180", "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]] + } + }; + return exports$I; +} +var exports$H = {}; +var _dewExec$G = false; +function dew$G() { + if (_dewExec$G) + return exports$H; + _dewExec$G = true; + var curves = exports$H; + var hash = dew$I(); + var curve = dew$O(); + var utils = dew$T(); + var assert = utils.assert; + function PresetCurve(options) { + if (options.type === "short") + this.curve = new curve.short(options); + else if (options.type === "edwards") + this.curve = new curve.edwards(options); + else + this.curve = new curve.mont(options); + this.g = this.curve.g; + this.n = this.curve.n; + this.hash = options.hash; + assert(this.g.validate(), "Invalid curve"); + assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); + } + curves.PresetCurve = PresetCurve; + function defineCurve(name, options) { + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + get: function() { + var curve2 = new PresetCurve(options); + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + value: curve2 + }); + return curve2; + } + }); + } + defineCurve("p192", { + type: "short", + prime: "p192", + p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", + a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", + b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", + n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", + hash: hash.sha256, + gRed: false, + g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"] + }); + defineCurve("p224", { + type: "short", + prime: "p224", + p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", + a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", + b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", + n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", + hash: hash.sha256, + gRed: false, + g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"] + }); + defineCurve("p256", { + type: "short", + prime: null, + p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", + a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", + b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", + n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", + hash: hash.sha256, + gRed: false, + g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"] + }); + defineCurve("p384", { + type: "short", + prime: null, + p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", + a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", + b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", + n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", + hash: hash.sha384, + gRed: false, + g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"] + }); + defineCurve("p521", { + type: "short", + prime: null, + p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", + a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", + b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", + n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", + hash: hash.sha512, + gRed: false, + g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"] + }); + defineCurve("curve25519", { + type: "mont", + prime: "p25519", + p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", + a: "76d06", + b: "1", + n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", + hash: hash.sha256, + gRed: false, + g: ["9"] + }); + defineCurve("ed25519", { + type: "edwards", + prime: "p25519", + p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", + a: "-1", + c: "1", + // -121665 * (121666^(-1)) (mod P) + d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", + n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", + hash: hash.sha256, + gRed: false, + g: [ + "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", + // 4/5 + "6666666666666666666666666666666666666666666666666666666666666658" + ] + }); + var pre; + try { + pre = dew$H(); + } catch (e8) { + pre = void 0; + } + defineCurve("secp256k1", { + type: "short", + prime: "k256", + p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", + a: "0", + b: "7", + n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", + h: "1", + hash: hash.sha256, + // Precomputed endomorphism + beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", + lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", + basis: [{ + a: "3086d221a7d46bcde86c90e49284eb15", + b: "-e4437ed6010e88286f547fa90abfe4c3" + }, { + a: "114ca50f7a8e2f3f657c1108d9d44cfd8", + b: "3086d221a7d46bcde86c90e49284eb15" + }], + gRed: false, + g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", pre] + }); + return exports$H; +} +var exports$G = {}; +var _dewExec$F = false; +function dew$F() { + if (_dewExec$F) + return exports$G; + _dewExec$F = true; + var hash = dew$I(); + var utils = dew$U(); + var assert = dew$2m(); + function HmacDRBG(options) { + if (!(this instanceof HmacDRBG)) + return new HmacDRBG(options); + this.hash = options.hash; + this.predResist = !!options.predResist; + this.outLen = this.hash.outSize; + this.minEntropy = options.minEntropy || this.hash.hmacStrength; + this._reseed = null; + this.reseedInterval = null; + this.K = null; + this.V = null; + var entropy = utils.toArray(options.entropy, options.entropyEnc || "hex"); + var nonce = utils.toArray(options.nonce, options.nonceEnc || "hex"); + var pers = utils.toArray(options.pers, options.persEnc || "hex"); + assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"); + this._init(entropy, nonce, pers); + } + exports$G = HmacDRBG; + HmacDRBG.prototype._init = function init(entropy, nonce, pers) { + var seed = entropy.concat(nonce).concat(pers); + this.K = new Array(this.outLen / 8); + this.V = new Array(this.outLen / 8); + for (var i6 = 0; i6 < this.V.length; i6++) { + this.K[i6] = 0; + this.V[i6] = 1; + } + this._update(seed); + this._reseed = 1; + this.reseedInterval = 281474976710656; + }; + HmacDRBG.prototype._hmac = function hmac() { + return new hash.hmac(this.hash, this.K); + }; + HmacDRBG.prototype._update = function update(seed) { + var kmac = this._hmac().update(this.V).update([0]); + if (seed) + kmac = kmac.update(seed); + this.K = kmac.digest(); + this.V = this._hmac().update(this.V).digest(); + if (!seed) + return; + this.K = this._hmac().update(this.V).update([1]).update(seed).digest(); + this.V = this._hmac().update(this.V).digest(); + }; + HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { + if (typeof entropyEnc !== "string") { + addEnc = add; + add = entropyEnc; + entropyEnc = null; + } + entropy = utils.toArray(entropy, entropyEnc); + add = utils.toArray(add, addEnc); + assert(entropy.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"); + this._update(entropy.concat(add || [])); + this._reseed = 1; + }; + HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { + if (this._reseed > this.reseedInterval) + throw new Error("Reseed is required"); + if (typeof enc !== "string") { + addEnc = add; + add = enc; + enc = null; + } + if (add) { + add = utils.toArray(add, addEnc || "hex"); + this._update(add); + } + var temp = []; + while (temp.length < len) { + this.V = this._hmac().update(this.V).digest(); + temp = temp.concat(this.V); + } + var res = temp.slice(0, len); + this._update(add); + this._reseed++; + return utils.encode(res, enc); + }; + return exports$G; +} +var exports$F = {}; +var _dewExec$E = false; +function dew$E() { + if (_dewExec$E) + return exports$F; + _dewExec$E = true; + var BN = dew$V(); + var utils = dew$T(); + var assert = utils.assert; + function KeyPair(ec, options) { + this.ec = ec; + this.priv = null; + this.pub = null; + if (options.priv) + this._importPrivate(options.priv, options.privEnc); + if (options.pub) + this._importPublic(options.pub, options.pubEnc); + } + exports$F = KeyPair; + KeyPair.fromPublic = function fromPublic(ec, pub, enc) { + if (pub instanceof KeyPair) + return pub; + return new KeyPair(ec, { + pub, + pubEnc: enc + }); + }; + KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { + if (priv instanceof KeyPair) + return priv; + return new KeyPair(ec, { + priv, + privEnc: enc + }); + }; + KeyPair.prototype.validate = function validate() { + var pub = this.getPublic(); + if (pub.isInfinity()) + return { + result: false, + reason: "Invalid public key" + }; + if (!pub.validate()) + return { + result: false, + reason: "Public key is not a point" + }; + if (!pub.mul(this.ec.curve.n).isInfinity()) + return { + result: false, + reason: "Public key * N != O" + }; + return { + result: true, + reason: null + }; + }; + KeyPair.prototype.getPublic = function getPublic(compact, enc) { + if (typeof compact === "string") { + enc = compact; + compact = null; + } + if (!this.pub) + this.pub = this.ec.g.mul(this.priv); + if (!enc) + return this.pub; + return this.pub.encode(enc, compact); + }; + KeyPair.prototype.getPrivate = function getPrivate(enc) { + if (enc === "hex") + return this.priv.toString(16, 2); + else + return this.priv; + }; + KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { + this.priv = new BN(key, enc || 16); + this.priv = this.priv.umod(this.ec.curve.n); + }; + KeyPair.prototype._importPublic = function _importPublic(key, enc) { + if (key.x || key.y) { + if (this.ec.curve.type === "mont") { + assert(key.x, "Need x coordinate"); + } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") { + assert(key.x && key.y, "Need both x and y coordinate"); + } + this.pub = this.ec.curve.point(key.x, key.y); + return; + } + this.pub = this.ec.curve.decodePoint(key, enc); + }; + KeyPair.prototype.derive = function derive(pub) { + if (!pub.validate()) { + assert(pub.validate(), "public point not validated"); + } + return pub.mul(this.priv).getX(); + }; + KeyPair.prototype.sign = function sign(msg, enc, options) { + return this.ec.sign(msg, this, enc, options); + }; + KeyPair.prototype.verify = function verify(msg, signature) { + return this.ec.verify(msg, signature, this); + }; + KeyPair.prototype.inspect = function inspect2() { + return ""; + }; + return exports$F; +} +var exports$E = {}; +var _dewExec$D = false; +function dew$D() { + if (_dewExec$D) + return exports$E; + _dewExec$D = true; + var BN = dew$V(); + var utils = dew$T(); + var assert = utils.assert; + function Signature(options, enc) { + if (options instanceof Signature) + return options; + if (this._importDER(options, enc)) + return; + assert(options.r && options.s, "Signature without r or s"); + this.r = new BN(options.r, 16); + this.s = new BN(options.s, 16); + if (options.recoveryParam === void 0) + this.recoveryParam = null; + else + this.recoveryParam = options.recoveryParam; + } + exports$E = Signature; + function Position() { + this.place = 0; + } + function getLength(buf, p6) { + var initial = buf[p6.place++]; + if (!(initial & 128)) { + return initial; + } + var octetLen = initial & 15; + if (octetLen === 0 || octetLen > 4) { + return false; + } + var val = 0; + for (var i6 = 0, off = p6.place; i6 < octetLen; i6++, off++) { + val <<= 8; + val |= buf[off]; + val >>>= 0; + } + if (val <= 127) { + return false; + } + p6.place = off; + return val; + } + function rmPadding(buf) { + var i6 = 0; + var len = buf.length - 1; + while (!buf[i6] && !(buf[i6 + 1] & 128) && i6 < len) { + i6++; + } + if (i6 === 0) { + return buf; + } + return buf.slice(i6); + } + Signature.prototype._importDER = function _importDER(data, enc) { + data = utils.toArray(data, enc); + var p6 = new Position(); + if (data[p6.place++] !== 48) { + return false; + } + var len = getLength(data, p6); + if (len === false) { + return false; + } + if (len + p6.place !== data.length) { + return false; + } + if (data[p6.place++] !== 2) { + return false; + } + var rlen = getLength(data, p6); + if (rlen === false) { + return false; + } + var r6 = data.slice(p6.place, rlen + p6.place); + p6.place += rlen; + if (data[p6.place++] !== 2) { + return false; + } + var slen = getLength(data, p6); + if (slen === false) { + return false; + } + if (data.length !== slen + p6.place) { + return false; + } + var s6 = data.slice(p6.place, slen + p6.place); + if (r6[0] === 0) { + if (r6[1] & 128) { + r6 = r6.slice(1); + } else { + return false; + } + } + if (s6[0] === 0) { + if (s6[1] & 128) { + s6 = s6.slice(1); + } else { + return false; + } + } + this.r = new BN(r6); + this.s = new BN(s6); + this.recoveryParam = null; + return true; + }; + function constructLength(arr, len) { + if (len < 128) { + arr.push(len); + return; + } + var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); + arr.push(octets | 128); + while (--octets) { + arr.push(len >>> (octets << 3) & 255); + } + arr.push(len); + } + Signature.prototype.toDER = function toDER(enc) { + var r6 = this.r.toArray(); + var s6 = this.s.toArray(); + if (r6[0] & 128) + r6 = [0].concat(r6); + if (s6[0] & 128) + s6 = [0].concat(s6); + r6 = rmPadding(r6); + s6 = rmPadding(s6); + while (!s6[0] && !(s6[1] & 128)) { + s6 = s6.slice(1); + } + var arr = [2]; + constructLength(arr, r6.length); + arr = arr.concat(r6); + arr.push(2); + constructLength(arr, s6.length); + var backHalf = arr.concat(s6); + var res = [48]; + constructLength(res, backHalf.length); + res = res.concat(backHalf); + return utils.encode(res, enc); + }; + return exports$E; +} +var exports$D = {}; +var _dewExec$C = false; +function dew$C() { + if (_dewExec$C) + return exports$D; + _dewExec$C = true; + var BN = dew$V(); + var HmacDRBG = dew$F(); + var utils = dew$T(); + var curves = dew$G(); + var rand = dew$11(); + var assert = utils.assert; + var KeyPair = dew$E(); + var Signature = dew$D(); + function EC(options) { + if (!(this instanceof EC)) + return new EC(options); + if (typeof options === "string") { + assert(Object.prototype.hasOwnProperty.call(curves, options), "Unknown curve " + options); + options = curves[options]; + } + if (options instanceof curves.PresetCurve) + options = { + curve: options + }; + this.curve = options.curve.curve; + this.n = this.curve.n; + this.nh = this.n.ushrn(1); + this.g = this.curve.g; + this.g = options.curve.g; + this.g.precompute(options.curve.n.bitLength() + 1); + this.hash = options.hash || options.curve.hash; + } + exports$D = EC; + EC.prototype.keyPair = function keyPair(options) { + return new KeyPair(this, options); + }; + EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { + return KeyPair.fromPrivate(this, priv, enc); + }; + EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { + return KeyPair.fromPublic(this, pub, enc); + }; + EC.prototype.genKeyPair = function genKeyPair(options) { + if (!options) + options = {}; + var drbg = new HmacDRBG({ + hash: this.hash, + pers: options.pers, + persEnc: options.persEnc || "utf8", + entropy: options.entropy || rand(this.hash.hmacStrength), + entropyEnc: options.entropy && options.entropyEnc || "utf8", + nonce: this.n.toArray() + }); + var bytes = this.n.byteLength(); + var ns2 = this.n.sub(new BN(2)); + for (; ; ) { + var priv = new BN(drbg.generate(bytes)); + if (priv.cmp(ns2) > 0) + continue; + priv.iaddn(1); + return this.keyFromPrivate(priv); + } + }; + EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) { + var delta = msg.byteLength() * 8 - this.n.bitLength(); + if (delta > 0) + msg = msg.ushrn(delta); + if (!truncOnly && msg.cmp(this.n) >= 0) + return msg.sub(this.n); + else + return msg; + }; + EC.prototype.sign = function sign(msg, key, enc, options) { + if (typeof enc === "object") { + options = enc; + enc = null; + } + if (!options) + options = {}; + key = this.keyFromPrivate(key, enc); + msg = this._truncateToN(new BN(msg, 16)); + var bytes = this.n.byteLength(); + var bkey = key.getPrivate().toArray("be", bytes); + var nonce = msg.toArray("be", bytes); + var drbg = new HmacDRBG({ + hash: this.hash, + entropy: bkey, + nonce, + pers: options.pers, + persEnc: options.persEnc || "utf8" + }); + var ns1 = this.n.sub(new BN(1)); + for (var iter = 0; ; iter++) { + var k4 = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())); + k4 = this._truncateToN(k4, true); + if (k4.cmpn(1) <= 0 || k4.cmp(ns1) >= 0) + continue; + var kp = this.g.mul(k4); + if (kp.isInfinity()) + continue; + var kpX = kp.getX(); + var r6 = kpX.umod(this.n); + if (r6.cmpn(0) === 0) + continue; + var s6 = k4.invm(this.n).mul(r6.mul(key.getPrivate()).iadd(msg)); + s6 = s6.umod(this.n); + if (s6.cmpn(0) === 0) + continue; + var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r6) !== 0 ? 2 : 0); + if (options.canonical && s6.cmp(this.nh) > 0) { + s6 = this.n.sub(s6); + recoveryParam ^= 1; + } + return new Signature({ + r: r6, + s: s6, + recoveryParam + }); + } + }; + EC.prototype.verify = function verify(msg, signature, key, enc) { + msg = this._truncateToN(new BN(msg, 16)); + key = this.keyFromPublic(key, enc); + signature = new Signature(signature, "hex"); + var r6 = signature.r; + var s6 = signature.s; + if (r6.cmpn(1) < 0 || r6.cmp(this.n) >= 0) + return false; + if (s6.cmpn(1) < 0 || s6.cmp(this.n) >= 0) + return false; + var sinv = s6.invm(this.n); + var u1 = sinv.mul(msg).umod(this.n); + var u22 = sinv.mul(r6).umod(this.n); + var p6; + if (!this.curve._maxwellTrick) { + p6 = this.g.mulAdd(u1, key.getPublic(), u22); + if (p6.isInfinity()) + return false; + return p6.getX().umod(this.n).cmp(r6) === 0; + } + p6 = this.g.jmulAdd(u1, key.getPublic(), u22); + if (p6.isInfinity()) + return false; + return p6.eqXToP(r6); + }; + EC.prototype.recoverPubKey = function(msg, signature, j4, enc) { + assert((3 & j4) === j4, "The recovery param is more than two bits"); + signature = new Signature(signature, enc); + var n6 = this.n; + var e8 = new BN(msg); + var r6 = signature.r; + var s6 = signature.s; + var isYOdd = j4 & 1; + var isSecondKey = j4 >> 1; + if (r6.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) + throw new Error("Unable to find sencond key candinate"); + if (isSecondKey) + r6 = this.curve.pointFromX(r6.add(this.curve.n), isYOdd); + else + r6 = this.curve.pointFromX(r6, isYOdd); + var rInv = signature.r.invm(n6); + var s1 = n6.sub(e8).mul(rInv).umod(n6); + var s22 = s6.mul(rInv).umod(n6); + return this.g.mulAdd(s1, r6, s22); + }; + EC.prototype.getKeyRecoveryParam = function(e8, signature, Q3, enc) { + signature = new Signature(signature, enc); + if (signature.recoveryParam !== null) + return signature.recoveryParam; + for (var i6 = 0; i6 < 4; i6++) { + var Qprime; + try { + Qprime = this.recoverPubKey(e8, signature, i6); + } catch (e9) { + continue; + } + if (Qprime.eq(Q3)) + return i6; + } + throw new Error("Unable to find valid recovery factor"); + }; + return exports$D; +} +var exports$C = {}; +var _dewExec$B = false; +function dew$B() { + if (_dewExec$B) + return exports$C; + _dewExec$B = true; + var utils = dew$T(); + var assert = utils.assert; + var parseBytes = utils.parseBytes; + var cachedProperty = utils.cachedProperty; + function KeyPair(eddsa, params) { + this.eddsa = eddsa; + this._secret = parseBytes(params.secret); + if (eddsa.isPoint(params.pub)) + this._pub = params.pub; + else + this._pubBytes = parseBytes(params.pub); + } + KeyPair.fromPublic = function fromPublic(eddsa, pub) { + if (pub instanceof KeyPair) + return pub; + return new KeyPair(eddsa, { + pub + }); + }; + KeyPair.fromSecret = function fromSecret(eddsa, secret) { + if (secret instanceof KeyPair) + return secret; + return new KeyPair(eddsa, { + secret + }); + }; + KeyPair.prototype.secret = function secret() { + return this._secret; + }; + cachedProperty(KeyPair, "pubBytes", function pubBytes() { + return this.eddsa.encodePoint(this.pub()); + }); + cachedProperty(KeyPair, "pub", function pub() { + if (this._pubBytes) + return this.eddsa.decodePoint(this._pubBytes); + return this.eddsa.g.mul(this.priv()); + }); + cachedProperty(KeyPair, "privBytes", function privBytes() { + var eddsa = this.eddsa; + var hash = this.hash(); + var lastIx = eddsa.encodingLength - 1; + var a6 = hash.slice(0, eddsa.encodingLength); + a6[0] &= 248; + a6[lastIx] &= 127; + a6[lastIx] |= 64; + return a6; + }); + cachedProperty(KeyPair, "priv", function priv() { + return this.eddsa.decodeInt(this.privBytes()); + }); + cachedProperty(KeyPair, "hash", function hash() { + return this.eddsa.hash().update(this.secret()).digest(); + }); + cachedProperty(KeyPair, "messagePrefix", function messagePrefix() { + return this.hash().slice(this.eddsa.encodingLength); + }); + KeyPair.prototype.sign = function sign(message) { + assert(this._secret, "KeyPair can only verify"); + return this.eddsa.sign(message, this); + }; + KeyPair.prototype.verify = function verify(message, sig) { + return this.eddsa.verify(message, sig, this); + }; + KeyPair.prototype.getSecret = function getSecret(enc) { + assert(this._secret, "KeyPair is public only"); + return utils.encode(this.secret(), enc); + }; + KeyPair.prototype.getPublic = function getPublic(enc) { + return utils.encode(this.pubBytes(), enc); + }; + exports$C = KeyPair; + return exports$C; +} +var exports$B = {}; +var _dewExec$A = false; +function dew$A() { + if (_dewExec$A) + return exports$B; + _dewExec$A = true; + var BN = dew$V(); + var utils = dew$T(); + var assert = utils.assert; + var cachedProperty = utils.cachedProperty; + var parseBytes = utils.parseBytes; + function Signature(eddsa, sig) { + this.eddsa = eddsa; + if (typeof sig !== "object") + sig = parseBytes(sig); + if (Array.isArray(sig)) { + sig = { + R: sig.slice(0, eddsa.encodingLength), + S: sig.slice(eddsa.encodingLength) + }; + } + assert(sig.R && sig.S, "Signature without R or S"); + if (eddsa.isPoint(sig.R)) + this._R = sig.R; + if (sig.S instanceof BN) + this._S = sig.S; + this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; + this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; + } + cachedProperty(Signature, "S", function S4() { + return this.eddsa.decodeInt(this.Sencoded()); + }); + cachedProperty(Signature, "R", function R4() { + return this.eddsa.decodePoint(this.Rencoded()); + }); + cachedProperty(Signature, "Rencoded", function Rencoded() { + return this.eddsa.encodePoint(this.R()); + }); + cachedProperty(Signature, "Sencoded", function Sencoded() { + return this.eddsa.encodeInt(this.S()); + }); + Signature.prototype.toBytes = function toBytes() { + return this.Rencoded().concat(this.Sencoded()); + }; + Signature.prototype.toHex = function toHex() { + return utils.encode(this.toBytes(), "hex").toUpperCase(); + }; + exports$B = Signature; + return exports$B; +} +var exports$A = {}; +var _dewExec$z = false; +function dew$z() { + if (_dewExec$z) + return exports$A; + _dewExec$z = true; + var hash = dew$I(); + var curves = dew$G(); + var utils = dew$T(); + var assert = utils.assert; + var parseBytes = utils.parseBytes; + var KeyPair = dew$B(); + var Signature = dew$A(); + function EDDSA(curve) { + assert(curve === "ed25519", "only tested with ed25519 so far"); + if (!(this instanceof EDDSA)) + return new EDDSA(curve); + curve = curves[curve].curve; + this.curve = curve; + this.g = curve.g; + this.g.precompute(curve.n.bitLength() + 1); + this.pointClass = curve.point().constructor; + this.encodingLength = Math.ceil(curve.n.bitLength() / 8); + this.hash = hash.sha512; + } + exports$A = EDDSA; + EDDSA.prototype.sign = function sign(message, secret) { + message = parseBytes(message); + var key = this.keyFromSecret(secret); + var r6 = this.hashInt(key.messagePrefix(), message); + var R4 = this.g.mul(r6); + var Rencoded = this.encodePoint(R4); + var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv()); + var S4 = r6.add(s_).umod(this.curve.n); + return this.makeSignature({ + R: R4, + S: S4, + Rencoded + }); + }; + EDDSA.prototype.verify = function verify(message, sig, pub) { + message = parseBytes(message); + sig = this.makeSignature(sig); + var key = this.keyFromPublic(pub); + var h6 = this.hashInt(sig.Rencoded(), key.pubBytes(), message); + var SG = this.g.mul(sig.S()); + var RplusAh = sig.R().add(key.pub().mul(h6)); + return RplusAh.eq(SG); + }; + EDDSA.prototype.hashInt = function hashInt() { + var hash2 = this.hash(); + for (var i6 = 0; i6 < arguments.length; i6++) + hash2.update(arguments[i6]); + return utils.intFromLE(hash2.digest()).umod(this.curve.n); + }; + EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { + return KeyPair.fromPublic(this, pub); + }; + EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { + return KeyPair.fromSecret(this, secret); + }; + EDDSA.prototype.makeSignature = function makeSignature(sig) { + if (sig instanceof Signature) + return sig; + return new Signature(this, sig); + }; + EDDSA.prototype.encodePoint = function encodePoint(point) { + var enc = point.getY().toArray("le", this.encodingLength); + enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0; + return enc; + }; + EDDSA.prototype.decodePoint = function decodePoint(bytes) { + bytes = utils.parseBytes(bytes); + var lastIx = bytes.length - 1; + var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128); + var xIsOdd = (bytes[lastIx] & 128) !== 0; + var y5 = utils.intFromLE(normed); + return this.curve.pointFromY(y5, xIsOdd); + }; + EDDSA.prototype.encodeInt = function encodeInt(num) { + return num.toArray("le", this.encodingLength); + }; + EDDSA.prototype.decodeInt = function decodeInt(bytes) { + return utils.intFromLE(bytes); + }; + EDDSA.prototype.isPoint = function isPoint(val) { + return val instanceof this.pointClass; + }; + return exports$A; +} +var exports$z = {}; +var _dewExec$y = false; +function dew$y() { + if (_dewExec$y) + return exports$z; + _dewExec$y = true; + var elliptic = exports$z; + elliptic.version = _package.version; + elliptic.utils = dew$T(); + elliptic.rand = dew$11(); + elliptic.curve = dew$O(); + elliptic.curves = dew$G(); + elliptic.ec = dew$C(); + elliptic.eddsa = dew$z(); + return exports$z; +} +var exports$y = {}; +var _dewExec$x = false; +var module$2 = { + exports: exports$y +}; +var _global$5 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$x() { + if (_dewExec$x) + return module$2.exports; + _dewExec$x = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$5).negative = 0; + (this || _global$5).words = null; + (this || _global$5).length = 0; + (this || _global$5).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$5).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$5).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$5).words = [number & 67108863]; + (this || _global$5).length = 1; + } else if (number < 4503599627370496) { + (this || _global$5).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$5).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$5).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$5).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$5).words = [0]; + (this || _global$5).length = 1; + return this || _global$5; + } + (this || _global$5).length = Math.ceil(number.length / 3); + (this || _global$5).words = new Array((this || _global$5).length); + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + (this || _global$5).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$5).words[j4] |= w4 << off & 67108863; + (this || _global$5).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$5).words[j4] |= w4 << off & 67108863; + (this || _global$5).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$5).length = Math.ceil((number.length - start) / 6); + (this || _global$5).words = new Array((this || _global$5).length); + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + (this || _global$5).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$5).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$5).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$5).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$5).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$5).words = [0]; + (this || _global$5).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$5).words[0] + word < 67108864) { + (this || _global$5).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$5).words[0] + word < 67108864) { + (this || _global$5).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$5).length); + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + dest.words[i6] = (this || _global$5).words[i6]; + } + dest.length = (this || _global$5).length; + dest.negative = (this || _global$5).negative; + dest.red = (this || _global$5).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$5).length < size) { + (this || _global$5).words[(this || _global$5).length++] = 0; + } + return this || _global$5; + }; + BN.prototype.strip = function strip() { + while ((this || _global$5).length > 1 && (this || _global$5).words[(this || _global$5).length - 1] === 0) { + (this || _global$5).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$5).length === 1 && (this || _global$5).words[0] === 0) { + (this || _global$5).negative = 0; + } + return this || _global$5; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$5).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + var w4 = (this || _global$5).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$5).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$5).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$5).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$5).words[0]; + if ((this || _global$5).length === 2) { + ret += (this || _global$5).words[1] * 67108864; + } else if ((this || _global$5).length === 3 && (this || _global$5).words[2] === 1) { + ret += 4503599627370496 + (this || _global$5).words[1] * 67108864; + } else if ((this || _global$5).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$5).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$5).words[(this || _global$5).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$5).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + var b4 = this._zeroBits((this || _global$5).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$5).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$5).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$5).negative ^= 1; + } + return this || _global$5; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$5).length < num.length) { + (this || _global$5).words[(this || _global$5).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$5).words[i6] = (this || _global$5).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$5).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$5).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$5); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$5).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$5); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$5).length > num.length) { + b4 = num; + } else { + b4 = this || _global$5; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$5).words[i6] = (this || _global$5).words[i6] & num.words[i6]; + } + (this || _global$5).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$5).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$5).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$5); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$5).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$5); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$5).length > num.length) { + a6 = this || _global$5; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$5).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$5) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$5).words[i6] = a6.words[i6]; + } + } + (this || _global$5).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$5).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$5).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$5); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$5).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$5); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$5).words[i6] = ~(this || _global$5).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$5).words[i6] = ~(this || _global$5).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$5).words[off] = (this || _global$5).words[off] | 1 << wbit; + } else { + (this || _global$5).words[off] = (this || _global$5).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$5).negative !== 0 && num.negative === 0) { + (this || _global$5).negative = 0; + r6 = this.isub(num); + (this || _global$5).negative ^= 1; + return this._normSign(); + } else if ((this || _global$5).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$5).length > num.length) { + a6 = this || _global$5; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$5).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$5).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$5).length = a6.length; + if (carry !== 0) { + (this || _global$5).words[(this || _global$5).length] = carry; + (this || _global$5).length++; + } else if (a6 !== (this || _global$5)) { + for (; i6 < a6.length; i6++) { + (this || _global$5).words[i6] = a6.words[i6]; + } + } + return this || _global$5; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$5).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$5).negative !== 0) { + (this || _global$5).negative = 0; + res = num.sub(this || _global$5); + (this || _global$5).negative = 1; + return res; + } + if ((this || _global$5).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$5); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$5).negative !== 0) { + (this || _global$5).negative = 0; + this.iadd(num); + (this || _global$5).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$5).negative = 0; + (this || _global$5).length = 1; + (this || _global$5).words[0] = 0; + return this || _global$5; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$5; + b4 = num; + } else { + a6 = num; + b4 = this || _global$5; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$5).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$5).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$5)) { + for (; i6 < a6.length; i6++) { + (this || _global$5).words[i6] = a6.words[i6]; + } + } + (this || _global$5).length = Math.max((this || _global$5).length, i6); + if (a6 !== (this || _global$5)) { + (this || _global$5).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$5).length + num.length; + if ((this || _global$5).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$5, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$5, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$5, num, out); + } else { + res = jumboMulTo(this || _global$5, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$5).x = x4; + (this || _global$5).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$5).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$5).length + num.length); + return jumboMulTo(this || _global$5, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$5); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$5).length; i6++) { + var w4 = ((this || _global$5).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$5).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$5).words[i6] = carry; + (this || _global$5).length++; + } + return this || _global$5; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$5); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$5; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$5).length; i6++) { + var newCarry = (this || _global$5).words[i6] & carryMask; + var c6 = ((this || _global$5).words[i6] | 0) - newCarry << r6; + (this || _global$5).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$5).words[i6] = carry; + (this || _global$5).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$5).length - 1; i6 >= 0; i6--) { + (this || _global$5).words[i6 + s6] = (this || _global$5).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$5).words[i6] = 0; + } + (this || _global$5).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$5).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$5).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$5).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$5).length > s6) { + (this || _global$5).length -= s6; + for (i6 = 0; i6 < (this || _global$5).length; i6++) { + (this || _global$5).words[i6] = (this || _global$5).words[i6 + s6]; + } + } else { + (this || _global$5).words[0] = 0; + (this || _global$5).length = 1; + } + var carry = 0; + for (i6 = (this || _global$5).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$5).words[i6] | 0; + (this || _global$5).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$5).length === 0) { + (this || _global$5).words[0] = 0; + (this || _global$5).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$5).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$5).length <= s6) + return false; + var w4 = (this || _global$5).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$5).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$5).length <= s6) { + return this || _global$5; + } + if (r6 !== 0) { + s6++; + } + (this || _global$5).length = Math.min(s6, (this || _global$5).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$5).words[(this || _global$5).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$5).negative !== 0) { + if ((this || _global$5).length === 1 && ((this || _global$5).words[0] | 0) < num) { + (this || _global$5).words[0] = num - ((this || _global$5).words[0] | 0); + (this || _global$5).negative = 0; + return this || _global$5; + } + (this || _global$5).negative = 0; + this.isubn(num); + (this || _global$5).negative = 1; + return this || _global$5; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$5).words[0] += num; + for (var i6 = 0; i6 < (this || _global$5).length && (this || _global$5).words[i6] >= 67108864; i6++) { + (this || _global$5).words[i6] -= 67108864; + if (i6 === (this || _global$5).length - 1) { + (this || _global$5).words[i6 + 1] = 1; + } else { + (this || _global$5).words[i6 + 1]++; + } + } + (this || _global$5).length = Math.max((this || _global$5).length, i6 + 1); + return this || _global$5; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$5).negative !== 0) { + (this || _global$5).negative = 0; + this.iaddn(num); + (this || _global$5).negative = 1; + return this || _global$5; + } + (this || _global$5).words[0] -= num; + if ((this || _global$5).length === 1 && (this || _global$5).words[0] < 0) { + (this || _global$5).words[0] = -(this || _global$5).words[0]; + (this || _global$5).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$5).length && (this || _global$5).words[i6] < 0; i6++) { + (this || _global$5).words[i6] += 67108864; + (this || _global$5).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$5).negative = 0; + return this || _global$5; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$5).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$5).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$5).length - shift; i6++) { + w4 = ((this || _global$5).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$5).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$5).length; i6++) { + w4 = -((this || _global$5).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$5).words[i6] = w4 & 67108863; + } + (this || _global$5).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$5).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$5).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$5).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$5).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$5).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$5 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$5).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$5).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$5).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$5).words[i6] | 0) + carry * 67108864; + (this || _global$5).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$5; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$5; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$5).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$5).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$5).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$5).length <= s6) { + this._expand(s6 + 1); + (this || _global$5).words[s6] |= q3; + return this || _global$5; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$5).length; i6++) { + var w4 = (this || _global$5).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$5).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$5).words[i6] = carry; + (this || _global$5).length++; + } + return this || _global$5; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$5).length === 1 && (this || _global$5).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$5).negative !== 0 && !negative) + return -1; + if ((this || _global$5).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$5).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$5).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$5).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$5).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$5).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$5).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$5).length > num.length) + return 1; + if ((this || _global$5).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$5).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$5).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$5).red, "Already a number in reduction context"); + assert((this || _global$5).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$5)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$5).red, "fromRed works only with numbers in reduction context"); + return (this || _global$5).red.convertFrom(this || _global$5); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$5).red = ctx; + return this || _global$5; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$5).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$5).red, "redAdd works only with red numbers"); + return (this || _global$5).red.add(this || _global$5, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$5).red, "redIAdd works only with red numbers"); + return (this || _global$5).red.iadd(this || _global$5, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$5).red, "redSub works only with red numbers"); + return (this || _global$5).red.sub(this || _global$5, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$5).red, "redISub works only with red numbers"); + return (this || _global$5).red.isub(this || _global$5, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$5).red, "redShl works only with red numbers"); + return (this || _global$5).red.shl(this || _global$5, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$5).red, "redMul works only with red numbers"); + (this || _global$5).red._verify2(this || _global$5, num); + return (this || _global$5).red.mul(this || _global$5, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$5).red, "redMul works only with red numbers"); + (this || _global$5).red._verify2(this || _global$5, num); + return (this || _global$5).red.imul(this || _global$5, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$5).red, "redSqr works only with red numbers"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.sqr(this || _global$5); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$5).red, "redISqr works only with red numbers"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.isqr(this || _global$5); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$5).red, "redSqrt works only with red numbers"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.sqrt(this || _global$5); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$5).red, "redInvm works only with red numbers"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.invm(this || _global$5); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$5).red, "redNeg works only with red numbers"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.neg(this || _global$5); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$5).red && !num.red, "redPow(normalNum)"); + (this || _global$5).red._verify1(this || _global$5); + return (this || _global$5).red.pow(this || _global$5, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$5).name = name; + (this || _global$5).p = new BN(p6, 16); + (this || _global$5).n = (this || _global$5).p.bitLength(); + (this || _global$5).k = new BN(1).iushln((this || _global$5).n).isub((this || _global$5).p); + (this || _global$5).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$5).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$5).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$5).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$5).n); + var cmp = rlen < (this || _global$5).n ? -1 : r6.ucmp((this || _global$5).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$5).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$5).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$5).k); + }; + function K256() { + MPrime.call(this || _global$5, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$5, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$5, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$5, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$5).m = prime.p; + (this || _global$5).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$5).m = m5; + (this || _global$5).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$5).prime) + return (this || _global$5).prime.ireduce(a6)._forceRed(this || _global$5); + return a6.umod((this || _global$5).m)._forceRed(this || _global$5); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$5).m.sub(a6)._forceRed(this || _global$5); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$5).m) >= 0) { + res.isub((this || _global$5).m); + } + return res._forceRed(this || _global$5); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$5).m) >= 0) { + res.isub((this || _global$5).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$5).m); + } + return res._forceRed(this || _global$5); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$5).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$5).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$5).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$5).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$5); + var nOne = one.redNeg(); + var lpow = (this || _global$5).m.subn(1).iushrn(1); + var z4 = (this || _global$5).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$5); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$5).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$5); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$5); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$5).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$5, m5); + (this || _global$5).shift = (this || _global$5).m.bitLength(); + if ((this || _global$5).shift % 26 !== 0) { + (this || _global$5).shift += 26 - (this || _global$5).shift % 26; + } + (this || _global$5).r = new BN(1).iushln((this || _global$5).shift); + (this || _global$5).r2 = this.imod((this || _global$5).r.sqr()); + (this || _global$5).rinv = (this || _global$5).r._invmp((this || _global$5).m); + (this || _global$5).minv = (this || _global$5).rinv.mul((this || _global$5).r).isubn(1).div((this || _global$5).m); + (this || _global$5).minv = (this || _global$5).minv.umod((this || _global$5).r); + (this || _global$5).minv = (this || _global$5).r.sub((this || _global$5).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$5).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$5).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$5).shift).mul((this || _global$5).minv).imaskn((this || _global$5).shift).mul((this || _global$5).m); + var u6 = t6.isub(c6).iushrn((this || _global$5).shift); + var res = u6; + if (u6.cmp((this || _global$5).m) >= 0) { + res = u6.isub((this || _global$5).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$5).m); + } + return res._forceRed(this || _global$5); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$5); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$5).shift).mul((this || _global$5).minv).imaskn((this || _global$5).shift).mul((this || _global$5).m); + var u6 = t6.isub(c6).iushrn((this || _global$5).shift); + var res = u6; + if (u6.cmp((this || _global$5).m) >= 0) { + res = u6.isub((this || _global$5).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$5).m); + } + return res._forceRed(this || _global$5); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$5).m).mul((this || _global$5).r2)); + return res._forceRed(this || _global$5); + }; + })(module$2, exports$y); + return module$2.exports; +} +var exports$x = {}; +var _dewExec$w = false; +function dew$w() { + if (_dewExec$w) + return exports$x; + _dewExec$w = true; + var process$1 = process; + var buffer$1 = buffer; + var Buffer2 = buffer$1.Buffer; + var safer = {}; + var key; + for (key in buffer$1) { + if (!buffer$1.hasOwnProperty(key)) + continue; + if (key === "SlowBuffer" || key === "Buffer") + continue; + safer[key] = buffer$1[key]; + } + var Safer = safer.Buffer = {}; + for (key in Buffer2) { + if (!Buffer2.hasOwnProperty(key)) + continue; + if (key === "allocUnsafe" || key === "allocUnsafeSlow") + continue; + Safer[key] = Buffer2[key]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process$1.binding("buffer").kStringMaxLength; + } catch (e8) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + exports$x = safer; + return exports$x; +} +var exports$w = {}; +var _dewExec$v = false; +function dew$v() { + if (_dewExec$v) + return exports$w; + _dewExec$v = true; + const inherits2 = dew$f(); + function Reporter(options) { + this._reporterState = { + obj: null, + path: [], + options: options || {}, + errors: [] + }; + } + exports$w.Reporter = Reporter; + Reporter.prototype.isError = function isError2(obj) { + return obj instanceof ReporterError; + }; + Reporter.prototype.save = function save() { + const state = this._reporterState; + return { + obj: state.obj, + pathLen: state.path.length + }; + }; + Reporter.prototype.restore = function restore(data) { + const state = this._reporterState; + state.obj = data.obj; + state.path = state.path.slice(0, data.pathLen); + }; + Reporter.prototype.enterKey = function enterKey(key) { + return this._reporterState.path.push(key); + }; + Reporter.prototype.exitKey = function exitKey(index) { + const state = this._reporterState; + state.path = state.path.slice(0, index - 1); + }; + Reporter.prototype.leaveKey = function leaveKey(index, key, value) { + const state = this._reporterState; + this.exitKey(index); + if (state.obj !== null) + state.obj[key] = value; + }; + Reporter.prototype.path = function path() { + return this._reporterState.path.join("/"); + }; + Reporter.prototype.enterObject = function enterObject() { + const state = this._reporterState; + const prev = state.obj; + state.obj = {}; + return prev; + }; + Reporter.prototype.leaveObject = function leaveObject(prev) { + const state = this._reporterState; + const now = state.obj; + state.obj = prev; + return now; + }; + Reporter.prototype.error = function error(msg) { + let err; + const state = this._reporterState; + const inherited = msg instanceof ReporterError; + if (inherited) { + err = msg; + } else { + err = new ReporterError(state.path.map(function(elem) { + return "[" + JSON.stringify(elem) + "]"; + }).join(""), msg.message || msg, msg.stack); + } + if (!state.options.partial) + throw err; + if (!inherited) + state.errors.push(err); + return err; + }; + Reporter.prototype.wrapResult = function wrapResult(result) { + const state = this._reporterState; + if (!state.options.partial) + return result; + return { + result: this.isError(result) ? null : result, + errors: state.errors + }; + }; + function ReporterError(path, msg) { + this.path = path; + this.rethrow(msg); + } + inherits2(ReporterError, Error); + ReporterError.prototype.rethrow = function rethrow(msg) { + this.message = msg + " at: " + (this.path || "(shallow)"); + if (Error.captureStackTrace) + Error.captureStackTrace(this, ReporterError); + if (!this.stack) { + try { + throw new Error(this.message); + } catch (e8) { + this.stack = e8.stack; + } + } + return this; + }; + return exports$w; +} +var exports$v = {}; +var _dewExec$u = false; +function dew$u() { + if (_dewExec$u) + return exports$v; + _dewExec$u = true; + const inherits2 = dew$f(); + const Reporter = dew$v().Reporter; + const Buffer2 = dew$w().Buffer; + function DecoderBuffer(base, options) { + Reporter.call(this, options); + if (!Buffer2.isBuffer(base)) { + this.error("Input not Buffer"); + return; + } + this.base = base; + this.offset = 0; + this.length = base.length; + } + inherits2(DecoderBuffer, Reporter); + exports$v.DecoderBuffer = DecoderBuffer; + DecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) { + if (data instanceof DecoderBuffer) { + return true; + } + const isCompatible = typeof data === "object" && Buffer2.isBuffer(data.base) && data.constructor.name === "DecoderBuffer" && typeof data.offset === "number" && typeof data.length === "number" && typeof data.save === "function" && typeof data.restore === "function" && typeof data.isEmpty === "function" && typeof data.readUInt8 === "function" && typeof data.skip === "function" && typeof data.raw === "function"; + return isCompatible; + }; + DecoderBuffer.prototype.save = function save() { + return { + offset: this.offset, + reporter: Reporter.prototype.save.call(this) + }; + }; + DecoderBuffer.prototype.restore = function restore(save) { + const res = new DecoderBuffer(this.base); + res.offset = save.offset; + res.length = this.offset; + this.offset = save.offset; + Reporter.prototype.restore.call(this, save.reporter); + return res; + }; + DecoderBuffer.prototype.isEmpty = function isEmpty() { + return this.offset === this.length; + }; + DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { + if (this.offset + 1 <= this.length) + return this.base.readUInt8(this.offset++, true); + else + return this.error(fail || "DecoderBuffer overrun"); + }; + DecoderBuffer.prototype.skip = function skip(bytes, fail) { + if (!(this.offset + bytes <= this.length)) + return this.error(fail || "DecoderBuffer overrun"); + const res = new DecoderBuffer(this.base); + res._reporterState = this._reporterState; + res.offset = this.offset; + res.length = this.offset + bytes; + this.offset += bytes; + return res; + }; + DecoderBuffer.prototype.raw = function raw(save) { + return this.base.slice(save ? save.offset : this.offset, this.length); + }; + function EncoderBuffer(value, reporter) { + if (Array.isArray(value)) { + this.length = 0; + this.value = value.map(function(item) { + if (!EncoderBuffer.isEncoderBuffer(item)) + item = new EncoderBuffer(item, reporter); + this.length += item.length; + return item; + }, this); + } else if (typeof value === "number") { + if (!(0 <= value && value <= 255)) + return reporter.error("non-byte EncoderBuffer value"); + this.value = value; + this.length = 1; + } else if (typeof value === "string") { + this.value = value; + this.length = Buffer2.byteLength(value); + } else if (Buffer2.isBuffer(value)) { + this.value = value; + this.length = value.length; + } else { + return reporter.error("Unsupported type: " + typeof value); + } + } + exports$v.EncoderBuffer = EncoderBuffer; + EncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) { + if (data instanceof EncoderBuffer) { + return true; + } + const isCompatible = typeof data === "object" && data.constructor.name === "EncoderBuffer" && typeof data.length === "number" && typeof data.join === "function"; + return isCompatible; + }; + EncoderBuffer.prototype.join = function join(out, offset) { + if (!out) + out = Buffer2.alloc(this.length); + if (!offset) + offset = 0; + if (this.length === 0) + return out; + if (Array.isArray(this.value)) { + this.value.forEach(function(item) { + item.join(out, offset); + offset += item.length; + }); + } else { + if (typeof this.value === "number") + out[offset] = this.value; + else if (typeof this.value === "string") + out.write(this.value, offset); + else if (Buffer2.isBuffer(this.value)) + this.value.copy(out, offset); + offset += this.length; + } + return out; + }; + return exports$v; +} +var exports$u = {}; +var _dewExec$t = false; +function dew$t() { + if (_dewExec$t) + return exports$u; + _dewExec$t = true; + const Reporter = dew$v().Reporter; + const EncoderBuffer = dew$u().EncoderBuffer; + const DecoderBuffer = dew$u().DecoderBuffer; + const assert = dew$2m(); + const tags = ["seq", "seqof", "set", "setof", "objid", "bool", "gentime", "utctime", "null_", "enum", "int", "objDesc", "bitstr", "bmpstr", "charstr", "genstr", "graphstr", "ia5str", "iso646str", "numstr", "octstr", "printstr", "t61str", "unistr", "utf8str", "videostr"]; + const methods = ["key", "obj", "use", "optional", "explicit", "implicit", "def", "choice", "any", "contains"].concat(tags); + const overrided = ["_peekTag", "_decodeTag", "_use", "_decodeStr", "_decodeObjid", "_decodeTime", "_decodeNull", "_decodeInt", "_decodeBool", "_decodeList", "_encodeComposite", "_encodeStr", "_encodeObjid", "_encodeTime", "_encodeNull", "_encodeInt", "_encodeBool"]; + function Node(enc, parent, name) { + const state = {}; + this._baseState = state; + state.name = name; + state.enc = enc; + state.parent = parent || null; + state.children = null; + state.tag = null; + state.args = null; + state.reverseArgs = null; + state.choice = null; + state.optional = false; + state.any = false; + state.obj = false; + state.use = null; + state.useDecoder = null; + state.key = null; + state["default"] = null; + state.explicit = null; + state.implicit = null; + state.contains = null; + if (!state.parent) { + state.children = []; + this._wrap(); + } + } + exports$u = Node; + const stateProps = ["enc", "parent", "children", "tag", "args", "reverseArgs", "choice", "optional", "any", "obj", "use", "alteredUse", "key", "default", "explicit", "implicit", "contains"]; + Node.prototype.clone = function clone() { + const state = this._baseState; + const cstate = {}; + stateProps.forEach(function(prop) { + cstate[prop] = state[prop]; + }); + const res = new this.constructor(cstate.parent); + res._baseState = cstate; + return res; + }; + Node.prototype._wrap = function wrap() { + const state = this._baseState; + methods.forEach(function(method) { + this[method] = function _wrappedMethod() { + const clone = new this.constructor(this); + state.children.push(clone); + return clone[method].apply(clone, arguments); + }; + }, this); + }; + Node.prototype._init = function init(body) { + const state = this._baseState; + assert(state.parent === null); + body.call(this); + state.children = state.children.filter(function(child) { + return child._baseState.parent === this; + }, this); + assert.equal(state.children.length, 1, "Root node can have only one child"); + }; + Node.prototype._useArgs = function useArgs(args) { + const state = this._baseState; + const children = args.filter(function(arg) { + return arg instanceof this.constructor; + }, this); + args = args.filter(function(arg) { + return !(arg instanceof this.constructor); + }, this); + if (children.length !== 0) { + assert(state.children === null); + state.children = children; + children.forEach(function(child) { + child._baseState.parent = this; + }, this); + } + if (args.length !== 0) { + assert(state.args === null); + state.args = args; + state.reverseArgs = args.map(function(arg) { + if (typeof arg !== "object" || arg.constructor !== Object) + return arg; + const res = {}; + Object.keys(arg).forEach(function(key) { + if (key == (key | 0)) + key |= 0; + const value = arg[key]; + res[value] = key; + }); + return res; + }); + } + }; + overrided.forEach(function(method) { + Node.prototype[method] = function _overrided() { + const state = this._baseState; + throw new Error(method + " not implemented for encoding: " + state.enc); + }; + }); + tags.forEach(function(tag) { + Node.prototype[tag] = function _tagMethod() { + const state = this._baseState; + const args = Array.prototype.slice.call(arguments); + assert(state.tag === null); + state.tag = tag; + this._useArgs(args); + return this; + }; + }); + Node.prototype.use = function use(item) { + assert(item); + const state = this._baseState; + assert(state.use === null); + state.use = item; + return this; + }; + Node.prototype.optional = function optional() { + const state = this._baseState; + state.optional = true; + return this; + }; + Node.prototype.def = function def(val) { + const state = this._baseState; + assert(state["default"] === null); + state["default"] = val; + state.optional = true; + return this; + }; + Node.prototype.explicit = function explicit(num) { + const state = this._baseState; + assert(state.explicit === null && state.implicit === null); + state.explicit = num; + return this; + }; + Node.prototype.implicit = function implicit(num) { + const state = this._baseState; + assert(state.explicit === null && state.implicit === null); + state.implicit = num; + return this; + }; + Node.prototype.obj = function obj() { + const state = this._baseState; + const args = Array.prototype.slice.call(arguments); + state.obj = true; + if (args.length !== 0) + this._useArgs(args); + return this; + }; + Node.prototype.key = function key(newKey) { + const state = this._baseState; + assert(state.key === null); + state.key = newKey; + return this; + }; + Node.prototype.any = function any() { + const state = this._baseState; + state.any = true; + return this; + }; + Node.prototype.choice = function choice(obj) { + const state = this._baseState; + assert(state.choice === null); + state.choice = obj; + this._useArgs(Object.keys(obj).map(function(key) { + return obj[key]; + })); + return this; + }; + Node.prototype.contains = function contains(item) { + const state = this._baseState; + assert(state.use === null); + state.contains = item; + return this; + }; + Node.prototype._decode = function decode(input, options) { + const state = this._baseState; + if (state.parent === null) + return input.wrapResult(state.children[0]._decode(input, options)); + let result = state["default"]; + let present = true; + let prevKey = null; + if (state.key !== null) + prevKey = input.enterKey(state.key); + if (state.optional) { + let tag = null; + if (state.explicit !== null) + tag = state.explicit; + else if (state.implicit !== null) + tag = state.implicit; + else if (state.tag !== null) + tag = state.tag; + if (tag === null && !state.any) { + const save = input.save(); + try { + if (state.choice === null) + this._decodeGeneric(state.tag, input, options); + else + this._decodeChoice(input, options); + present = true; + } catch (e8) { + present = false; + } + input.restore(save); + } else { + present = this._peekTag(input, tag, state.any); + if (input.isError(present)) + return present; + } + } + let prevObj; + if (state.obj && present) + prevObj = input.enterObject(); + if (present) { + if (state.explicit !== null) { + const explicit = this._decodeTag(input, state.explicit); + if (input.isError(explicit)) + return explicit; + input = explicit; + } + const start = input.offset; + if (state.use === null && state.choice === null) { + let save; + if (state.any) + save = input.save(); + const body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any); + if (input.isError(body)) + return body; + if (state.any) + result = input.raw(save); + else + input = body; + } + if (options && options.track && state.tag !== null) + options.track(input.path(), start, input.length, "tagged"); + if (options && options.track && state.tag !== null) + options.track(input.path(), input.offset, input.length, "content"); + if (state.any) + ; + else if (state.choice === null) { + result = this._decodeGeneric(state.tag, input, options); + } else { + result = this._decodeChoice(input, options); + } + if (input.isError(result)) + return result; + if (!state.any && state.choice === null && state.children !== null) { + state.children.forEach(function decodeChildren(child) { + child._decode(input, options); + }); + } + if (state.contains && (state.tag === "octstr" || state.tag === "bitstr")) { + const data = new DecoderBuffer(result); + result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options); + } + } + if (state.obj && present) + result = input.leaveObject(prevObj); + if (state.key !== null && (result !== null || present === true)) + input.leaveKey(prevKey, state.key, result); + else if (prevKey !== null) + input.exitKey(prevKey); + return result; + }; + Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { + const state = this._baseState; + if (tag === "seq" || tag === "set") + return null; + if (tag === "seqof" || tag === "setof") + return this._decodeList(input, tag, state.args[0], options); + else if (/str$/.test(tag)) + return this._decodeStr(input, tag, options); + else if (tag === "objid" && state.args) + return this._decodeObjid(input, state.args[0], state.args[1], options); + else if (tag === "objid") + return this._decodeObjid(input, null, null, options); + else if (tag === "gentime" || tag === "utctime") + return this._decodeTime(input, tag, options); + else if (tag === "null_") + return this._decodeNull(input, options); + else if (tag === "bool") + return this._decodeBool(input, options); + else if (tag === "objDesc") + return this._decodeStr(input, tag, options); + else if (tag === "int" || tag === "enum") + return this._decodeInt(input, state.args && state.args[0], options); + if (state.use !== null) { + return this._getUse(state.use, input._reporterState.obj)._decode(input, options); + } else { + return input.error("unknown tag: " + tag); + } + }; + Node.prototype._getUse = function _getUse(entity, obj) { + const state = this._baseState; + state.useDecoder = this._use(entity, obj); + assert(state.useDecoder._baseState.parent === null); + state.useDecoder = state.useDecoder._baseState.children[0]; + if (state.implicit !== state.useDecoder._baseState.implicit) { + state.useDecoder = state.useDecoder.clone(); + state.useDecoder._baseState.implicit = state.implicit; + } + return state.useDecoder; + }; + Node.prototype._decodeChoice = function decodeChoice(input, options) { + const state = this._baseState; + let result = null; + let match = false; + Object.keys(state.choice).some(function(key) { + const save = input.save(); + const node = state.choice[key]; + try { + const value = node._decode(input, options); + if (input.isError(value)) + return false; + result = { + type: key, + value + }; + match = true; + } catch (e8) { + input.restore(save); + return false; + } + return true; + }, this); + if (!match) + return input.error("Choice not matched"); + return result; + }; + Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { + return new EncoderBuffer(data, this.reporter); + }; + Node.prototype._encode = function encode(data, reporter, parent) { + const state = this._baseState; + if (state["default"] !== null && state["default"] === data) + return; + const result = this._encodeValue(data, reporter, parent); + if (result === void 0) + return; + if (this._skipDefault(result, reporter, parent)) + return; + return result; + }; + Node.prototype._encodeValue = function encode(data, reporter, parent) { + const state = this._baseState; + if (state.parent === null) + return state.children[0]._encode(data, reporter || new Reporter()); + let result = null; + this.reporter = reporter; + if (state.optional && data === void 0) { + if (state["default"] !== null) + data = state["default"]; + else + return; + } + let content = null; + let primitive = false; + if (state.any) { + result = this._createEncoderBuffer(data); + } else if (state.choice) { + result = this._encodeChoice(data, reporter); + } else if (state.contains) { + content = this._getUse(state.contains, parent)._encode(data, reporter); + primitive = true; + } else if (state.children) { + content = state.children.map(function(child) { + if (child._baseState.tag === "null_") + return child._encode(null, reporter, data); + if (child._baseState.key === null) + return reporter.error("Child should have a key"); + const prevKey = reporter.enterKey(child._baseState.key); + if (typeof data !== "object") + return reporter.error("Child expected, but input is not object"); + const res = child._encode(data[child._baseState.key], reporter, data); + reporter.leaveKey(prevKey); + return res; + }, this).filter(function(child) { + return child; + }); + content = this._createEncoderBuffer(content); + } else { + if (state.tag === "seqof" || state.tag === "setof") { + if (!(state.args && state.args.length === 1)) + return reporter.error("Too many args for : " + state.tag); + if (!Array.isArray(data)) + return reporter.error("seqof/setof, but data is not Array"); + const child = this.clone(); + child._baseState.implicit = null; + content = this._createEncoderBuffer(data.map(function(item) { + const state2 = this._baseState; + return this._getUse(state2.args[0], data)._encode(item, reporter); + }, child)); + } else if (state.use !== null) { + result = this._getUse(state.use, parent)._encode(data, reporter); + } else { + content = this._encodePrimitive(state.tag, data); + primitive = true; + } + } + if (!state.any && state.choice === null) { + const tag = state.implicit !== null ? state.implicit : state.tag; + const cls = state.implicit === null ? "universal" : "context"; + if (tag === null) { + if (state.use === null) + reporter.error("Tag could be omitted only for .use()"); + } else { + if (state.use === null) + result = this._encodeComposite(tag, primitive, cls, content); + } + } + if (state.explicit !== null) + result = this._encodeComposite(state.explicit, false, "context", result); + return result; + }; + Node.prototype._encodeChoice = function encodeChoice(data, reporter) { + const state = this._baseState; + const node = state.choice[data.type]; + if (!node) { + assert(false, data.type + " not found in " + JSON.stringify(Object.keys(state.choice))); + } + return node._encode(data.value, reporter); + }; + Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { + const state = this._baseState; + if (/str$/.test(tag)) + return this._encodeStr(data, tag); + else if (tag === "objid" && state.args) + return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); + else if (tag === "objid") + return this._encodeObjid(data, null, null); + else if (tag === "gentime" || tag === "utctime") + return this._encodeTime(data, tag); + else if (tag === "null_") + return this._encodeNull(); + else if (tag === "int" || tag === "enum") + return this._encodeInt(data, state.args && state.reverseArgs[0]); + else if (tag === "bool") + return this._encodeBool(data); + else if (tag === "objDesc") + return this._encodeStr(data, tag); + else + throw new Error("Unsupported tag: " + tag); + }; + Node.prototype._isNumstr = function isNumstr(str) { + return /^[0-9 ]*$/.test(str); + }; + Node.prototype._isPrintstr = function isPrintstr(str) { + return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str); + }; + return exports$u; +} +var exports$t = {}; +var _dewExec$s = false; +function dew$s() { + if (_dewExec$s) + return exports$t; + _dewExec$s = true; + function reverse(map) { + const res = {}; + Object.keys(map).forEach(function(key) { + if ((key | 0) == key) + key = key | 0; + const value = map[key]; + res[value] = key; + }); + return res; + } + exports$t.tagClass = { + 0: "universal", + 1: "application", + 2: "context", + 3: "private" + }; + exports$t.tagClassByName = reverse(exports$t.tagClass); + exports$t.tag = { + 0: "end", + 1: "bool", + 2: "int", + 3: "bitstr", + 4: "octstr", + 5: "null_", + 6: "objid", + 7: "objDesc", + 8: "external", + 9: "real", + 10: "enum", + 11: "embed", + 12: "utf8str", + 13: "relativeOid", + 16: "seq", + 17: "set", + 18: "numstr", + 19: "printstr", + 20: "t61str", + 21: "videostr", + 22: "ia5str", + 23: "utctime", + 24: "gentime", + 25: "graphstr", + 26: "iso646str", + 27: "genstr", + 28: "unistr", + 29: "charstr", + 30: "bmpstr" + }; + exports$t.tagByName = reverse(exports$t.tag); + return exports$t; +} +var exports$s = {}; +var _dewExec$r = false; +function dew$r() { + if (_dewExec$r) + return exports$s; + _dewExec$r = true; + const inherits2 = dew$f(); + const Buffer2 = dew$w().Buffer; + const Node = dew$t(); + const der = dew$s(); + function DEREncoder(entity) { + this.enc = "der"; + this.name = entity.name; + this.entity = entity; + this.tree = new DERNode(); + this.tree._init(entity.body); + } + exports$s = DEREncoder; + DEREncoder.prototype.encode = function encode(data, reporter) { + return this.tree._encode(data, reporter).join(); + }; + function DERNode(parent) { + Node.call(this, "der", parent); + } + inherits2(DERNode, Node); + DERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) { + const encodedTag = encodeTag(tag, primitive, cls, this.reporter); + if (content.length < 128) { + const header2 = Buffer2.alloc(2); + header2[0] = encodedTag; + header2[1] = content.length; + return this._createEncoderBuffer([header2, content]); + } + let lenOctets = 1; + for (let i6 = content.length; i6 >= 256; i6 >>= 8) + lenOctets++; + const header = Buffer2.alloc(1 + 1 + lenOctets); + header[0] = encodedTag; + header[1] = 128 | lenOctets; + for (let i6 = 1 + lenOctets, j4 = content.length; j4 > 0; i6--, j4 >>= 8) + header[i6] = j4 & 255; + return this._createEncoderBuffer([header, content]); + }; + DERNode.prototype._encodeStr = function encodeStr(str, tag) { + if (tag === "bitstr") { + return this._createEncoderBuffer([str.unused | 0, str.data]); + } else if (tag === "bmpstr") { + const buf = Buffer2.alloc(str.length * 2); + for (let i6 = 0; i6 < str.length; i6++) { + buf.writeUInt16BE(str.charCodeAt(i6), i6 * 2); + } + return this._createEncoderBuffer(buf); + } else if (tag === "numstr") { + if (!this._isNumstr(str)) { + return this.reporter.error("Encoding of string type: numstr supports only digits and space"); + } + return this._createEncoderBuffer(str); + } else if (tag === "printstr") { + if (!this._isPrintstr(str)) { + return this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"); + } + return this._createEncoderBuffer(str); + } else if (/str$/.test(tag)) { + return this._createEncoderBuffer(str); + } else if (tag === "objDesc") { + return this._createEncoderBuffer(str); + } else { + return this.reporter.error("Encoding of string type: " + tag + " unsupported"); + } + }; + DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { + if (typeof id === "string") { + if (!values) + return this.reporter.error("string objid given, but no values map found"); + if (!values.hasOwnProperty(id)) + return this.reporter.error("objid not found in values map"); + id = values[id].split(/[\s.]+/g); + for (let i6 = 0; i6 < id.length; i6++) + id[i6] |= 0; + } else if (Array.isArray(id)) { + id = id.slice(); + for (let i6 = 0; i6 < id.length; i6++) + id[i6] |= 0; + } + if (!Array.isArray(id)) { + return this.reporter.error("objid() should be either array or string, got: " + JSON.stringify(id)); + } + if (!relative) { + if (id[1] >= 40) + return this.reporter.error("Second objid identifier OOB"); + id.splice(0, 2, id[0] * 40 + id[1]); + } + let size = 0; + for (let i6 = 0; i6 < id.length; i6++) { + let ident = id[i6]; + for (size++; ident >= 128; ident >>= 7) + size++; + } + const objid = Buffer2.alloc(size); + let offset = objid.length - 1; + for (let i6 = id.length - 1; i6 >= 0; i6--) { + let ident = id[i6]; + objid[offset--] = ident & 127; + while ((ident >>= 7) > 0) + objid[offset--] = 128 | ident & 127; + } + return this._createEncoderBuffer(objid); + }; + function two(num) { + if (num < 10) + return "0" + num; + else + return num; + } + DERNode.prototype._encodeTime = function encodeTime(time, tag) { + let str; + const date = new Date(time); + if (tag === "gentime") { + str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z"].join(""); + } else if (tag === "utctime") { + str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), "Z"].join(""); + } else { + this.reporter.error("Encoding " + tag + " time is not supported yet"); + } + return this._encodeStr(str, "octstr"); + }; + DERNode.prototype._encodeNull = function encodeNull() { + return this._createEncoderBuffer(""); + }; + DERNode.prototype._encodeInt = function encodeInt(num, values) { + if (typeof num === "string") { + if (!values) + return this.reporter.error("String int or enum given, but no values map"); + if (!values.hasOwnProperty(num)) { + return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num)); + } + num = values[num]; + } + if (typeof num !== "number" && !Buffer2.isBuffer(num)) { + const numArray = num.toArray(); + if (!num.sign && numArray[0] & 128) { + numArray.unshift(0); + } + num = Buffer2.from(numArray); + } + if (Buffer2.isBuffer(num)) { + let size2 = num.length; + if (num.length === 0) + size2++; + const out2 = Buffer2.alloc(size2); + num.copy(out2); + if (num.length === 0) + out2[0] = 0; + return this._createEncoderBuffer(out2); + } + if (num < 128) + return this._createEncoderBuffer(num); + if (num < 256) + return this._createEncoderBuffer([0, num]); + let size = 1; + for (let i6 = num; i6 >= 256; i6 >>= 8) + size++; + const out = new Array(size); + for (let i6 = out.length - 1; i6 >= 0; i6--) { + out[i6] = num & 255; + num >>= 8; + } + if (out[0] & 128) { + out.unshift(0); + } + return this._createEncoderBuffer(Buffer2.from(out)); + }; + DERNode.prototype._encodeBool = function encodeBool(value) { + return this._createEncoderBuffer(value ? 255 : 0); + }; + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === "function") + entity = entity(obj); + return entity._getEncoder("der").tree; + }; + DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { + const state = this._baseState; + let i6; + if (state["default"] === null) + return false; + const data = dataBuffer.join(); + if (state.defaultBuffer === void 0) + state.defaultBuffer = this._encodeValue(state["default"], reporter, parent).join(); + if (data.length !== state.defaultBuffer.length) + return false; + for (i6 = 0; i6 < data.length; i6++) + if (data[i6] !== state.defaultBuffer[i6]) + return false; + return true; + }; + function encodeTag(tag, primitive, cls, reporter) { + let res; + if (tag === "seqof") + tag = "seq"; + else if (tag === "setof") + tag = "set"; + if (der.tagByName.hasOwnProperty(tag)) + res = der.tagByName[tag]; + else if (typeof tag === "number" && (tag | 0) === tag) + res = tag; + else + return reporter.error("Unknown tag: " + tag); + if (res >= 31) + return reporter.error("Multi-octet tag encoding unsupported"); + if (!primitive) + res |= 32; + res |= der.tagClassByName[cls || "universal"] << 6; + return res; + } + return exports$s; +} +var exports$r = {}; +var _dewExec$q = false; +function dew$q() { + if (_dewExec$q) + return exports$r; + _dewExec$q = true; + const inherits2 = dew$f(); + const DEREncoder = dew$r(); + function PEMEncoder(entity) { + DEREncoder.call(this, entity); + this.enc = "pem"; + } + inherits2(PEMEncoder, DEREncoder); + exports$r = PEMEncoder; + PEMEncoder.prototype.encode = function encode(data, options) { + const buf = DEREncoder.prototype.encode.call(this, data); + const p6 = buf.toString("base64"); + const out = ["-----BEGIN " + options.label + "-----"]; + for (let i6 = 0; i6 < p6.length; i6 += 64) + out.push(p6.slice(i6, i6 + 64)); + out.push("-----END " + options.label + "-----"); + return out.join("\n"); + }; + return exports$r; +} +var exports$q = {}; +var _dewExec$p = false; +function dew$p() { + if (_dewExec$p) + return exports$q; + _dewExec$p = true; + const encoders = exports$q; + encoders.der = dew$r(); + encoders.pem = dew$q(); + return exports$q; +} +var exports$p = {}; +var _dewExec$o = false; +function dew$o() { + if (_dewExec$o) + return exports$p; + _dewExec$o = true; + const inherits2 = dew$f(); + const bignum = dew$x(); + const DecoderBuffer = dew$u().DecoderBuffer; + const Node = dew$t(); + const der = dew$s(); + function DERDecoder(entity) { + this.enc = "der"; + this.name = entity.name; + this.entity = entity; + this.tree = new DERNode(); + this.tree._init(entity.body); + } + exports$p = DERDecoder; + DERDecoder.prototype.decode = function decode(data, options) { + if (!DecoderBuffer.isDecoderBuffer(data)) { + data = new DecoderBuffer(data, options); + } + return this.tree._decode(data, options); + }; + function DERNode(parent) { + Node.call(this, "der", parent); + } + inherits2(DERNode, Node); + DERNode.prototype._peekTag = function peekTag(buffer2, tag, any) { + if (buffer2.isEmpty()) + return false; + const state = buffer2.save(); + const decodedTag = derDecodeTag(buffer2, 'Failed to peek tag: "' + tag + '"'); + if (buffer2.isError(decodedTag)) + return decodedTag; + buffer2.restore(state); + return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + "of" === tag || any; + }; + DERNode.prototype._decodeTag = function decodeTag(buffer2, tag, any) { + const decodedTag = derDecodeTag(buffer2, 'Failed to decode tag of "' + tag + '"'); + if (buffer2.isError(decodedTag)) + return decodedTag; + let len = derDecodeLen(buffer2, decodedTag.primitive, 'Failed to get length of "' + tag + '"'); + if (buffer2.isError(len)) + return len; + if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + "of" !== tag) { + return buffer2.error('Failed to match tag: "' + tag + '"'); + } + if (decodedTag.primitive || len !== null) + return buffer2.skip(len, 'Failed to match body of: "' + tag + '"'); + const state = buffer2.save(); + const res = this._skipUntilEnd(buffer2, 'Failed to skip indefinite length body: "' + this.tag + '"'); + if (buffer2.isError(res)) + return res; + len = buffer2.offset - state.offset; + buffer2.restore(state); + return buffer2.skip(len, 'Failed to match body of: "' + tag + '"'); + }; + DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer2, fail) { + for (; ; ) { + const tag = derDecodeTag(buffer2, fail); + if (buffer2.isError(tag)) + return tag; + const len = derDecodeLen(buffer2, tag.primitive, fail); + if (buffer2.isError(len)) + return len; + let res; + if (tag.primitive || len !== null) + res = buffer2.skip(len); + else + res = this._skipUntilEnd(buffer2, fail); + if (buffer2.isError(res)) + return res; + if (tag.tagStr === "end") + break; + } + }; + DERNode.prototype._decodeList = function decodeList(buffer2, tag, decoder, options) { + const result = []; + while (!buffer2.isEmpty()) { + const possibleEnd = this._peekTag(buffer2, "end"); + if (buffer2.isError(possibleEnd)) + return possibleEnd; + const res = decoder.decode(buffer2, "der", options); + if (buffer2.isError(res) && possibleEnd) + break; + result.push(res); + } + return result; + }; + DERNode.prototype._decodeStr = function decodeStr(buffer2, tag) { + if (tag === "bitstr") { + const unused = buffer2.readUInt8(); + if (buffer2.isError(unused)) + return unused; + return { + unused, + data: buffer2.raw() + }; + } else if (tag === "bmpstr") { + const raw = buffer2.raw(); + if (raw.length % 2 === 1) + return buffer2.error("Decoding of string type: bmpstr length mismatch"); + let str = ""; + for (let i6 = 0; i6 < raw.length / 2; i6++) { + str += String.fromCharCode(raw.readUInt16BE(i6 * 2)); + } + return str; + } else if (tag === "numstr") { + const numstr = buffer2.raw().toString("ascii"); + if (!this._isNumstr(numstr)) { + return buffer2.error("Decoding of string type: numstr unsupported characters"); + } + return numstr; + } else if (tag === "octstr") { + return buffer2.raw(); + } else if (tag === "objDesc") { + return buffer2.raw(); + } else if (tag === "printstr") { + const printstr = buffer2.raw().toString("ascii"); + if (!this._isPrintstr(printstr)) { + return buffer2.error("Decoding of string type: printstr unsupported characters"); + } + return printstr; + } else if (/str$/.test(tag)) { + return buffer2.raw().toString(); + } else { + return buffer2.error("Decoding of string type: " + tag + " unsupported"); + } + }; + DERNode.prototype._decodeObjid = function decodeObjid(buffer2, values, relative) { + let result; + const identifiers = []; + let ident = 0; + let subident = 0; + while (!buffer2.isEmpty()) { + subident = buffer2.readUInt8(); + ident <<= 7; + ident |= subident & 127; + if ((subident & 128) === 0) { + identifiers.push(ident); + ident = 0; + } + } + if (subident & 128) + identifiers.push(ident); + const first = identifiers[0] / 40 | 0; + const second = identifiers[0] % 40; + if (relative) + result = identifiers; + else + result = [first, second].concat(identifiers.slice(1)); + if (values) { + let tmp = values[result.join(" ")]; + if (tmp === void 0) + tmp = values[result.join(".")]; + if (tmp !== void 0) + result = tmp; + } + return result; + }; + DERNode.prototype._decodeTime = function decodeTime(buffer2, tag) { + const str = buffer2.raw().toString(); + let year; + let mon; + let day; + let hour; + let min; + let sec; + if (tag === "gentime") { + year = str.slice(0, 4) | 0; + mon = str.slice(4, 6) | 0; + day = str.slice(6, 8) | 0; + hour = str.slice(8, 10) | 0; + min = str.slice(10, 12) | 0; + sec = str.slice(12, 14) | 0; + } else if (tag === "utctime") { + year = str.slice(0, 2) | 0; + mon = str.slice(2, 4) | 0; + day = str.slice(4, 6) | 0; + hour = str.slice(6, 8) | 0; + min = str.slice(8, 10) | 0; + sec = str.slice(10, 12) | 0; + if (year < 70) + year = 2e3 + year; + else + year = 1900 + year; + } else { + return buffer2.error("Decoding " + tag + " time is not supported yet"); + } + return Date.UTC(year, mon - 1, day, hour, min, sec, 0); + }; + DERNode.prototype._decodeNull = function decodeNull() { + return null; + }; + DERNode.prototype._decodeBool = function decodeBool(buffer2) { + const res = buffer2.readUInt8(); + if (buffer2.isError(res)) + return res; + else + return res !== 0; + }; + DERNode.prototype._decodeInt = function decodeInt(buffer2, values) { + const raw = buffer2.raw(); + let res = new bignum(raw); + if (values) + res = values[res.toString(10)] || res; + return res; + }; + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === "function") + entity = entity(obj); + return entity._getDecoder("der").tree; + }; + function derDecodeTag(buf, fail) { + let tag = buf.readUInt8(fail); + if (buf.isError(tag)) + return tag; + const cls = der.tagClass[tag >> 6]; + const primitive = (tag & 32) === 0; + if ((tag & 31) === 31) { + let oct = tag; + tag = 0; + while ((oct & 128) === 128) { + oct = buf.readUInt8(fail); + if (buf.isError(oct)) + return oct; + tag <<= 7; + tag |= oct & 127; + } + } else { + tag &= 31; + } + const tagStr = der.tag[tag]; + return { + cls, + primitive, + tag, + tagStr + }; + } + function derDecodeLen(buf, primitive, fail) { + let len = buf.readUInt8(fail); + if (buf.isError(len)) + return len; + if (!primitive && len === 128) + return null; + if ((len & 128) === 0) { + return len; + } + const num = len & 127; + if (num > 4) + return buf.error("length octect is too long"); + len = 0; + for (let i6 = 0; i6 < num; i6++) { + len <<= 8; + const j4 = buf.readUInt8(fail); + if (buf.isError(j4)) + return j4; + len |= j4; + } + return len; + } + return exports$p; +} +var exports$o = {}; +var _dewExec$n = false; +function dew$n() { + if (_dewExec$n) + return exports$o; + _dewExec$n = true; + const inherits2 = dew$f(); + const Buffer2 = dew$w().Buffer; + const DERDecoder = dew$o(); + function PEMDecoder(entity) { + DERDecoder.call(this, entity); + this.enc = "pem"; + } + inherits2(PEMDecoder, DERDecoder); + exports$o = PEMDecoder; + PEMDecoder.prototype.decode = function decode(data, options) { + const lines = data.toString().split(/[\r\n]+/g); + const label = options.label.toUpperCase(); + const re3 = /^-----(BEGIN|END) ([^-]+)-----$/; + let start = -1; + let end = -1; + for (let i6 = 0; i6 < lines.length; i6++) { + const match = lines[i6].match(re3); + if (match === null) + continue; + if (match[2] !== label) + continue; + if (start === -1) { + if (match[1] !== "BEGIN") + break; + start = i6; + } else { + if (match[1] !== "END") + break; + end = i6; + break; + } + } + if (start === -1 || end === -1) + throw new Error("PEM section not found for: " + label); + const base64 = lines.slice(start + 1, end).join(""); + base64.replace(/[^a-z0-9+/=]+/gi, ""); + const input = Buffer2.from(base64, "base64"); + return DERDecoder.prototype.decode.call(this, input, options); + }; + return exports$o; +} +var exports$n = {}; +var _dewExec$m = false; +function dew$m() { + if (_dewExec$m) + return exports$n; + _dewExec$m = true; + const decoders = exports$n; + decoders.der = dew$o(); + decoders.pem = dew$n(); + return exports$n; +} +var exports$m = {}; +var _dewExec$l = false; +function dew$l() { + if (_dewExec$l) + return exports$m; + _dewExec$l = true; + const encoders = dew$p(); + const decoders = dew$m(); + const inherits2 = dew$f(); + const api = exports$m; + api.define = function define(name, body) { + return new Entity(name, body); + }; + function Entity(name, body) { + this.name = name; + this.body = body; + this.decoders = {}; + this.encoders = {}; + } + Entity.prototype._createNamed = function createNamed(Base) { + const name = this.name; + function Generated(entity) { + this._initNamed(entity, name); + } + inherits2(Generated, Base); + Generated.prototype._initNamed = function _initNamed(entity, name2) { + Base.call(this, entity, name2); + }; + return new Generated(this); + }; + Entity.prototype._getDecoder = function _getDecoder(enc) { + enc = enc || "der"; + if (!this.decoders.hasOwnProperty(enc)) + this.decoders[enc] = this._createNamed(decoders[enc]); + return this.decoders[enc]; + }; + Entity.prototype.decode = function decode(data, enc, options) { + return this._getDecoder(enc).decode(data, options); + }; + Entity.prototype._getEncoder = function _getEncoder(enc) { + enc = enc || "der"; + if (!this.encoders.hasOwnProperty(enc)) + this.encoders[enc] = this._createNamed(encoders[enc]); + return this.encoders[enc]; + }; + Entity.prototype.encode = function encode(data, enc, reporter) { + return this._getEncoder(enc).encode(data, reporter); + }; + return exports$m; +} +var exports$l = {}; +var _dewExec$k = false; +function dew$k() { + if (_dewExec$k) + return exports$l; + _dewExec$k = true; + const base = exports$l; + base.Reporter = dew$v().Reporter; + base.DecoderBuffer = dew$u().DecoderBuffer; + base.EncoderBuffer = dew$u().EncoderBuffer; + base.Node = dew$t(); + return exports$l; +} +var exports$k = {}; +var _dewExec$j = false; +function dew$j() { + if (_dewExec$j) + return exports$k; + _dewExec$j = true; + const constants2 = exports$k; + constants2._reverse = function reverse(map) { + const res = {}; + Object.keys(map).forEach(function(key) { + if ((key | 0) == key) + key = key | 0; + const value = map[key]; + res[value] = key; + }); + return res; + }; + constants2.der = dew$s(); + return exports$k; +} +var exports$j = {}; +var _dewExec$i = false; +function dew$i() { + if (_dewExec$i) + return exports$j; + _dewExec$i = true; + const asn1 = exports$j; + asn1.bignum = dew$x(); + asn1.define = dew$l().define; + asn1.base = dew$k(); + asn1.constants = dew$j(); + asn1.decoders = dew$m(); + asn1.encoders = dew$p(); + return exports$j; +} +var exports$i = {}; +var _dewExec$h = false; +function dew$h() { + if (_dewExec$h) + return exports$i; + _dewExec$h = true; + var asn = dew$i(); + var Time = asn.define("Time", function() { + this.choice({ + utcTime: this.utctime(), + generalTime: this.gentime() + }); + }); + var AttributeTypeValue = asn.define("AttributeTypeValue", function() { + this.seq().obj(this.key("type").objid(), this.key("value").any()); + }); + var AlgorithmIdentifier = asn.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional(), this.key("curve").objid().optional()); + }); + var SubjectPublicKeyInfo = asn.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr()); + }); + var RelativeDistinguishedName = asn.define("RelativeDistinguishedName", function() { + this.setof(AttributeTypeValue); + }); + var RDNSequence = asn.define("RDNSequence", function() { + this.seqof(RelativeDistinguishedName); + }); + var Name = asn.define("Name", function() { + this.choice({ + rdnSequence: this.use(RDNSequence) + }); + }); + var Validity = asn.define("Validity", function() { + this.seq().obj(this.key("notBefore").use(Time), this.key("notAfter").use(Time)); + }); + var Extension = asn.define("Extension", function() { + this.seq().obj(this.key("extnID").objid(), this.key("critical").bool().def(false), this.key("extnValue").octstr()); + }); + var TBSCertificate = asn.define("TBSCertificate", function() { + this.seq().obj(this.key("version").explicit(0).int().optional(), this.key("serialNumber").int(), this.key("signature").use(AlgorithmIdentifier), this.key("issuer").use(Name), this.key("validity").use(Validity), this.key("subject").use(Name), this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo), this.key("issuerUniqueID").implicit(1).bitstr().optional(), this.key("subjectUniqueID").implicit(2).bitstr().optional(), this.key("extensions").explicit(3).seqof(Extension).optional()); + }); + var X509Certificate = asn.define("X509Certificate", function() { + this.seq().obj(this.key("tbsCertificate").use(TBSCertificate), this.key("signatureAlgorithm").use(AlgorithmIdentifier), this.key("signatureValue").bitstr()); + }); + exports$i = X509Certificate; + return exports$i; +} +var exports$h = {}; +var _dewExec$g2 = false; +function dew$g2() { + if (_dewExec$g2) + return exports$h; + _dewExec$g2 = true; + var asn1 = dew$i(); + exports$h.certificate = dew$h(); + var RSAPrivateKey = asn1.define("RSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("modulus").int(), this.key("publicExponent").int(), this.key("privateExponent").int(), this.key("prime1").int(), this.key("prime2").int(), this.key("exponent1").int(), this.key("exponent2").int(), this.key("coefficient").int()); + }); + exports$h.RSAPrivateKey = RSAPrivateKey; + var RSAPublicKey = asn1.define("RSAPublicKey", function() { + this.seq().obj(this.key("modulus").int(), this.key("publicExponent").int()); + }); + exports$h.RSAPublicKey = RSAPublicKey; + var PublicKey = asn1.define("SubjectPublicKeyInfo", function() { + this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPublicKey").bitstr()); + }); + exports$h.PublicKey = PublicKey; + var AlgorithmIdentifier = asn1.define("AlgorithmIdentifier", function() { + this.seq().obj(this.key("algorithm").objid(), this.key("none").null_().optional(), this.key("curve").objid().optional(), this.key("params").seq().obj(this.key("p").int(), this.key("q").int(), this.key("g").int()).optional()); + }); + var PrivateKeyInfo = asn1.define("PrivateKeyInfo", function() { + this.seq().obj(this.key("version").int(), this.key("algorithm").use(AlgorithmIdentifier), this.key("subjectPrivateKey").octstr()); + }); + exports$h.PrivateKey = PrivateKeyInfo; + var EncryptedPrivateKeyInfo = asn1.define("EncryptedPrivateKeyInfo", function() { + this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(), this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(), this.key("kdeparams").seq().obj(this.key("salt").octstr(), this.key("iters").int())), this.key("cipher").seq().obj(this.key("algo").objid(), this.key("iv").octstr()))), this.key("subjectPrivateKey").octstr()); + }); + exports$h.EncryptedPrivateKey = EncryptedPrivateKeyInfo; + var DSAPrivateKey = asn1.define("DSAPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("p").int(), this.key("q").int(), this.key("g").int(), this.key("pub_key").int(), this.key("priv_key").int()); + }); + exports$h.DSAPrivateKey = DSAPrivateKey; + exports$h.DSAparam = asn1.define("DSAparam", function() { + this.int(); + }); + var ECPrivateKey = asn1.define("ECPrivateKey", function() { + this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").optional().explicit(0).use(ECParameters), this.key("publicKey").optional().explicit(1).bitstr()); + }); + exports$h.ECPrivateKey = ECPrivateKey; + var ECParameters = asn1.define("ECParameters", function() { + this.choice({ + namedCurve: this.objid() + }); + }); + exports$h.signature = asn1.define("signature", function() { + this.seq().obj(this.key("r").int(), this.key("s").int()); + }); + return exports$h; +} +var _aesid = { + "2.16.840.1.101.3.4.1.1": "aes-128-ecb", + "2.16.840.1.101.3.4.1.2": "aes-128-cbc", + "2.16.840.1.101.3.4.1.3": "aes-128-ofb", + "2.16.840.1.101.3.4.1.4": "aes-128-cfb", + "2.16.840.1.101.3.4.1.21": "aes-192-ecb", + "2.16.840.1.101.3.4.1.22": "aes-192-cbc", + "2.16.840.1.101.3.4.1.23": "aes-192-ofb", + "2.16.840.1.101.3.4.1.24": "aes-192-cfb", + "2.16.840.1.101.3.4.1.41": "aes-256-ecb", + "2.16.840.1.101.3.4.1.42": "aes-256-cbc", + "2.16.840.1.101.3.4.1.43": "aes-256-ofb", + "2.16.840.1.101.3.4.1.44": "aes-256-cfb" +}; +var exports$g2 = {}; +var _dewExec$f2 = false; +function dew$f2() { + if (_dewExec$f2) + return exports$g2; + _dewExec$f2 = true; + var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m; + var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m; + var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m; + var evp = dew$21(); + var ciphers = dew$1_(); + var Buffer2 = dew$2P().Buffer; + exports$g2 = function(okey, password) { + var key = okey.toString(); + var match = key.match(findProc); + var decrypted; + if (!match) { + var match2 = key.match(fullRegex); + decrypted = Buffer2.from(match2[2].replace(/[\r\n]/g, ""), "base64"); + } else { + var suite = "aes" + match[1]; + var iv = Buffer2.from(match[2], "hex"); + var cipherText = Buffer2.from(match[3].replace(/[\r\n]/g, ""), "base64"); + var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key; + var out = []; + var cipher = ciphers.createDecipheriv(suite, cipherKey, iv); + out.push(cipher.update(cipherText)); + out.push(cipher.final()); + decrypted = Buffer2.concat(out); + } + var tag = key.match(startRegex)[1]; + return { + tag, + data: decrypted + }; + }; + return exports$g2; +} +var exports$f2 = {}; +var _dewExec$e2 = false; +function dew$e2() { + if (_dewExec$e2) + return exports$f2; + _dewExec$e2 = true; + var asn1 = dew$g2(); + var aesid = _aesid; + var fixProc = dew$f2(); + var ciphers = dew$1_(); + var compat = dew$2o(); + var Buffer2 = dew$2P().Buffer; + exports$f2 = parseKeys; + function parseKeys(buffer2) { + var password; + if (typeof buffer2 === "object" && !Buffer2.isBuffer(buffer2)) { + password = buffer2.passphrase; + buffer2 = buffer2.key; + } + if (typeof buffer2 === "string") { + buffer2 = Buffer2.from(buffer2); + } + var stripped = fixProc(buffer2, password); + var type = stripped.tag; + var data = stripped.data; + var subtype, ndata; + switch (type) { + case "CERTIFICATE": + ndata = asn1.certificate.decode(data, "der").tbsCertificate.subjectPublicKeyInfo; + case "PUBLIC KEY": + if (!ndata) { + ndata = asn1.PublicKey.decode(data, "der"); + } + subtype = ndata.algorithm.algorithm.join("."); + switch (subtype) { + case "1.2.840.113549.1.1.1": + return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, "der"); + case "1.2.840.10045.2.1": + ndata.subjectPrivateKey = ndata.subjectPublicKey; + return { + type: "ec", + data: ndata + }; + case "1.2.840.10040.4.1": + ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, "der"); + return { + type: "dsa", + data: ndata.algorithm.params + }; + default: + throw new Error("unknown key id " + subtype); + } + case "ENCRYPTED PRIVATE KEY": + data = asn1.EncryptedPrivateKey.decode(data, "der"); + data = decrypt(data, password); + case "PRIVATE KEY": + ndata = asn1.PrivateKey.decode(data, "der"); + subtype = ndata.algorithm.algorithm.join("."); + switch (subtype) { + case "1.2.840.113549.1.1.1": + return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, "der"); + case "1.2.840.10045.2.1": + return { + curve: ndata.algorithm.curve, + privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, "der").privateKey + }; + case "1.2.840.10040.4.1": + ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, "der"); + return { + type: "dsa", + params: ndata.algorithm.params + }; + default: + throw new Error("unknown key id " + subtype); + } + case "RSA PUBLIC KEY": + return asn1.RSAPublicKey.decode(data, "der"); + case "RSA PRIVATE KEY": + return asn1.RSAPrivateKey.decode(data, "der"); + case "DSA PRIVATE KEY": + return { + type: "dsa", + params: asn1.DSAPrivateKey.decode(data, "der") + }; + case "EC PRIVATE KEY": + data = asn1.ECPrivateKey.decode(data, "der"); + return { + curve: data.parameters.value, + privateKey: data.privateKey + }; + default: + throw new Error("unknown key type " + type); + } + } + parseKeys.signature = asn1.signature; + function decrypt(data, password) { + var salt = data.algorithm.decrypt.kde.kdeparams.salt; + var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10); + var algo = aesid[data.algorithm.decrypt.cipher.algo.join(".")]; + var iv = data.algorithm.decrypt.cipher.iv; + var cipherText = data.subjectPrivateKey; + var keylen = parseInt(algo.split("-")[1], 10) / 8; + var key = compat.pbkdf2Sync(password, salt, iters, keylen, "sha1"); + var cipher = ciphers.createDecipheriv(algo, key, iv); + var out = []; + out.push(cipher.update(cipherText)); + out.push(cipher.final()); + return Buffer2.concat(out); + } + return exports$f2; +} +var _curves = { + "1.3.132.0.10": "secp256k1", + "1.3.132.0.33": "p224", + "1.2.840.10045.3.1.1": "p192", + "1.2.840.10045.3.1.7": "p256", + "1.3.132.0.34": "p384", + "1.3.132.0.35": "p521" +}; +var exports$e2 = {}; +var _dewExec$d2 = false; +function dew$d2() { + if (_dewExec$d2) + return exports$e2; + _dewExec$d2 = true; + var Buffer2 = dew$Y().Buffer; + var createHmac2 = dew$2v(); + var crt = dew$W(); + var EC = dew$y().ec; + var BN = dew$X(); + var parseKeys = dew$e2(); + var curves = _curves; + function sign(hash, key, hashType, signType, tag) { + var priv = parseKeys(key); + if (priv.curve) { + if (signType !== "ecdsa" && signType !== "ecdsa/rsa") + throw new Error("wrong private key type"); + return ecSign(hash, priv); + } else if (priv.type === "dsa") { + if (signType !== "dsa") + throw new Error("wrong private key type"); + return dsaSign(hash, priv, hashType); + } else { + if (signType !== "rsa" && signType !== "ecdsa/rsa") + throw new Error("wrong private key type"); + } + hash = Buffer2.concat([tag, hash]); + var len = priv.modulus.byteLength(); + var pad = [0, 1]; + while (hash.length + pad.length + 1 < len) + pad.push(255); + pad.push(0); + var i6 = -1; + while (++i6 < hash.length) + pad.push(hash[i6]); + var out = crt(pad, priv); + return out; + } + function ecSign(hash, priv) { + var curveId = curves[priv.curve.join(".")]; + if (!curveId) + throw new Error("unknown curve " + priv.curve.join(".")); + var curve = new EC(curveId); + var key = curve.keyFromPrivate(priv.privateKey); + var out = key.sign(hash); + return Buffer2.from(out.toDER()); + } + function dsaSign(hash, priv, algo) { + var x4 = priv.params.priv_key; + var p6 = priv.params.p; + var q3 = priv.params.q; + var g4 = priv.params.g; + var r6 = new BN(0); + var k4; + var H3 = bits2int(hash, q3).mod(q3); + var s6 = false; + var kv = getKey(x4, q3, hash, algo); + while (s6 === false) { + k4 = makeKey(q3, kv, algo); + r6 = makeR(g4, k4, p6, q3); + s6 = k4.invm(q3).imul(H3.add(x4.mul(r6))).mod(q3); + if (s6.cmpn(0) === 0) { + s6 = false; + r6 = new BN(0); + } + } + return toDER(r6, s6); + } + function toDER(r6, s6) { + r6 = r6.toArray(); + s6 = s6.toArray(); + if (r6[0] & 128) + r6 = [0].concat(r6); + if (s6[0] & 128) + s6 = [0].concat(s6); + var total = r6.length + s6.length + 4; + var res = [48, total, 2, r6.length]; + res = res.concat(r6, [2, s6.length], s6); + return Buffer2.from(res); + } + function getKey(x4, q3, hash, algo) { + x4 = Buffer2.from(x4.toArray()); + if (x4.length < q3.byteLength()) { + var zeros = Buffer2.alloc(q3.byteLength() - x4.length); + x4 = Buffer2.concat([zeros, x4]); + } + var hlen = hash.length; + var hbits = bits2octets(hash, q3); + var v5 = Buffer2.alloc(hlen); + v5.fill(1); + var k4 = Buffer2.alloc(hlen); + k4 = createHmac2(algo, k4).update(v5).update(Buffer2.from([0])).update(x4).update(hbits).digest(); + v5 = createHmac2(algo, k4).update(v5).digest(); + k4 = createHmac2(algo, k4).update(v5).update(Buffer2.from([1])).update(x4).update(hbits).digest(); + v5 = createHmac2(algo, k4).update(v5).digest(); + return { + k: k4, + v: v5 + }; + } + function bits2int(obits, q3) { + var bits = new BN(obits); + var shift = (obits.length << 3) - q3.bitLength(); + if (shift > 0) + bits.ishrn(shift); + return bits; + } + function bits2octets(bits, q3) { + bits = bits2int(bits, q3); + bits = bits.mod(q3); + var out = Buffer2.from(bits.toArray()); + if (out.length < q3.byteLength()) { + var zeros = Buffer2.alloc(q3.byteLength() - out.length); + out = Buffer2.concat([zeros, out]); + } + return out; + } + function makeKey(q3, kv, algo) { + var t6; + var k4; + do { + t6 = Buffer2.alloc(0); + while (t6.length * 8 < q3.bitLength()) { + kv.v = createHmac2(algo, kv.k).update(kv.v).digest(); + t6 = Buffer2.concat([t6, kv.v]); + } + k4 = bits2int(t6, q3); + kv.k = createHmac2(algo, kv.k).update(kv.v).update(Buffer2.from([0])).digest(); + kv.v = createHmac2(algo, kv.k).update(kv.v).digest(); + } while (k4.cmp(q3) !== -1); + return k4; + } + function makeR(g4, k4, p6, q3) { + return g4.toRed(BN.mont(p6)).redPow(k4).fromRed().mod(q3); + } + exports$e2 = sign; + exports$e2.getKey = getKey; + exports$e2.makeKey = makeKey; + return exports$e2; +} +var exports$d2 = {}; +var _dewExec$c2 = false; +function dew$c2() { + if (_dewExec$c2) + return exports$d2; + _dewExec$c2 = true; + var Buffer2 = dew$Y().Buffer; + var BN = dew$X(); + var EC = dew$y().ec; + var parseKeys = dew$e2(); + var curves = _curves; + function verify(sig, hash, key, signType, tag) { + var pub = parseKeys(key); + if (pub.type === "ec") { + if (signType !== "ecdsa" && signType !== "ecdsa/rsa") + throw new Error("wrong public key type"); + return ecVerify(sig, hash, pub); + } else if (pub.type === "dsa") { + if (signType !== "dsa") + throw new Error("wrong public key type"); + return dsaVerify(sig, hash, pub); + } else { + if (signType !== "rsa" && signType !== "ecdsa/rsa") + throw new Error("wrong public key type"); + } + hash = Buffer2.concat([tag, hash]); + var len = pub.modulus.byteLength(); + var pad = [1]; + var padNum = 0; + while (hash.length + pad.length + 2 < len) { + pad.push(255); + padNum++; + } + pad.push(0); + var i6 = -1; + while (++i6 < hash.length) { + pad.push(hash[i6]); + } + pad = Buffer2.from(pad); + var red = BN.mont(pub.modulus); + sig = new BN(sig).toRed(red); + sig = sig.redPow(new BN(pub.publicExponent)); + sig = Buffer2.from(sig.fromRed().toArray()); + var out = padNum < 8 ? 1 : 0; + len = Math.min(sig.length, pad.length); + if (sig.length !== pad.length) + out = 1; + i6 = -1; + while (++i6 < len) + out |= sig[i6] ^ pad[i6]; + return out === 0; + } + function ecVerify(sig, hash, pub) { + var curveId = curves[pub.data.algorithm.curve.join(".")]; + if (!curveId) + throw new Error("unknown curve " + pub.data.algorithm.curve.join(".")); + var curve = new EC(curveId); + var pubkey = pub.data.subjectPrivateKey.data; + return curve.verify(hash, sig, pubkey); + } + function dsaVerify(sig, hash, pub) { + var p6 = pub.data.p; + var q3 = pub.data.q; + var g4 = pub.data.g; + var y5 = pub.data.pub_key; + var unpacked = parseKeys.signature.decode(sig, "der"); + var s6 = unpacked.s; + var r6 = unpacked.r; + checkValue(s6, q3); + checkValue(r6, q3); + var montp = BN.mont(p6); + var w4 = s6.invm(q3); + var v5 = g4.toRed(montp).redPow(new BN(hash).mul(w4).mod(q3)).fromRed().mul(y5.toRed(montp).redPow(r6.mul(w4).mod(q3)).fromRed()).mod(p6).mod(q3); + return v5.cmp(r6) === 0; + } + function checkValue(b4, q3) { + if (b4.cmpn(0) <= 0) + throw new Error("invalid sig"); + if (b4.cmp(q3) >= q3) + throw new Error("invalid sig"); + } + exports$d2 = verify; + return exports$d2; +} +var exports$c2 = {}; +var _dewExec$b2 = false; +var _global$4 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$b2() { + if (_dewExec$b2) + return exports$c2; + _dewExec$b2 = true; + var Buffer2 = dew$Y().Buffer; + var createHash2 = dew$2y(); + var stream2 = dew3(); + var inherits2 = dew$f(); + var sign = dew$d2(); + var verify = dew$c2(); + var algorithms = _algorithms$1; + Object.keys(algorithms).forEach(function(key) { + algorithms[key].id = Buffer2.from(algorithms[key].id, "hex"); + algorithms[key.toLowerCase()] = algorithms[key]; + }); + function Sign2(algorithm) { + stream2.Writable.call(this || _global$4); + var data = algorithms[algorithm]; + if (!data) + throw new Error("Unknown message digest"); + (this || _global$4)._hashType = data.hash; + (this || _global$4)._hash = createHash2(data.hash); + (this || _global$4)._tag = data.id; + (this || _global$4)._signType = data.sign; + } + inherits2(Sign2, stream2.Writable); + Sign2.prototype._write = function _write(data, _4, done) { + (this || _global$4)._hash.update(data); + done(); + }; + Sign2.prototype.update = function update(data, enc) { + if (typeof data === "string") + data = Buffer2.from(data, enc); + (this || _global$4)._hash.update(data); + return this || _global$4; + }; + Sign2.prototype.sign = function signMethod(key, enc) { + this.end(); + var hash = (this || _global$4)._hash.digest(); + var sig = sign(hash, key, (this || _global$4)._hashType, (this || _global$4)._signType, (this || _global$4)._tag); + return enc ? sig.toString(enc) : sig; + }; + function Verify2(algorithm) { + stream2.Writable.call(this || _global$4); + var data = algorithms[algorithm]; + if (!data) + throw new Error("Unknown message digest"); + (this || _global$4)._hash = createHash2(data.hash); + (this || _global$4)._tag = data.id; + (this || _global$4)._signType = data.sign; + } + inherits2(Verify2, stream2.Writable); + Verify2.prototype._write = function _write(data, _4, done) { + (this || _global$4)._hash.update(data); + done(); + }; + Verify2.prototype.update = function update(data, enc) { + if (typeof data === "string") + data = Buffer2.from(data, enc); + (this || _global$4)._hash.update(data); + return this || _global$4; + }; + Verify2.prototype.verify = function verifyMethod(key, sig, enc) { + if (typeof sig === "string") + sig = Buffer2.from(sig, enc); + this.end(); + var hash = (this || _global$4)._hash.digest(); + return verify(sig, hash, key, (this || _global$4)._signType, (this || _global$4)._tag); + }; + function createSign2(algorithm) { + return new Sign2(algorithm); + } + function createVerify2(algorithm) { + return new Verify2(algorithm); + } + exports$c2 = { + Sign: createSign2, + Verify: createVerify2, + createSign: createSign2, + createVerify: createVerify2 + }; + return exports$c2; +} +var exports$b2 = {}; +var _dewExec$a2 = false; +var module$1 = { + exports: exports$b2 +}; +var _global$3 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$a2() { + if (_dewExec$a2) + return module$1.exports; + _dewExec$a2 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$3).negative = 0; + (this || _global$3).words = null; + (this || _global$3).length = 0; + (this || _global$3).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$3).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$3).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$3).words = [number & 67108863]; + (this || _global$3).length = 1; + } else if (number < 4503599627370496) { + (this || _global$3).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$3).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$3).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$3).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$3).words = [0]; + (this || _global$3).length = 1; + return this || _global$3; + } + (this || _global$3).length = Math.ceil(number.length / 3); + (this || _global$3).words = new Array((this || _global$3).length); + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + (this || _global$3).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$3).words[j4] |= w4 << off & 67108863; + (this || _global$3).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$3).words[j4] |= w4 << off & 67108863; + (this || _global$3).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$3).length = Math.ceil((number.length - start) / 6); + (this || _global$3).words = new Array((this || _global$3).length); + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + (this || _global$3).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$3).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$3).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$3).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$3).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$3).words = [0]; + (this || _global$3).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$3).words[0] + word < 67108864) { + (this || _global$3).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$3).words[0] + word < 67108864) { + (this || _global$3).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$3).length); + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + dest.words[i6] = (this || _global$3).words[i6]; + } + dest.length = (this || _global$3).length; + dest.negative = (this || _global$3).negative; + dest.red = (this || _global$3).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$3).length < size) { + (this || _global$3).words[(this || _global$3).length++] = 0; + } + return this || _global$3; + }; + BN.prototype.strip = function strip() { + while ((this || _global$3).length > 1 && (this || _global$3).words[(this || _global$3).length - 1] === 0) { + (this || _global$3).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$3).length === 1 && (this || _global$3).words[0] === 0) { + (this || _global$3).negative = 0; + } + return this || _global$3; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$3).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + var w4 = (this || _global$3).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$3).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$3).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$3).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$3).words[0]; + if ((this || _global$3).length === 2) { + ret += (this || _global$3).words[1] * 67108864; + } else if ((this || _global$3).length === 3 && (this || _global$3).words[2] === 1) { + ret += 4503599627370496 + (this || _global$3).words[1] * 67108864; + } else if ((this || _global$3).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$3).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$3).words[(this || _global$3).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$3).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + var b4 = this._zeroBits((this || _global$3).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$3).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$3).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$3).negative ^= 1; + } + return this || _global$3; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$3).length < num.length) { + (this || _global$3).words[(this || _global$3).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$3).words[i6] = (this || _global$3).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$3).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$3).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$3); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$3).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$3); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$3).length > num.length) { + b4 = num; + } else { + b4 = this || _global$3; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$3).words[i6] = (this || _global$3).words[i6] & num.words[i6]; + } + (this || _global$3).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$3).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$3).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$3); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$3).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$3); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$3).length > num.length) { + a6 = this || _global$3; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$3).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$3) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$3).words[i6] = a6.words[i6]; + } + } + (this || _global$3).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$3).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$3).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$3); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$3).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$3); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$3).words[i6] = ~(this || _global$3).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$3).words[i6] = ~(this || _global$3).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$3).words[off] = (this || _global$3).words[off] | 1 << wbit; + } else { + (this || _global$3).words[off] = (this || _global$3).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$3).negative !== 0 && num.negative === 0) { + (this || _global$3).negative = 0; + r6 = this.isub(num); + (this || _global$3).negative ^= 1; + return this._normSign(); + } else if ((this || _global$3).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$3).length > num.length) { + a6 = this || _global$3; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$3).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$3).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$3).length = a6.length; + if (carry !== 0) { + (this || _global$3).words[(this || _global$3).length] = carry; + (this || _global$3).length++; + } else if (a6 !== (this || _global$3)) { + for (; i6 < a6.length; i6++) { + (this || _global$3).words[i6] = a6.words[i6]; + } + } + return this || _global$3; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$3).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$3).negative !== 0) { + (this || _global$3).negative = 0; + res = num.sub(this || _global$3); + (this || _global$3).negative = 1; + return res; + } + if ((this || _global$3).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$3); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$3).negative !== 0) { + (this || _global$3).negative = 0; + this.iadd(num); + (this || _global$3).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$3).negative = 0; + (this || _global$3).length = 1; + (this || _global$3).words[0] = 0; + return this || _global$3; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$3; + b4 = num; + } else { + a6 = num; + b4 = this || _global$3; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$3).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$3).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$3)) { + for (; i6 < a6.length; i6++) { + (this || _global$3).words[i6] = a6.words[i6]; + } + } + (this || _global$3).length = Math.max((this || _global$3).length, i6); + if (a6 !== (this || _global$3)) { + (this || _global$3).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$3).length + num.length; + if ((this || _global$3).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$3, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$3, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$3, num, out); + } else { + res = jumboMulTo(this || _global$3, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$3).x = x4; + (this || _global$3).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$3).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$3).length + num.length); + return jumboMulTo(this || _global$3, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$3); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$3).length; i6++) { + var w4 = ((this || _global$3).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$3).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$3).words[i6] = carry; + (this || _global$3).length++; + } + return this || _global$3; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$3); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$3; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$3).length; i6++) { + var newCarry = (this || _global$3).words[i6] & carryMask; + var c6 = ((this || _global$3).words[i6] | 0) - newCarry << r6; + (this || _global$3).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$3).words[i6] = carry; + (this || _global$3).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$3).length - 1; i6 >= 0; i6--) { + (this || _global$3).words[i6 + s6] = (this || _global$3).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$3).words[i6] = 0; + } + (this || _global$3).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$3).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$3).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$3).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$3).length > s6) { + (this || _global$3).length -= s6; + for (i6 = 0; i6 < (this || _global$3).length; i6++) { + (this || _global$3).words[i6] = (this || _global$3).words[i6 + s6]; + } + } else { + (this || _global$3).words[0] = 0; + (this || _global$3).length = 1; + } + var carry = 0; + for (i6 = (this || _global$3).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$3).words[i6] | 0; + (this || _global$3).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$3).length === 0) { + (this || _global$3).words[0] = 0; + (this || _global$3).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$3).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$3).length <= s6) + return false; + var w4 = (this || _global$3).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$3).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$3).length <= s6) { + return this || _global$3; + } + if (r6 !== 0) { + s6++; + } + (this || _global$3).length = Math.min(s6, (this || _global$3).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$3).words[(this || _global$3).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$3).negative !== 0) { + if ((this || _global$3).length === 1 && ((this || _global$3).words[0] | 0) < num) { + (this || _global$3).words[0] = num - ((this || _global$3).words[0] | 0); + (this || _global$3).negative = 0; + return this || _global$3; + } + (this || _global$3).negative = 0; + this.isubn(num); + (this || _global$3).negative = 1; + return this || _global$3; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$3).words[0] += num; + for (var i6 = 0; i6 < (this || _global$3).length && (this || _global$3).words[i6] >= 67108864; i6++) { + (this || _global$3).words[i6] -= 67108864; + if (i6 === (this || _global$3).length - 1) { + (this || _global$3).words[i6 + 1] = 1; + } else { + (this || _global$3).words[i6 + 1]++; + } + } + (this || _global$3).length = Math.max((this || _global$3).length, i6 + 1); + return this || _global$3; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$3).negative !== 0) { + (this || _global$3).negative = 0; + this.iaddn(num); + (this || _global$3).negative = 1; + return this || _global$3; + } + (this || _global$3).words[0] -= num; + if ((this || _global$3).length === 1 && (this || _global$3).words[0] < 0) { + (this || _global$3).words[0] = -(this || _global$3).words[0]; + (this || _global$3).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$3).length && (this || _global$3).words[i6] < 0; i6++) { + (this || _global$3).words[i6] += 67108864; + (this || _global$3).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$3).negative = 0; + return this || _global$3; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$3).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$3).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$3).length - shift; i6++) { + w4 = ((this || _global$3).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$3).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$3).length; i6++) { + w4 = -((this || _global$3).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$3).words[i6] = w4 & 67108863; + } + (this || _global$3).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$3).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$3).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$3).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$3).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$3).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$3 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$3).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$3).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$3).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$3).words[i6] | 0) + carry * 67108864; + (this || _global$3).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$3; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$3; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$3).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$3).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$3).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$3).length <= s6) { + this._expand(s6 + 1); + (this || _global$3).words[s6] |= q3; + return this || _global$3; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$3).length; i6++) { + var w4 = (this || _global$3).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$3).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$3).words[i6] = carry; + (this || _global$3).length++; + } + return this || _global$3; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$3).length === 1 && (this || _global$3).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$3).negative !== 0 && !negative) + return -1; + if ((this || _global$3).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$3).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$3).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$3).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$3).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$3).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$3).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$3).length > num.length) + return 1; + if ((this || _global$3).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$3).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$3).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$3).red, "Already a number in reduction context"); + assert((this || _global$3).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$3)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$3).red, "fromRed works only with numbers in reduction context"); + return (this || _global$3).red.convertFrom(this || _global$3); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$3).red = ctx; + return this || _global$3; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$3).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$3).red, "redAdd works only with red numbers"); + return (this || _global$3).red.add(this || _global$3, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$3).red, "redIAdd works only with red numbers"); + return (this || _global$3).red.iadd(this || _global$3, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$3).red, "redSub works only with red numbers"); + return (this || _global$3).red.sub(this || _global$3, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$3).red, "redISub works only with red numbers"); + return (this || _global$3).red.isub(this || _global$3, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$3).red, "redShl works only with red numbers"); + return (this || _global$3).red.shl(this || _global$3, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$3).red, "redMul works only with red numbers"); + (this || _global$3).red._verify2(this || _global$3, num); + return (this || _global$3).red.mul(this || _global$3, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$3).red, "redMul works only with red numbers"); + (this || _global$3).red._verify2(this || _global$3, num); + return (this || _global$3).red.imul(this || _global$3, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$3).red, "redSqr works only with red numbers"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.sqr(this || _global$3); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$3).red, "redISqr works only with red numbers"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.isqr(this || _global$3); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$3).red, "redSqrt works only with red numbers"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.sqrt(this || _global$3); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$3).red, "redInvm works only with red numbers"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.invm(this || _global$3); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$3).red, "redNeg works only with red numbers"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.neg(this || _global$3); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$3).red && !num.red, "redPow(normalNum)"); + (this || _global$3).red._verify1(this || _global$3); + return (this || _global$3).red.pow(this || _global$3, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$3).name = name; + (this || _global$3).p = new BN(p6, 16); + (this || _global$3).n = (this || _global$3).p.bitLength(); + (this || _global$3).k = new BN(1).iushln((this || _global$3).n).isub((this || _global$3).p); + (this || _global$3).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$3).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$3).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$3).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$3).n); + var cmp = rlen < (this || _global$3).n ? -1 : r6.ucmp((this || _global$3).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$3).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$3).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$3).k); + }; + function K256() { + MPrime.call(this || _global$3, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$3, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$3, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$3, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$3).m = prime.p; + (this || _global$3).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$3).m = m5; + (this || _global$3).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$3).prime) + return (this || _global$3).prime.ireduce(a6)._forceRed(this || _global$3); + return a6.umod((this || _global$3).m)._forceRed(this || _global$3); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$3).m.sub(a6)._forceRed(this || _global$3); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$3).m) >= 0) { + res.isub((this || _global$3).m); + } + return res._forceRed(this || _global$3); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$3).m) >= 0) { + res.isub((this || _global$3).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$3).m); + } + return res._forceRed(this || _global$3); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$3).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$3).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$3).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$3).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$3); + var nOne = one.redNeg(); + var lpow = (this || _global$3).m.subn(1).iushrn(1); + var z4 = (this || _global$3).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$3); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$3).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$3); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$3); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$3).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$3, m5); + (this || _global$3).shift = (this || _global$3).m.bitLength(); + if ((this || _global$3).shift % 26 !== 0) { + (this || _global$3).shift += 26 - (this || _global$3).shift % 26; + } + (this || _global$3).r = new BN(1).iushln((this || _global$3).shift); + (this || _global$3).r2 = this.imod((this || _global$3).r.sqr()); + (this || _global$3).rinv = (this || _global$3).r._invmp((this || _global$3).m); + (this || _global$3).minv = (this || _global$3).rinv.mul((this || _global$3).r).isubn(1).div((this || _global$3).m); + (this || _global$3).minv = (this || _global$3).minv.umod((this || _global$3).r); + (this || _global$3).minv = (this || _global$3).r.sub((this || _global$3).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$3).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$3).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$3).shift).mul((this || _global$3).minv).imaskn((this || _global$3).shift).mul((this || _global$3).m); + var u6 = t6.isub(c6).iushrn((this || _global$3).shift); + var res = u6; + if (u6.cmp((this || _global$3).m) >= 0) { + res = u6.isub((this || _global$3).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$3).m); + } + return res._forceRed(this || _global$3); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$3); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$3).shift).mul((this || _global$3).minv).imaskn((this || _global$3).shift).mul((this || _global$3).m); + var u6 = t6.isub(c6).iushrn((this || _global$3).shift); + var res = u6; + if (u6.cmp((this || _global$3).m) >= 0) { + res = u6.isub((this || _global$3).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$3).m); + } + return res._forceRed(this || _global$3); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$3).m).mul((this || _global$3).r2)); + return res._forceRed(this || _global$3); + }; + })(module$1, exports$b2); + return module$1.exports; +} +var exports$a2 = {}; +var _dewExec$92 = false; +var _global$22 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$92() { + if (_dewExec$92) + return exports$a2; + _dewExec$92 = true; + var Buffer2 = buffer.Buffer; + var elliptic = dew$y(); + var BN = dew$a2(); + exports$a2 = function createECDH2(curve) { + return new ECDH(curve); + }; + var aliases = { + secp256k1: { + name: "secp256k1", + byteLength: 32 + }, + secp224r1: { + name: "p224", + byteLength: 28 + }, + prime256v1: { + name: "p256", + byteLength: 32 + }, + prime192v1: { + name: "p192", + byteLength: 24 + }, + ed25519: { + name: "ed25519", + byteLength: 32 + }, + secp384r1: { + name: "p384", + byteLength: 48 + }, + secp521r1: { + name: "p521", + byteLength: 66 + } + }; + aliases.p224 = aliases.secp224r1; + aliases.p256 = aliases.secp256r1 = aliases.prime256v1; + aliases.p192 = aliases.secp192r1 = aliases.prime192v1; + aliases.p384 = aliases.secp384r1; + aliases.p521 = aliases.secp521r1; + function ECDH(curve) { + (this || _global$22).curveType = aliases[curve]; + if (!(this || _global$22).curveType) { + (this || _global$22).curveType = { + name: curve + }; + } + (this || _global$22).curve = new elliptic.ec((this || _global$22).curveType.name); + (this || _global$22).keys = void 0; + } + ECDH.prototype.generateKeys = function(enc, format2) { + (this || _global$22).keys = (this || _global$22).curve.genKeyPair(); + return this.getPublicKey(enc, format2); + }; + ECDH.prototype.computeSecret = function(other, inenc, enc) { + inenc = inenc || "utf8"; + if (!Buffer2.isBuffer(other)) { + other = new Buffer2(other, inenc); + } + var otherPub = (this || _global$22).curve.keyFromPublic(other).getPublic(); + var out = otherPub.mul((this || _global$22).keys.getPrivate()).getX(); + return formatReturnValue(out, enc, (this || _global$22).curveType.byteLength); + }; + ECDH.prototype.getPublicKey = function(enc, format2) { + var key = (this || _global$22).keys.getPublic(format2 === "compressed", true); + if (format2 === "hybrid") { + if (key[key.length - 1] % 2) { + key[0] = 7; + } else { + key[0] = 6; + } + } + return formatReturnValue(key, enc); + }; + ECDH.prototype.getPrivateKey = function(enc) { + return formatReturnValue((this || _global$22).keys.getPrivate(), enc); + }; + ECDH.prototype.setPublicKey = function(pub, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(pub)) { + pub = new Buffer2(pub, enc); + } + (this || _global$22).keys._importPublic(pub); + return this || _global$22; + }; + ECDH.prototype.setPrivateKey = function(priv, enc) { + enc = enc || "utf8"; + if (!Buffer2.isBuffer(priv)) { + priv = new Buffer2(priv, enc); + } + var _priv = new BN(priv); + _priv = _priv.toString(16); + (this || _global$22).keys = (this || _global$22).curve.genKeyPair(); + (this || _global$22).keys._importPrivate(_priv); + return this || _global$22; + }; + function formatReturnValue(bn, enc, len) { + if (!Array.isArray(bn)) { + bn = bn.toArray(); + } + var buf = new Buffer2(bn); + if (len && buf.length < len) { + var zeros = new Buffer2(len - buf.length); + zeros.fill(0); + buf = Buffer2.concat([zeros, buf]); + } + if (!enc) { + return buf; + } else { + return buf.toString(enc); + } + } + return exports$a2; +} +var exports$92 = {}; +var _dewExec$82 = false; +function dew$82() { + if (_dewExec$82) + return exports$92; + _dewExec$82 = true; + var createHash2 = dew$2y(); + var Buffer2 = dew$2P().Buffer; + exports$92 = function(seed, len) { + var t6 = Buffer2.alloc(0); + var i6 = 0; + var c6; + while (t6.length < len) { + c6 = i2ops(i6++); + t6 = Buffer2.concat([t6, createHash2("sha1").update(seed).update(c6).digest()]); + } + return t6.slice(0, len); + }; + function i2ops(c6) { + var out = Buffer2.allocUnsafe(4); + out.writeUInt32BE(c6, 0); + return out; + } + return exports$92; +} +var exports$82 = {}; +var _dewExec$72 = false; +function dew$72() { + if (_dewExec$72) + return exports$82; + _dewExec$72 = true; + exports$82 = function xor(a6, b4) { + var len = a6.length; + var i6 = -1; + while (++i6 < len) { + a6[i6] ^= b4[i6]; + } + return a6; + }; + return exports$82; +} +var exports$72 = {}; +var _dewExec$62 = false; +var module = { + exports: exports$72 +}; +var _global$12 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$62() { + if (_dewExec$62) + return module.exports; + _dewExec$62 = true; + (function(module2, exports5) { + function assert(val, msg) { + if (!val) + throw new Error(msg || "Assertion failed"); + } + function inherits2(ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number; + } + (this || _global$12).negative = 0; + (this || _global$12).words = null; + (this || _global$12).length = 0; + (this || _global$12).red = null; + if (number !== null) { + if (base === "le" || base === "be") { + endian = base; + base = 10; + } + this._init(number || 0, base || 10, endian || "be"); + } + } + if (typeof module2 === "object") { + module2.exports = BN; + } else { + exports5.BN = BN; + } + BN.BN = BN; + BN.wordSize = 26; + var Buffer2; + try { + if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { + Buffer2 = window.Buffer; + } else { + Buffer2 = buffer.Buffer; + } + } catch (e8) { + } + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true; + } + return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + BN.max = function max(left, right) { + if (left.cmp(right) > 0) + return left; + return right; + }; + BN.min = function min(left, right) { + if (left.cmp(right) < 0) + return left; + return right; + }; + BN.prototype._init = function init(number, base, endian) { + if (typeof number === "number") { + return this._initNumber(number, base, endian); + } + if (typeof number === "object") { + return this._initArray(number, base, endian); + } + if (base === "hex") { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + number = number.toString().replace(/\s+/g, ""); + var start = 0; + if (number[0] === "-") { + start++; + (this || _global$12).negative = 1; + } + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === "le") { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + (this || _global$12).negative = 1; + number = -number; + } + if (number < 67108864) { + (this || _global$12).words = [number & 67108863]; + (this || _global$12).length = 1; + } else if (number < 4503599627370496) { + (this || _global$12).words = [number & 67108863, number / 67108864 & 67108863]; + (this || _global$12).length = 2; + } else { + assert(number < 9007199254740992); + (this || _global$12).words = [number & 67108863, number / 67108864 & 67108863, 1]; + (this || _global$12).length = 3; + } + if (endian !== "le") + return; + this._initArray(this.toArray(), base, endian); + }; + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === "number"); + if (number.length <= 0) { + (this || _global$12).words = [0]; + (this || _global$12).length = 1; + return this || _global$12; + } + (this || _global$12).length = Math.ceil(number.length / 3); + (this || _global$12).words = new Array((this || _global$12).length); + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + (this || _global$12).words[i6] = 0; + } + var j4, w4; + var off = 0; + if (endian === "be") { + for (i6 = number.length - 1, j4 = 0; i6 >= 0; i6 -= 3) { + w4 = number[i6] | number[i6 - 1] << 8 | number[i6 - 2] << 16; + (this || _global$12).words[j4] |= w4 << off & 67108863; + (this || _global$12).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } else if (endian === "le") { + for (i6 = 0, j4 = 0; i6 < number.length; i6 += 3) { + w4 = number[i6] | number[i6 + 1] << 8 | number[i6 + 2] << 16; + (this || _global$12).words[j4] |= w4 << off & 67108863; + (this || _global$12).words[j4 + 1] = w4 >>> 26 - off & 67108863; + off += 24; + if (off >= 26) { + off -= 26; + j4++; + } + } + } + return this.strip(); + }; + function parseHex4Bits(string, index) { + var c6 = string.charCodeAt(index); + if (c6 >= 65 && c6 <= 70) { + return c6 - 55; + } else if (c6 >= 97 && c6 <= 102) { + return c6 - 87; + } else { + return c6 - 48 & 15; + } + } + function parseHexByte(string, lowerBound, index) { + var r6 = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r6 |= parseHex4Bits(string, index - 1) << 4; + } + return r6; + } + BN.prototype._parseHex = function _parseHex(number, start, endian) { + (this || _global$12).length = Math.ceil((number.length - start) / 6); + (this || _global$12).words = new Array((this || _global$12).length); + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + (this || _global$12).words[i6] = 0; + } + var off = 0; + var j4 = 0; + var w4; + if (endian === "be") { + for (i6 = number.length - 1; i6 >= start; i6 -= 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$12).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$12).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i6 = parseLength % 2 === 0 ? start + 1 : start; i6 < number.length; i6 += 2) { + w4 = parseHexByte(number, start, i6) << off; + (this || _global$12).words[j4] |= w4 & 67108863; + if (off >= 18) { + off -= 18; + j4 += 1; + (this || _global$12).words[j4] |= w4 >>> 26; + } else { + off += 8; + } + } + } + this.strip(); + }; + function parseBase(str, start, end, mul) { + var r6 = 0; + var len = Math.min(str.length, end); + for (var i6 = start; i6 < len; i6++) { + var c6 = str.charCodeAt(i6) - 48; + r6 *= mul; + if (c6 >= 49) { + r6 += c6 - 49 + 10; + } else if (c6 >= 17) { + r6 += c6 - 17 + 10; + } else { + r6 += c6; + } + } + return r6; + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + (this || _global$12).words = [0]; + (this || _global$12).length = 1; + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = limbPow / base | 0; + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + var word = 0; + for (var i6 = start; i6 < end; i6 += limbLen) { + word = parseBase(number, i6, i6 + limbLen, base); + this.imuln(limbPow); + if ((this || _global$12).words[0] + word < 67108864) { + (this || _global$12).words[0] += word; + } else { + this._iaddn(word); + } + } + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i6, number.length, base); + for (i6 = 0; i6 < mod; i6++) { + pow *= base; + } + this.imuln(pow); + if ((this || _global$12).words[0] + word < 67108864) { + (this || _global$12).words[0] += word; + } else { + this._iaddn(word); + } + } + this.strip(); + }; + BN.prototype.copy = function copy(dest) { + dest.words = new Array((this || _global$12).length); + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + dest.words[i6] = (this || _global$12).words[i6]; + } + dest.length = (this || _global$12).length; + dest.negative = (this || _global$12).negative; + dest.red = (this || _global$12).red; + }; + BN.prototype.clone = function clone() { + var r6 = new BN(null); + this.copy(r6); + return r6; + }; + BN.prototype._expand = function _expand(size) { + while ((this || _global$12).length < size) { + (this || _global$12).words[(this || _global$12).length++] = 0; + } + return this || _global$12; + }; + BN.prototype.strip = function strip() { + while ((this || _global$12).length > 1 && (this || _global$12).words[(this || _global$12).length - 1] === 0) { + (this || _global$12).length--; + } + return this._normSign(); + }; + BN.prototype._normSign = function _normSign() { + if ((this || _global$12).length === 1 && (this || _global$12).words[0] === 0) { + (this || _global$12).negative = 0; + } + return this || _global$12; + }; + BN.prototype.inspect = function inspect2() { + return ((this || _global$12).red ? ""; + }; + var zeros = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000", "0000000000", "00000000000", "000000000000", "0000000000000", "00000000000000", "000000000000000", "0000000000000000", "00000000000000000", "000000000000000000", "0000000000000000000", "00000000000000000000", "000000000000000000000", "0000000000000000000000", "00000000000000000000000", "000000000000000000000000", "0000000000000000000000000"]; + var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; + var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176]; + BN.prototype.toString = function toString(base, padding) { + base = base || 10; + padding = padding | 0 || 1; + var out; + if (base === 16 || base === "hex") { + out = ""; + var off = 0; + var carry = 0; + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + var w4 = (this || _global$12).words[i6]; + var word = ((w4 << off | carry) & 16777215).toString(16); + carry = w4 >>> 24 - off & 16777215; + if (carry !== 0 || i6 !== (this || _global$12).length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + off += 2; + if (off >= 26) { + off -= 26; + i6--; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$12).negative !== 0) { + out = "-" + out; + } + return out; + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base]; + var groupBase = groupBases[base]; + out = ""; + var c6 = this.clone(); + c6.negative = 0; + while (!c6.isZero()) { + var r6 = c6.modn(groupBase).toString(base); + c6 = c6.idivn(groupBase); + if (!c6.isZero()) { + out = zeros[groupSize - r6.length] + r6 + out; + } else { + out = r6 + out; + } + } + if (this.isZero()) { + out = "0" + out; + } + while (out.length % padding !== 0) { + out = "0" + out; + } + if ((this || _global$12).negative !== 0) { + out = "-" + out; + } + return out; + } + assert(false, "Base should be between 2 and 36"); + }; + BN.prototype.toNumber = function toNumber() { + var ret = (this || _global$12).words[0]; + if ((this || _global$12).length === 2) { + ret += (this || _global$12).words[1] * 67108864; + } else if ((this || _global$12).length === 3 && (this || _global$12).words[2] === 1) { + ret += 4503599627370496 + (this || _global$12).words[1] * 67108864; + } else if ((this || _global$12).length > 2) { + assert(false, "Number can only safely store up to 53 bits"); + } + return (this || _global$12).negative !== 0 ? -ret : ret; + }; + BN.prototype.toJSON = function toJSON() { + return this.toString(16); + }; + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer2 !== "undefined"); + return this.toArrayLike(Buffer2, endian, length); + }; + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length); + }; + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, "byte array longer than desired length"); + assert(reqLength > 0, "Requested array length <= 0"); + this.strip(); + var littleEndian = endian === "le"; + var res = new ArrayType(reqLength); + var b4, i6; + var q3 = this.clone(); + if (!littleEndian) { + for (i6 = 0; i6 < reqLength - byteLength; i6++) { + res[i6] = 0; + } + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[reqLength - i6 - 1] = b4; + } + } else { + for (i6 = 0; !q3.isZero(); i6++) { + b4 = q3.andln(255); + q3.iushrn(8); + res[i6] = b4; + } + for (; i6 < reqLength; i6++) { + res[i6] = 0; + } + } + return res; + }; + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w4) { + return 32 - Math.clz32(w4); + }; + } else { + BN.prototype._countBits = function _countBits(w4) { + var t6 = w4; + var r6 = 0; + if (t6 >= 4096) { + r6 += 13; + t6 >>>= 13; + } + if (t6 >= 64) { + r6 += 7; + t6 >>>= 7; + } + if (t6 >= 8) { + r6 += 4; + t6 >>>= 4; + } + if (t6 >= 2) { + r6 += 2; + t6 >>>= 2; + } + return r6 + t6; + }; + } + BN.prototype._zeroBits = function _zeroBits(w4) { + if (w4 === 0) + return 26; + var t6 = w4; + var r6 = 0; + if ((t6 & 8191) === 0) { + r6 += 13; + t6 >>>= 13; + } + if ((t6 & 127) === 0) { + r6 += 7; + t6 >>>= 7; + } + if ((t6 & 15) === 0) { + r6 += 4; + t6 >>>= 4; + } + if ((t6 & 3) === 0) { + r6 += 2; + t6 >>>= 2; + } + if ((t6 & 1) === 0) { + r6++; + } + return r6; + }; + BN.prototype.bitLength = function bitLength() { + var w4 = (this || _global$12).words[(this || _global$12).length - 1]; + var hi = this._countBits(w4); + return ((this || _global$12).length - 1) * 26 + hi; + }; + function toBitArray(num) { + var w4 = new Array(num.bitLength()); + for (var bit = 0; bit < w4.length; bit++) { + var off = bit / 26 | 0; + var wbit = bit % 26; + w4[bit] = (num.words[off] & 1 << wbit) >>> wbit; + } + return w4; + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) + return 0; + var r6 = 0; + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + var b4 = this._zeroBits((this || _global$12).words[i6]); + r6 += b4; + if (b4 !== 26) + break; + } + return r6; + }; + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8); + }; + BN.prototype.toTwos = function toTwos(width) { + if ((this || _global$12).negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + BN.prototype.isNeg = function isNeg() { + return (this || _global$12).negative !== 0; + }; + BN.prototype.neg = function neg() { + return this.clone().ineg(); + }; + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + (this || _global$12).negative ^= 1; + } + return this || _global$12; + }; + BN.prototype.iuor = function iuor(num) { + while ((this || _global$12).length < num.length) { + (this || _global$12).words[(this || _global$12).length++] = 0; + } + for (var i6 = 0; i6 < num.length; i6++) { + (this || _global$12).words[i6] = (this || _global$12).words[i6] | num.words[i6]; + } + return this.strip(); + }; + BN.prototype.ior = function ior(num) { + assert(((this || _global$12).negative | num.negative) === 0); + return this.iuor(num); + }; + BN.prototype.or = function or(num) { + if ((this || _global$12).length > num.length) + return this.clone().ior(num); + return num.clone().ior(this || _global$12); + }; + BN.prototype.uor = function uor(num) { + if ((this || _global$12).length > num.length) + return this.clone().iuor(num); + return num.clone().iuor(this || _global$12); + }; + BN.prototype.iuand = function iuand(num) { + var b4; + if ((this || _global$12).length > num.length) { + b4 = num; + } else { + b4 = this || _global$12; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$12).words[i6] = (this || _global$12).words[i6] & num.words[i6]; + } + (this || _global$12).length = b4.length; + return this.strip(); + }; + BN.prototype.iand = function iand(num) { + assert(((this || _global$12).negative | num.negative) === 0); + return this.iuand(num); + }; + BN.prototype.and = function and(num) { + if ((this || _global$12).length > num.length) + return this.clone().iand(num); + return num.clone().iand(this || _global$12); + }; + BN.prototype.uand = function uand(num) { + if ((this || _global$12).length > num.length) + return this.clone().iuand(num); + return num.clone().iuand(this || _global$12); + }; + BN.prototype.iuxor = function iuxor(num) { + var a6; + var b4; + if ((this || _global$12).length > num.length) { + a6 = this || _global$12; + b4 = num; + } else { + a6 = num; + b4 = this || _global$12; + } + for (var i6 = 0; i6 < b4.length; i6++) { + (this || _global$12).words[i6] = a6.words[i6] ^ b4.words[i6]; + } + if ((this || _global$12) !== a6) { + for (; i6 < a6.length; i6++) { + (this || _global$12).words[i6] = a6.words[i6]; + } + } + (this || _global$12).length = a6.length; + return this.strip(); + }; + BN.prototype.ixor = function ixor(num) { + assert(((this || _global$12).negative | num.negative) === 0); + return this.iuxor(num); + }; + BN.prototype.xor = function xor(num) { + if ((this || _global$12).length > num.length) + return this.clone().ixor(num); + return num.clone().ixor(this || _global$12); + }; + BN.prototype.uxor = function uxor(num) { + if ((this || _global$12).length > num.length) + return this.clone().iuxor(num); + return num.clone().iuxor(this || _global$12); + }; + BN.prototype.inotn = function inotn(width) { + assert(typeof width === "number" && width >= 0); + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + this._expand(bytesNeeded); + if (bitsLeft > 0) { + bytesNeeded--; + } + for (var i6 = 0; i6 < bytesNeeded; i6++) { + (this || _global$12).words[i6] = ~(this || _global$12).words[i6] & 67108863; + } + if (bitsLeft > 0) { + (this || _global$12).words[i6] = ~(this || _global$12).words[i6] & 67108863 >> 26 - bitsLeft; + } + return this.strip(); + }; + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width); + }; + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === "number" && bit >= 0); + var off = bit / 26 | 0; + var wbit = bit % 26; + this._expand(off + 1); + if (val) { + (this || _global$12).words[off] = (this || _global$12).words[off] | 1 << wbit; + } else { + (this || _global$12).words[off] = (this || _global$12).words[off] & ~(1 << wbit); + } + return this.strip(); + }; + BN.prototype.iadd = function iadd(num) { + var r6; + if ((this || _global$12).negative !== 0 && num.negative === 0) { + (this || _global$12).negative = 0; + r6 = this.isub(num); + (this || _global$12).negative ^= 1; + return this._normSign(); + } else if ((this || _global$12).negative === 0 && num.negative !== 0) { + num.negative = 0; + r6 = this.isub(num); + num.negative = 1; + return r6._normSign(); + } + var a6, b4; + if ((this || _global$12).length > num.length) { + a6 = this || _global$12; + b4 = num; + } else { + a6 = num; + b4 = this || _global$12; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) + (b4.words[i6] | 0) + carry; + (this || _global$12).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + (this || _global$12).words[i6] = r6 & 67108863; + carry = r6 >>> 26; + } + (this || _global$12).length = a6.length; + if (carry !== 0) { + (this || _global$12).words[(this || _global$12).length] = carry; + (this || _global$12).length++; + } else if (a6 !== (this || _global$12)) { + for (; i6 < a6.length; i6++) { + (this || _global$12).words[i6] = a6.words[i6]; + } + } + return this || _global$12; + }; + BN.prototype.add = function add(num) { + var res; + if (num.negative !== 0 && (this || _global$12).negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && (this || _global$12).negative !== 0) { + (this || _global$12).negative = 0; + res = num.sub(this || _global$12); + (this || _global$12).negative = 1; + return res; + } + if ((this || _global$12).length > num.length) + return this.clone().iadd(num); + return num.clone().iadd(this || _global$12); + }; + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0; + var r6 = this.iadd(num); + num.negative = 1; + return r6._normSign(); + } else if ((this || _global$12).negative !== 0) { + (this || _global$12).negative = 0; + this.iadd(num); + (this || _global$12).negative = 1; + return this._normSign(); + } + var cmp = this.cmp(num); + if (cmp === 0) { + (this || _global$12).negative = 0; + (this || _global$12).length = 1; + (this || _global$12).words[0] = 0; + return this || _global$12; + } + var a6, b4; + if (cmp > 0) { + a6 = this || _global$12; + b4 = num; + } else { + a6 = num; + b4 = this || _global$12; + } + var carry = 0; + for (var i6 = 0; i6 < b4.length; i6++) { + r6 = (a6.words[i6] | 0) - (b4.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$12).words[i6] = r6 & 67108863; + } + for (; carry !== 0 && i6 < a6.length; i6++) { + r6 = (a6.words[i6] | 0) + carry; + carry = r6 >> 26; + (this || _global$12).words[i6] = r6 & 67108863; + } + if (carry === 0 && i6 < a6.length && a6 !== (this || _global$12)) { + for (; i6 < a6.length; i6++) { + (this || _global$12).words[i6] = a6.words[i6]; + } + } + (this || _global$12).length = Math.max((this || _global$12).length, i6); + if (a6 !== (this || _global$12)) { + (this || _global$12).negative = 1; + } + return this.strip(); + }; + BN.prototype.sub = function sub(num) { + return this.clone().isub(num); + }; + function smallMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + var len = self2.length + num.length | 0; + out.length = len; + len = len - 1 | 0; + var a6 = self2.words[0] | 0; + var b4 = num.words[0] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + var carry = r6 / 67108864 | 0; + out.words[0] = lo; + for (var k4 = 1; k4 < len; k4++) { + var ncarry = carry >>> 26; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4 | 0; + a6 = self2.words[i6] | 0; + b4 = num.words[j4] | 0; + r6 = a6 * b4 + rword; + ncarry += r6 / 67108864 | 0; + rword = r6 & 67108863; + } + out.words[k4] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k4] = carry | 0; + } else { + out.length--; + } + return out.strip(); + } + var comb10MulTo = function comb10MulTo2(self2, num, out) { + var a6 = self2.words; + var b4 = num.words; + var o6 = out.words; + var c6 = 0; + var lo; + var mid; + var hi; + var a0 = a6[0] | 0; + var al0 = a0 & 8191; + var ah0 = a0 >>> 13; + var a1 = a6[1] | 0; + var al1 = a1 & 8191; + var ah1 = a1 >>> 13; + var a22 = a6[2] | 0; + var al2 = a22 & 8191; + var ah2 = a22 >>> 13; + var a32 = a6[3] | 0; + var al3 = a32 & 8191; + var ah3 = a32 >>> 13; + var a42 = a6[4] | 0; + var al4 = a42 & 8191; + var ah4 = a42 >>> 13; + var a52 = a6[5] | 0; + var al5 = a52 & 8191; + var ah5 = a52 >>> 13; + var a62 = a6[6] | 0; + var al6 = a62 & 8191; + var ah6 = a62 >>> 13; + var a7 = a6[7] | 0; + var al7 = a7 & 8191; + var ah7 = a7 >>> 13; + var a8 = a6[8] | 0; + var al8 = a8 & 8191; + var ah8 = a8 >>> 13; + var a9 = a6[9] | 0; + var al9 = a9 & 8191; + var ah9 = a9 >>> 13; + var b0 = b4[0] | 0; + var bl0 = b0 & 8191; + var bh0 = b0 >>> 13; + var b1 = b4[1] | 0; + var bl1 = b1 & 8191; + var bh1 = b1 >>> 13; + var b22 = b4[2] | 0; + var bl2 = b22 & 8191; + var bh2 = b22 >>> 13; + var b32 = b4[3] | 0; + var bl3 = b32 & 8191; + var bh3 = b32 >>> 13; + var b42 = b4[4] | 0; + var bl4 = b42 & 8191; + var bh4 = b42 >>> 13; + var b5 = b4[5] | 0; + var bl5 = b5 & 8191; + var bh5 = b5 >>> 13; + var b6 = b4[6] | 0; + var bl6 = b6 & 8191; + var bh6 = b6 >>> 13; + var b7 = b4[7] | 0; + var bl7 = b7 & 8191; + var bh7 = b7 >>> 13; + var b8 = b4[8] | 0; + var bl8 = b8 & 8191; + var bh8 = b8 >>> 13; + var b9 = b4[9] | 0; + var bl9 = b9 & 8191; + var bh9 = b9 >>> 13; + out.negative = self2.negative ^ num.negative; + out.length = 19; + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = mid + Math.imul(ah0, bl0) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; + w0 &= 67108863; + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = mid + Math.imul(ah1, bl0) | 0; + hi = Math.imul(ah1, bh0); + lo = lo + Math.imul(al0, bl1) | 0; + mid = mid + Math.imul(al0, bh1) | 0; + mid = mid + Math.imul(ah0, bl1) | 0; + hi = hi + Math.imul(ah0, bh1) | 0; + var w1 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; + w1 &= 67108863; + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = mid + Math.imul(ah2, bl0) | 0; + hi = Math.imul(ah2, bh0); + lo = lo + Math.imul(al1, bl1) | 0; + mid = mid + Math.imul(al1, bh1) | 0; + mid = mid + Math.imul(ah1, bl1) | 0; + hi = hi + Math.imul(ah1, bh1) | 0; + lo = lo + Math.imul(al0, bl2) | 0; + mid = mid + Math.imul(al0, bh2) | 0; + mid = mid + Math.imul(ah0, bl2) | 0; + hi = hi + Math.imul(ah0, bh2) | 0; + var w22 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w22 >>> 26) | 0; + w22 &= 67108863; + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = mid + Math.imul(ah3, bl0) | 0; + hi = Math.imul(ah3, bh0); + lo = lo + Math.imul(al2, bl1) | 0; + mid = mid + Math.imul(al2, bh1) | 0; + mid = mid + Math.imul(ah2, bl1) | 0; + hi = hi + Math.imul(ah2, bh1) | 0; + lo = lo + Math.imul(al1, bl2) | 0; + mid = mid + Math.imul(al1, bh2) | 0; + mid = mid + Math.imul(ah1, bl2) | 0; + hi = hi + Math.imul(ah1, bh2) | 0; + lo = lo + Math.imul(al0, bl3) | 0; + mid = mid + Math.imul(al0, bh3) | 0; + mid = mid + Math.imul(ah0, bl3) | 0; + hi = hi + Math.imul(ah0, bh3) | 0; + var w32 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w32 >>> 26) | 0; + w32 &= 67108863; + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = mid + Math.imul(ah4, bl0) | 0; + hi = Math.imul(ah4, bh0); + lo = lo + Math.imul(al3, bl1) | 0; + mid = mid + Math.imul(al3, bh1) | 0; + mid = mid + Math.imul(ah3, bl1) | 0; + hi = hi + Math.imul(ah3, bh1) | 0; + lo = lo + Math.imul(al2, bl2) | 0; + mid = mid + Math.imul(al2, bh2) | 0; + mid = mid + Math.imul(ah2, bl2) | 0; + hi = hi + Math.imul(ah2, bh2) | 0; + lo = lo + Math.imul(al1, bl3) | 0; + mid = mid + Math.imul(al1, bh3) | 0; + mid = mid + Math.imul(ah1, bl3) | 0; + hi = hi + Math.imul(ah1, bh3) | 0; + lo = lo + Math.imul(al0, bl4) | 0; + mid = mid + Math.imul(al0, bh4) | 0; + mid = mid + Math.imul(ah0, bl4) | 0; + hi = hi + Math.imul(ah0, bh4) | 0; + var w4 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; + w4 &= 67108863; + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = mid + Math.imul(ah5, bl0) | 0; + hi = Math.imul(ah5, bh0); + lo = lo + Math.imul(al4, bl1) | 0; + mid = mid + Math.imul(al4, bh1) | 0; + mid = mid + Math.imul(ah4, bl1) | 0; + hi = hi + Math.imul(ah4, bh1) | 0; + lo = lo + Math.imul(al3, bl2) | 0; + mid = mid + Math.imul(al3, bh2) | 0; + mid = mid + Math.imul(ah3, bl2) | 0; + hi = hi + Math.imul(ah3, bh2) | 0; + lo = lo + Math.imul(al2, bl3) | 0; + mid = mid + Math.imul(al2, bh3) | 0; + mid = mid + Math.imul(ah2, bl3) | 0; + hi = hi + Math.imul(ah2, bh3) | 0; + lo = lo + Math.imul(al1, bl4) | 0; + mid = mid + Math.imul(al1, bh4) | 0; + mid = mid + Math.imul(ah1, bl4) | 0; + hi = hi + Math.imul(ah1, bh4) | 0; + lo = lo + Math.imul(al0, bl5) | 0; + mid = mid + Math.imul(al0, bh5) | 0; + mid = mid + Math.imul(ah0, bl5) | 0; + hi = hi + Math.imul(ah0, bh5) | 0; + var w5 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; + w5 &= 67108863; + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = mid + Math.imul(ah6, bl0) | 0; + hi = Math.imul(ah6, bh0); + lo = lo + Math.imul(al5, bl1) | 0; + mid = mid + Math.imul(al5, bh1) | 0; + mid = mid + Math.imul(ah5, bl1) | 0; + hi = hi + Math.imul(ah5, bh1) | 0; + lo = lo + Math.imul(al4, bl2) | 0; + mid = mid + Math.imul(al4, bh2) | 0; + mid = mid + Math.imul(ah4, bl2) | 0; + hi = hi + Math.imul(ah4, bh2) | 0; + lo = lo + Math.imul(al3, bl3) | 0; + mid = mid + Math.imul(al3, bh3) | 0; + mid = mid + Math.imul(ah3, bl3) | 0; + hi = hi + Math.imul(ah3, bh3) | 0; + lo = lo + Math.imul(al2, bl4) | 0; + mid = mid + Math.imul(al2, bh4) | 0; + mid = mid + Math.imul(ah2, bl4) | 0; + hi = hi + Math.imul(ah2, bh4) | 0; + lo = lo + Math.imul(al1, bl5) | 0; + mid = mid + Math.imul(al1, bh5) | 0; + mid = mid + Math.imul(ah1, bl5) | 0; + hi = hi + Math.imul(ah1, bh5) | 0; + lo = lo + Math.imul(al0, bl6) | 0; + mid = mid + Math.imul(al0, bh6) | 0; + mid = mid + Math.imul(ah0, bl6) | 0; + hi = hi + Math.imul(ah0, bh6) | 0; + var w6 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; + w6 &= 67108863; + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = mid + Math.imul(ah7, bl0) | 0; + hi = Math.imul(ah7, bh0); + lo = lo + Math.imul(al6, bl1) | 0; + mid = mid + Math.imul(al6, bh1) | 0; + mid = mid + Math.imul(ah6, bl1) | 0; + hi = hi + Math.imul(ah6, bh1) | 0; + lo = lo + Math.imul(al5, bl2) | 0; + mid = mid + Math.imul(al5, bh2) | 0; + mid = mid + Math.imul(ah5, bl2) | 0; + hi = hi + Math.imul(ah5, bh2) | 0; + lo = lo + Math.imul(al4, bl3) | 0; + mid = mid + Math.imul(al4, bh3) | 0; + mid = mid + Math.imul(ah4, bl3) | 0; + hi = hi + Math.imul(ah4, bh3) | 0; + lo = lo + Math.imul(al3, bl4) | 0; + mid = mid + Math.imul(al3, bh4) | 0; + mid = mid + Math.imul(ah3, bl4) | 0; + hi = hi + Math.imul(ah3, bh4) | 0; + lo = lo + Math.imul(al2, bl5) | 0; + mid = mid + Math.imul(al2, bh5) | 0; + mid = mid + Math.imul(ah2, bl5) | 0; + hi = hi + Math.imul(ah2, bh5) | 0; + lo = lo + Math.imul(al1, bl6) | 0; + mid = mid + Math.imul(al1, bh6) | 0; + mid = mid + Math.imul(ah1, bl6) | 0; + hi = hi + Math.imul(ah1, bh6) | 0; + lo = lo + Math.imul(al0, bl7) | 0; + mid = mid + Math.imul(al0, bh7) | 0; + mid = mid + Math.imul(ah0, bl7) | 0; + hi = hi + Math.imul(ah0, bh7) | 0; + var w7 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; + w7 &= 67108863; + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = mid + Math.imul(ah8, bl0) | 0; + hi = Math.imul(ah8, bh0); + lo = lo + Math.imul(al7, bl1) | 0; + mid = mid + Math.imul(al7, bh1) | 0; + mid = mid + Math.imul(ah7, bl1) | 0; + hi = hi + Math.imul(ah7, bh1) | 0; + lo = lo + Math.imul(al6, bl2) | 0; + mid = mid + Math.imul(al6, bh2) | 0; + mid = mid + Math.imul(ah6, bl2) | 0; + hi = hi + Math.imul(ah6, bh2) | 0; + lo = lo + Math.imul(al5, bl3) | 0; + mid = mid + Math.imul(al5, bh3) | 0; + mid = mid + Math.imul(ah5, bl3) | 0; + hi = hi + Math.imul(ah5, bh3) | 0; + lo = lo + Math.imul(al4, bl4) | 0; + mid = mid + Math.imul(al4, bh4) | 0; + mid = mid + Math.imul(ah4, bl4) | 0; + hi = hi + Math.imul(ah4, bh4) | 0; + lo = lo + Math.imul(al3, bl5) | 0; + mid = mid + Math.imul(al3, bh5) | 0; + mid = mid + Math.imul(ah3, bl5) | 0; + hi = hi + Math.imul(ah3, bh5) | 0; + lo = lo + Math.imul(al2, bl6) | 0; + mid = mid + Math.imul(al2, bh6) | 0; + mid = mid + Math.imul(ah2, bl6) | 0; + hi = hi + Math.imul(ah2, bh6) | 0; + lo = lo + Math.imul(al1, bl7) | 0; + mid = mid + Math.imul(al1, bh7) | 0; + mid = mid + Math.imul(ah1, bl7) | 0; + hi = hi + Math.imul(ah1, bh7) | 0; + lo = lo + Math.imul(al0, bl8) | 0; + mid = mid + Math.imul(al0, bh8) | 0; + mid = mid + Math.imul(ah0, bl8) | 0; + hi = hi + Math.imul(ah0, bh8) | 0; + var w8 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; + w8 &= 67108863; + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = mid + Math.imul(ah9, bl0) | 0; + hi = Math.imul(ah9, bh0); + lo = lo + Math.imul(al8, bl1) | 0; + mid = mid + Math.imul(al8, bh1) | 0; + mid = mid + Math.imul(ah8, bl1) | 0; + hi = hi + Math.imul(ah8, bh1) | 0; + lo = lo + Math.imul(al7, bl2) | 0; + mid = mid + Math.imul(al7, bh2) | 0; + mid = mid + Math.imul(ah7, bl2) | 0; + hi = hi + Math.imul(ah7, bh2) | 0; + lo = lo + Math.imul(al6, bl3) | 0; + mid = mid + Math.imul(al6, bh3) | 0; + mid = mid + Math.imul(ah6, bl3) | 0; + hi = hi + Math.imul(ah6, bh3) | 0; + lo = lo + Math.imul(al5, bl4) | 0; + mid = mid + Math.imul(al5, bh4) | 0; + mid = mid + Math.imul(ah5, bl4) | 0; + hi = hi + Math.imul(ah5, bh4) | 0; + lo = lo + Math.imul(al4, bl5) | 0; + mid = mid + Math.imul(al4, bh5) | 0; + mid = mid + Math.imul(ah4, bl5) | 0; + hi = hi + Math.imul(ah4, bh5) | 0; + lo = lo + Math.imul(al3, bl6) | 0; + mid = mid + Math.imul(al3, bh6) | 0; + mid = mid + Math.imul(ah3, bl6) | 0; + hi = hi + Math.imul(ah3, bh6) | 0; + lo = lo + Math.imul(al2, bl7) | 0; + mid = mid + Math.imul(al2, bh7) | 0; + mid = mid + Math.imul(ah2, bl7) | 0; + hi = hi + Math.imul(ah2, bh7) | 0; + lo = lo + Math.imul(al1, bl8) | 0; + mid = mid + Math.imul(al1, bh8) | 0; + mid = mid + Math.imul(ah1, bl8) | 0; + hi = hi + Math.imul(ah1, bh8) | 0; + lo = lo + Math.imul(al0, bl9) | 0; + mid = mid + Math.imul(al0, bh9) | 0; + mid = mid + Math.imul(ah0, bl9) | 0; + hi = hi + Math.imul(ah0, bh9) | 0; + var w9 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; + w9 &= 67108863; + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = mid + Math.imul(ah9, bl1) | 0; + hi = Math.imul(ah9, bh1); + lo = lo + Math.imul(al8, bl2) | 0; + mid = mid + Math.imul(al8, bh2) | 0; + mid = mid + Math.imul(ah8, bl2) | 0; + hi = hi + Math.imul(ah8, bh2) | 0; + lo = lo + Math.imul(al7, bl3) | 0; + mid = mid + Math.imul(al7, bh3) | 0; + mid = mid + Math.imul(ah7, bl3) | 0; + hi = hi + Math.imul(ah7, bh3) | 0; + lo = lo + Math.imul(al6, bl4) | 0; + mid = mid + Math.imul(al6, bh4) | 0; + mid = mid + Math.imul(ah6, bl4) | 0; + hi = hi + Math.imul(ah6, bh4) | 0; + lo = lo + Math.imul(al5, bl5) | 0; + mid = mid + Math.imul(al5, bh5) | 0; + mid = mid + Math.imul(ah5, bl5) | 0; + hi = hi + Math.imul(ah5, bh5) | 0; + lo = lo + Math.imul(al4, bl6) | 0; + mid = mid + Math.imul(al4, bh6) | 0; + mid = mid + Math.imul(ah4, bl6) | 0; + hi = hi + Math.imul(ah4, bh6) | 0; + lo = lo + Math.imul(al3, bl7) | 0; + mid = mid + Math.imul(al3, bh7) | 0; + mid = mid + Math.imul(ah3, bl7) | 0; + hi = hi + Math.imul(ah3, bh7) | 0; + lo = lo + Math.imul(al2, bl8) | 0; + mid = mid + Math.imul(al2, bh8) | 0; + mid = mid + Math.imul(ah2, bl8) | 0; + hi = hi + Math.imul(ah2, bh8) | 0; + lo = lo + Math.imul(al1, bl9) | 0; + mid = mid + Math.imul(al1, bh9) | 0; + mid = mid + Math.imul(ah1, bl9) | 0; + hi = hi + Math.imul(ah1, bh9) | 0; + var w10 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; + w10 &= 67108863; + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = mid + Math.imul(ah9, bl2) | 0; + hi = Math.imul(ah9, bh2); + lo = lo + Math.imul(al8, bl3) | 0; + mid = mid + Math.imul(al8, bh3) | 0; + mid = mid + Math.imul(ah8, bl3) | 0; + hi = hi + Math.imul(ah8, bh3) | 0; + lo = lo + Math.imul(al7, bl4) | 0; + mid = mid + Math.imul(al7, bh4) | 0; + mid = mid + Math.imul(ah7, bl4) | 0; + hi = hi + Math.imul(ah7, bh4) | 0; + lo = lo + Math.imul(al6, bl5) | 0; + mid = mid + Math.imul(al6, bh5) | 0; + mid = mid + Math.imul(ah6, bl5) | 0; + hi = hi + Math.imul(ah6, bh5) | 0; + lo = lo + Math.imul(al5, bl6) | 0; + mid = mid + Math.imul(al5, bh6) | 0; + mid = mid + Math.imul(ah5, bl6) | 0; + hi = hi + Math.imul(ah5, bh6) | 0; + lo = lo + Math.imul(al4, bl7) | 0; + mid = mid + Math.imul(al4, bh7) | 0; + mid = mid + Math.imul(ah4, bl7) | 0; + hi = hi + Math.imul(ah4, bh7) | 0; + lo = lo + Math.imul(al3, bl8) | 0; + mid = mid + Math.imul(al3, bh8) | 0; + mid = mid + Math.imul(ah3, bl8) | 0; + hi = hi + Math.imul(ah3, bh8) | 0; + lo = lo + Math.imul(al2, bl9) | 0; + mid = mid + Math.imul(al2, bh9) | 0; + mid = mid + Math.imul(ah2, bl9) | 0; + hi = hi + Math.imul(ah2, bh9) | 0; + var w11 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; + w11 &= 67108863; + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = mid + Math.imul(ah9, bl3) | 0; + hi = Math.imul(ah9, bh3); + lo = lo + Math.imul(al8, bl4) | 0; + mid = mid + Math.imul(al8, bh4) | 0; + mid = mid + Math.imul(ah8, bl4) | 0; + hi = hi + Math.imul(ah8, bh4) | 0; + lo = lo + Math.imul(al7, bl5) | 0; + mid = mid + Math.imul(al7, bh5) | 0; + mid = mid + Math.imul(ah7, bl5) | 0; + hi = hi + Math.imul(ah7, bh5) | 0; + lo = lo + Math.imul(al6, bl6) | 0; + mid = mid + Math.imul(al6, bh6) | 0; + mid = mid + Math.imul(ah6, bl6) | 0; + hi = hi + Math.imul(ah6, bh6) | 0; + lo = lo + Math.imul(al5, bl7) | 0; + mid = mid + Math.imul(al5, bh7) | 0; + mid = mid + Math.imul(ah5, bl7) | 0; + hi = hi + Math.imul(ah5, bh7) | 0; + lo = lo + Math.imul(al4, bl8) | 0; + mid = mid + Math.imul(al4, bh8) | 0; + mid = mid + Math.imul(ah4, bl8) | 0; + hi = hi + Math.imul(ah4, bh8) | 0; + lo = lo + Math.imul(al3, bl9) | 0; + mid = mid + Math.imul(al3, bh9) | 0; + mid = mid + Math.imul(ah3, bl9) | 0; + hi = hi + Math.imul(ah3, bh9) | 0; + var w12 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; + w12 &= 67108863; + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = mid + Math.imul(ah9, bl4) | 0; + hi = Math.imul(ah9, bh4); + lo = lo + Math.imul(al8, bl5) | 0; + mid = mid + Math.imul(al8, bh5) | 0; + mid = mid + Math.imul(ah8, bl5) | 0; + hi = hi + Math.imul(ah8, bh5) | 0; + lo = lo + Math.imul(al7, bl6) | 0; + mid = mid + Math.imul(al7, bh6) | 0; + mid = mid + Math.imul(ah7, bl6) | 0; + hi = hi + Math.imul(ah7, bh6) | 0; + lo = lo + Math.imul(al6, bl7) | 0; + mid = mid + Math.imul(al6, bh7) | 0; + mid = mid + Math.imul(ah6, bl7) | 0; + hi = hi + Math.imul(ah6, bh7) | 0; + lo = lo + Math.imul(al5, bl8) | 0; + mid = mid + Math.imul(al5, bh8) | 0; + mid = mid + Math.imul(ah5, bl8) | 0; + hi = hi + Math.imul(ah5, bh8) | 0; + lo = lo + Math.imul(al4, bl9) | 0; + mid = mid + Math.imul(al4, bh9) | 0; + mid = mid + Math.imul(ah4, bl9) | 0; + hi = hi + Math.imul(ah4, bh9) | 0; + var w13 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; + w13 &= 67108863; + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = mid + Math.imul(ah9, bl5) | 0; + hi = Math.imul(ah9, bh5); + lo = lo + Math.imul(al8, bl6) | 0; + mid = mid + Math.imul(al8, bh6) | 0; + mid = mid + Math.imul(ah8, bl6) | 0; + hi = hi + Math.imul(ah8, bh6) | 0; + lo = lo + Math.imul(al7, bl7) | 0; + mid = mid + Math.imul(al7, bh7) | 0; + mid = mid + Math.imul(ah7, bl7) | 0; + hi = hi + Math.imul(ah7, bh7) | 0; + lo = lo + Math.imul(al6, bl8) | 0; + mid = mid + Math.imul(al6, bh8) | 0; + mid = mid + Math.imul(ah6, bl8) | 0; + hi = hi + Math.imul(ah6, bh8) | 0; + lo = lo + Math.imul(al5, bl9) | 0; + mid = mid + Math.imul(al5, bh9) | 0; + mid = mid + Math.imul(ah5, bl9) | 0; + hi = hi + Math.imul(ah5, bh9) | 0; + var w14 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; + w14 &= 67108863; + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = mid + Math.imul(ah9, bl6) | 0; + hi = Math.imul(ah9, bh6); + lo = lo + Math.imul(al8, bl7) | 0; + mid = mid + Math.imul(al8, bh7) | 0; + mid = mid + Math.imul(ah8, bl7) | 0; + hi = hi + Math.imul(ah8, bh7) | 0; + lo = lo + Math.imul(al7, bl8) | 0; + mid = mid + Math.imul(al7, bh8) | 0; + mid = mid + Math.imul(ah7, bl8) | 0; + hi = hi + Math.imul(ah7, bh8) | 0; + lo = lo + Math.imul(al6, bl9) | 0; + mid = mid + Math.imul(al6, bh9) | 0; + mid = mid + Math.imul(ah6, bl9) | 0; + hi = hi + Math.imul(ah6, bh9) | 0; + var w15 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; + w15 &= 67108863; + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = mid + Math.imul(ah9, bl7) | 0; + hi = Math.imul(ah9, bh7); + lo = lo + Math.imul(al8, bl8) | 0; + mid = mid + Math.imul(al8, bh8) | 0; + mid = mid + Math.imul(ah8, bl8) | 0; + hi = hi + Math.imul(ah8, bh8) | 0; + lo = lo + Math.imul(al7, bl9) | 0; + mid = mid + Math.imul(al7, bh9) | 0; + mid = mid + Math.imul(ah7, bl9) | 0; + hi = hi + Math.imul(ah7, bh9) | 0; + var w16 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; + w16 &= 67108863; + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = mid + Math.imul(ah9, bl8) | 0; + hi = Math.imul(ah9, bh8); + lo = lo + Math.imul(al8, bl9) | 0; + mid = mid + Math.imul(al8, bh9) | 0; + mid = mid + Math.imul(ah8, bl9) | 0; + hi = hi + Math.imul(ah8, bh9) | 0; + var w17 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; + w17 &= 67108863; + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = mid + Math.imul(ah9, bl9) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (c6 + lo | 0) + ((mid & 8191) << 13) | 0; + c6 = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; + w18 &= 67108863; + o6[0] = w0; + o6[1] = w1; + o6[2] = w22; + o6[3] = w32; + o6[4] = w4; + o6[5] = w5; + o6[6] = w6; + o6[7] = w7; + o6[8] = w8; + o6[9] = w9; + o6[10] = w10; + o6[11] = w11; + o6[12] = w12; + o6[13] = w13; + o6[14] = w14; + o6[15] = w15; + o6[16] = w16; + o6[17] = w17; + o6[18] = w18; + if (c6 !== 0) { + o6[19] = c6; + out.length++; + } + return out; + }; + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + function bigMulTo(self2, num, out) { + out.negative = num.negative ^ self2.negative; + out.length = self2.length + num.length; + var carry = 0; + var hncarry = 0; + for (var k4 = 0; k4 < out.length - 1; k4++) { + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 67108863; + var maxJ = Math.min(k4, num.length - 1); + for (var j4 = Math.max(0, k4 - self2.length + 1); j4 <= maxJ; j4++) { + var i6 = k4 - j4; + var a6 = self2.words[i6] | 0; + var b4 = num.words[j4] | 0; + var r6 = a6 * b4; + var lo = r6 & 67108863; + ncarry = ncarry + (r6 / 67108864 | 0) | 0; + lo = lo + rword | 0; + rword = lo & 67108863; + ncarry = ncarry + (lo >>> 26) | 0; + hncarry += ncarry >>> 26; + ncarry &= 67108863; + } + out.words[k4] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k4] = carry; + } else { + out.length--; + } + return out.strip(); + } + function jumboMulTo(self2, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self2, num, out); + } + BN.prototype.mulTo = function mulTo(num, out) { + var res; + var len = (this || _global$12).length + num.length; + if ((this || _global$12).length === 10 && num.length === 10) { + res = comb10MulTo(this || _global$12, num, out); + } else if (len < 63) { + res = smallMulTo(this || _global$12, num, out); + } else if (len < 1024) { + res = bigMulTo(this || _global$12, num, out); + } else { + res = jumboMulTo(this || _global$12, num, out); + } + return res; + }; + function FFTM(x4, y5) { + (this || _global$12).x = x4; + (this || _global$12).y = y5; + } + FFTM.prototype.makeRBT = function makeRBT(N4) { + var t6 = new Array(N4); + var l6 = BN.prototype._countBits(N4) - 1; + for (var i6 = 0; i6 < N4; i6++) { + t6[i6] = this.revBin(i6, l6, N4); + } + return t6; + }; + FFTM.prototype.revBin = function revBin(x4, l6, N4) { + if (x4 === 0 || x4 === N4 - 1) + return x4; + var rb = 0; + for (var i6 = 0; i6 < l6; i6++) { + rb |= (x4 & 1) << l6 - i6 - 1; + x4 >>= 1; + } + return rb; + }; + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N4) { + for (var i6 = 0; i6 < N4; i6++) { + rtws[i6] = rws[rbt[i6]]; + itws[i6] = iws[rbt[i6]]; + } + }; + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N4, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N4); + for (var s6 = 1; s6 < N4; s6 <<= 1) { + var l6 = s6 << 1; + var rtwdf = Math.cos(2 * Math.PI / l6); + var itwdf = Math.sin(2 * Math.PI / l6); + for (var p6 = 0; p6 < N4; p6 += l6) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + for (var j4 = 0; j4 < s6; j4++) { + var re3 = rtws[p6 + j4]; + var ie2 = itws[p6 + j4]; + var ro = rtws[p6 + j4 + s6]; + var io = itws[p6 + j4 + s6]; + var rx = rtwdf_ * ro - itwdf_ * io; + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + rtws[p6 + j4] = re3 + ro; + itws[p6 + j4] = ie2 + io; + rtws[p6 + j4 + s6] = re3 - ro; + itws[p6 + j4 + s6] = ie2 - io; + if (j4 !== l6) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + FFTM.prototype.guessLen13b = function guessLen13b(n6, m5) { + var N4 = Math.max(m5, n6) | 1; + var odd = N4 & 1; + var i6 = 0; + for (N4 = N4 / 2 | 0; N4; N4 = N4 >>> 1) { + i6++; + } + return 1 << i6 + 1 + odd; + }; + FFTM.prototype.conjugate = function conjugate(rws, iws, N4) { + if (N4 <= 1) + return; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var t6 = rws[i6]; + rws[i6] = rws[N4 - i6 - 1]; + rws[N4 - i6 - 1] = t6; + t6 = iws[i6]; + iws[i6] = -iws[N4 - i6 - 1]; + iws[N4 - i6 - 1] = -t6; + } + }; + FFTM.prototype.normalize13b = function normalize13b(ws, N4) { + var carry = 0; + for (var i6 = 0; i6 < N4 / 2; i6++) { + var w4 = Math.round(ws[2 * i6 + 1] / N4) * 8192 + Math.round(ws[2 * i6] / N4) + carry; + ws[i6] = w4 & 67108863; + if (w4 < 67108864) { + carry = 0; + } else { + carry = w4 / 67108864 | 0; + } + } + return ws; + }; + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N4) { + var carry = 0; + for (var i6 = 0; i6 < len; i6++) { + carry = carry + (ws[i6] | 0); + rws[2 * i6] = carry & 8191; + carry = carry >>> 13; + rws[2 * i6 + 1] = carry & 8191; + carry = carry >>> 13; + } + for (i6 = 2 * len; i6 < N4; ++i6) { + rws[i6] = 0; + } + assert(carry === 0); + assert((carry & ~8191) === 0); + }; + FFTM.prototype.stub = function stub(N4) { + var ph = new Array(N4); + for (var i6 = 0; i6 < N4; i6++) { + ph[i6] = 0; + } + return ph; + }; + FFTM.prototype.mulp = function mulp(x4, y5, out) { + var N4 = 2 * this.guessLen13b(x4.length, y5.length); + var rbt = this.makeRBT(N4); + var _4 = this.stub(N4); + var rws = new Array(N4); + var rwst = new Array(N4); + var iwst = new Array(N4); + var nrws = new Array(N4); + var nrwst = new Array(N4); + var niwst = new Array(N4); + var rmws = out.words; + rmws.length = N4; + this.convert13b(x4.words, x4.length, rws, N4); + this.convert13b(y5.words, y5.length, nrws, N4); + this.transform(rws, _4, rwst, iwst, N4, rbt); + this.transform(nrws, _4, nrwst, niwst, N4, rbt); + for (var i6 = 0; i6 < N4; i6++) { + var rx = rwst[i6] * nrwst[i6] - iwst[i6] * niwst[i6]; + iwst[i6] = rwst[i6] * niwst[i6] + iwst[i6] * nrwst[i6]; + rwst[i6] = rx; + } + this.conjugate(rwst, iwst, N4); + this.transform(rwst, iwst, rmws, _4, N4, rbt); + this.conjugate(rmws, _4, N4); + this.normalize13b(rmws, N4); + out.negative = x4.negative ^ y5.negative; + out.length = x4.length + y5.length; + return out.strip(); + }; + BN.prototype.mul = function mul(num) { + var out = new BN(null); + out.words = new Array((this || _global$12).length + num.length); + return this.mulTo(num, out); + }; + BN.prototype.mulf = function mulf(num) { + var out = new BN(null); + out.words = new Array((this || _global$12).length + num.length); + return jumboMulTo(this || _global$12, num, out); + }; + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this || _global$12); + }; + BN.prototype.imuln = function imuln(num) { + assert(typeof num === "number"); + assert(num < 67108864); + var carry = 0; + for (var i6 = 0; i6 < (this || _global$12).length; i6++) { + var w4 = ((this || _global$12).words[i6] | 0) * num; + var lo = (w4 & 67108863) + (carry & 67108863); + carry >>= 26; + carry += w4 / 67108864 | 0; + carry += lo >>> 26; + (this || _global$12).words[i6] = lo & 67108863; + } + if (carry !== 0) { + (this || _global$12).words[i6] = carry; + (this || _global$12).length++; + } + return this || _global$12; + }; + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num); + }; + BN.prototype.sqr = function sqr() { + return this.mul(this || _global$12); + }; + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()); + }; + BN.prototype.pow = function pow(num) { + var w4 = toBitArray(num); + if (w4.length === 0) + return new BN(1); + var res = this || _global$12; + for (var i6 = 0; i6 < w4.length; i6++, res = res.sqr()) { + if (w4[i6] !== 0) + break; + } + if (++i6 < w4.length) { + for (var q3 = res.sqr(); i6 < w4.length; i6++, q3 = q3.sqr()) { + if (w4[i6] === 0) + continue; + res = res.mul(q3); + } + } + return res; + }; + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + var carryMask = 67108863 >>> 26 - r6 << 26 - r6; + var i6; + if (r6 !== 0) { + var carry = 0; + for (i6 = 0; i6 < (this || _global$12).length; i6++) { + var newCarry = (this || _global$12).words[i6] & carryMask; + var c6 = ((this || _global$12).words[i6] | 0) - newCarry << r6; + (this || _global$12).words[i6] = c6 | carry; + carry = newCarry >>> 26 - r6; + } + if (carry) { + (this || _global$12).words[i6] = carry; + (this || _global$12).length++; + } + } + if (s6 !== 0) { + for (i6 = (this || _global$12).length - 1; i6 >= 0; i6--) { + (this || _global$12).words[i6 + s6] = (this || _global$12).words[i6]; + } + for (i6 = 0; i6 < s6; i6++) { + (this || _global$12).words[i6] = 0; + } + (this || _global$12).length += s6; + } + return this.strip(); + }; + BN.prototype.ishln = function ishln(bits) { + assert((this || _global$12).negative === 0); + return this.iushln(bits); + }; + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === "number" && bits >= 0); + var h6; + if (hint) { + h6 = (hint - hint % 26) / 26; + } else { + h6 = 0; + } + var r6 = bits % 26; + var s6 = Math.min((bits - r6) / 26, (this || _global$12).length); + var mask = 67108863 ^ 67108863 >>> r6 << r6; + var maskedWords = extended; + h6 -= s6; + h6 = Math.max(0, h6); + if (maskedWords) { + for (var i6 = 0; i6 < s6; i6++) { + maskedWords.words[i6] = (this || _global$12).words[i6]; + } + maskedWords.length = s6; + } + if (s6 === 0) + ; + else if ((this || _global$12).length > s6) { + (this || _global$12).length -= s6; + for (i6 = 0; i6 < (this || _global$12).length; i6++) { + (this || _global$12).words[i6] = (this || _global$12).words[i6 + s6]; + } + } else { + (this || _global$12).words[0] = 0; + (this || _global$12).length = 1; + } + var carry = 0; + for (i6 = (this || _global$12).length - 1; i6 >= 0 && (carry !== 0 || i6 >= h6); i6--) { + var word = (this || _global$12).words[i6] | 0; + (this || _global$12).words[i6] = carry << 26 - r6 | word >>> r6; + carry = word & mask; + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + if ((this || _global$12).length === 0) { + (this || _global$12).words[0] = 0; + (this || _global$12).length = 1; + } + return this.strip(); + }; + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert((this || _global$12).negative === 0); + return this.iushrn(bits, hint, extended); + }; + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits); + }; + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits); + }; + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits); + }; + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits); + }; + BN.prototype.testn = function testn(bit) { + assert(typeof bit === "number" && bit >= 0); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$12).length <= s6) + return false; + var w4 = (this || _global$12).words[s6]; + return !!(w4 & q3); + }; + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === "number" && bits >= 0); + var r6 = bits % 26; + var s6 = (bits - r6) / 26; + assert((this || _global$12).negative === 0, "imaskn works only with positive numbers"); + if ((this || _global$12).length <= s6) { + return this || _global$12; + } + if (r6 !== 0) { + s6++; + } + (this || _global$12).length = Math.min(s6, (this || _global$12).length); + if (r6 !== 0) { + var mask = 67108863 ^ 67108863 >>> r6 << r6; + (this || _global$12).words[(this || _global$12).length - 1] &= mask; + } + return this.strip(); + }; + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits); + }; + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.isubn(-num); + if ((this || _global$12).negative !== 0) { + if ((this || _global$12).length === 1 && ((this || _global$12).words[0] | 0) < num) { + (this || _global$12).words[0] = num - ((this || _global$12).words[0] | 0); + (this || _global$12).negative = 0; + return this || _global$12; + } + (this || _global$12).negative = 0; + this.isubn(num); + (this || _global$12).negative = 1; + return this || _global$12; + } + return this._iaddn(num); + }; + BN.prototype._iaddn = function _iaddn(num) { + (this || _global$12).words[0] += num; + for (var i6 = 0; i6 < (this || _global$12).length && (this || _global$12).words[i6] >= 67108864; i6++) { + (this || _global$12).words[i6] -= 67108864; + if (i6 === (this || _global$12).length - 1) { + (this || _global$12).words[i6 + 1] = 1; + } else { + (this || _global$12).words[i6 + 1]++; + } + } + (this || _global$12).length = Math.max((this || _global$12).length, i6 + 1); + return this || _global$12; + }; + BN.prototype.isubn = function isubn(num) { + assert(typeof num === "number"); + assert(num < 67108864); + if (num < 0) + return this.iaddn(-num); + if ((this || _global$12).negative !== 0) { + (this || _global$12).negative = 0; + this.iaddn(num); + (this || _global$12).negative = 1; + return this || _global$12; + } + (this || _global$12).words[0] -= num; + if ((this || _global$12).length === 1 && (this || _global$12).words[0] < 0) { + (this || _global$12).words[0] = -(this || _global$12).words[0]; + (this || _global$12).negative = 1; + } else { + for (var i6 = 0; i6 < (this || _global$12).length && (this || _global$12).words[i6] < 0; i6++) { + (this || _global$12).words[i6] += 67108864; + (this || _global$12).words[i6 + 1] -= 1; + } + } + return this.strip(); + }; + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num); + }; + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num); + }; + BN.prototype.iabs = function iabs() { + (this || _global$12).negative = 0; + return this || _global$12; + }; + BN.prototype.abs = function abs() { + return this.clone().iabs(); + }; + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift; + var i6; + this._expand(len); + var w4; + var carry = 0; + for (i6 = 0; i6 < num.length; i6++) { + w4 = ((this || _global$12).words[i6 + shift] | 0) + carry; + var right = (num.words[i6] | 0) * mul; + w4 -= right & 67108863; + carry = (w4 >> 26) - (right / 67108864 | 0); + (this || _global$12).words[i6 + shift] = w4 & 67108863; + } + for (; i6 < (this || _global$12).length - shift; i6++) { + w4 = ((this || _global$12).words[i6 + shift] | 0) + carry; + carry = w4 >> 26; + (this || _global$12).words[i6 + shift] = w4 & 67108863; + } + if (carry === 0) + return this.strip(); + assert(carry === -1); + carry = 0; + for (i6 = 0; i6 < (this || _global$12).length; i6++) { + w4 = -((this || _global$12).words[i6] | 0) + carry; + carry = w4 >> 26; + (this || _global$12).words[i6] = w4 & 67108863; + } + (this || _global$12).negative = 1; + return this.strip(); + }; + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = (this || _global$12).length - num.length; + var a6 = this.clone(); + var b4 = num; + var bhi = b4.words[b4.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b4 = b4.ushln(shift); + a6.iushln(shift); + bhi = b4.words[b4.length - 1] | 0; + } + var m5 = a6.length - b4.length; + var q3; + if (mode !== "mod") { + q3 = new BN(null); + q3.length = m5 + 1; + q3.words = new Array(q3.length); + for (var i6 = 0; i6 < q3.length; i6++) { + q3.words[i6] = 0; + } + } + var diff = a6.clone()._ishlnsubmul(b4, 1, m5); + if (diff.negative === 0) { + a6 = diff; + if (q3) { + q3.words[m5] = 1; + } + } + for (var j4 = m5 - 1; j4 >= 0; j4--) { + var qj = (a6.words[b4.length + j4] | 0) * 67108864 + (a6.words[b4.length + j4 - 1] | 0); + qj = Math.min(qj / bhi | 0, 67108863); + a6._ishlnsubmul(b4, qj, j4); + while (a6.negative !== 0) { + qj--; + a6.negative = 0; + a6._ishlnsubmul(b4, 1, j4); + if (!a6.isZero()) { + a6.negative ^= 1; + } + } + if (q3) { + q3.words[j4] = qj; + } + } + if (q3) { + q3.strip(); + } + a6.strip(); + if (mode !== "div" && shift !== 0) { + a6.iushrn(shift); + } + return { + div: q3 || null, + mod: a6 + }; + }; + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()); + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + var div, mod, res; + if ((this || _global$12).negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + if (mode !== "mod") { + div = res.div.neg(); + } + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + return { + div, + mod + }; + } + if ((this || _global$12).negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + if (mode !== "mod") { + div = res.div.neg(); + } + return { + div, + mod: res.mod + }; + } + if (((this || _global$12).negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + if (mode !== "div") { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + return { + div: res.div, + mod + }; + } + if (num.length > (this || _global$12).length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this || _global$12 + }; + } + if (num.length === 1) { + if (mode === "div") { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + if (mode === "mod") { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + return this._wordDiv(num, mode); + }; + BN.prototype.div = function div(num) { + return this.divmod(num, "div", false).div; + }; + BN.prototype.mod = function mod(num) { + return this.divmod(num, "mod", false).mod; + }; + BN.prototype.umod = function umod(num) { + return this.divmod(num, "mod", true).mod; + }; + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num); + if (dm.mod.isZero()) + return dm.div; + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + var half = num.ushrn(1); + var r22 = num.andln(1); + var cmp = mod.cmp(half); + if (cmp < 0 || r22 === 1 && cmp === 0) + return dm.div; + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + BN.prototype.modn = function modn(num) { + assert(num <= 67108863); + var p6 = (1 << 26) % num; + var acc = 0; + for (var i6 = (this || _global$12).length - 1; i6 >= 0; i6--) { + acc = (p6 * acc + ((this || _global$12).words[i6] | 0)) % num; + } + return acc; + }; + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863); + var carry = 0; + for (var i6 = (this || _global$12).length - 1; i6 >= 0; i6--) { + var w4 = ((this || _global$12).words[i6] | 0) + carry * 67108864; + (this || _global$12).words[i6] = w4 / num | 0; + carry = w4 % num; + } + return this.strip(); + }; + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num); + }; + BN.prototype.egcd = function egcd(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var x4 = this || _global$12; + var y5 = p6.clone(); + if (x4.negative !== 0) { + x4 = x4.umod(p6); + } else { + x4 = x4.clone(); + } + var A4 = new BN(1); + var B4 = new BN(0); + var C4 = new BN(0); + var D4 = new BN(1); + var g4 = 0; + while (x4.isEven() && y5.isEven()) { + x4.iushrn(1); + y5.iushrn(1); + ++g4; + } + var yp = y5.clone(); + var xp = x4.clone(); + while (!x4.isZero()) { + for (var i6 = 0, im = 1; (x4.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + x4.iushrn(i6); + while (i6-- > 0) { + if (A4.isOdd() || B4.isOdd()) { + A4.iadd(yp); + B4.isub(xp); + } + A4.iushrn(1); + B4.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (y5.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + y5.iushrn(j4); + while (j4-- > 0) { + if (C4.isOdd() || D4.isOdd()) { + C4.iadd(yp); + D4.isub(xp); + } + C4.iushrn(1); + D4.iushrn(1); + } + } + if (x4.cmp(y5) >= 0) { + x4.isub(y5); + A4.isub(C4); + B4.isub(D4); + } else { + y5.isub(x4); + C4.isub(A4); + D4.isub(B4); + } + } + return { + a: C4, + b: D4, + gcd: y5.iushln(g4) + }; + }; + BN.prototype._invmp = function _invmp(p6) { + assert(p6.negative === 0); + assert(!p6.isZero()); + var a6 = this || _global$12; + var b4 = p6.clone(); + if (a6.negative !== 0) { + a6 = a6.umod(p6); + } else { + a6 = a6.clone(); + } + var x1 = new BN(1); + var x22 = new BN(0); + var delta = b4.clone(); + while (a6.cmpn(1) > 0 && b4.cmpn(1) > 0) { + for (var i6 = 0, im = 1; (a6.words[0] & im) === 0 && i6 < 26; ++i6, im <<= 1) + ; + if (i6 > 0) { + a6.iushrn(i6); + while (i6-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + x1.iushrn(1); + } + } + for (var j4 = 0, jm = 1; (b4.words[0] & jm) === 0 && j4 < 26; ++j4, jm <<= 1) + ; + if (j4 > 0) { + b4.iushrn(j4); + while (j4-- > 0) { + if (x22.isOdd()) { + x22.iadd(delta); + } + x22.iushrn(1); + } + } + if (a6.cmp(b4) >= 0) { + a6.isub(b4); + x1.isub(x22); + } else { + b4.isub(a6); + x22.isub(x1); + } + } + var res; + if (a6.cmpn(1) === 0) { + res = x1; + } else { + res = x22; + } + if (res.cmpn(0) < 0) { + res.iadd(p6); + } + return res; + }; + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) + return num.abs(); + if (num.isZero()) + return this.abs(); + var a6 = this.clone(); + var b4 = num.clone(); + a6.negative = 0; + b4.negative = 0; + for (var shift = 0; a6.isEven() && b4.isEven(); shift++) { + a6.iushrn(1); + b4.iushrn(1); + } + do { + while (a6.isEven()) { + a6.iushrn(1); + } + while (b4.isEven()) { + b4.iushrn(1); + } + var r6 = a6.cmp(b4); + if (r6 < 0) { + var t6 = a6; + a6 = b4; + b4 = t6; + } else if (r6 === 0 || b4.cmpn(1) === 0) { + break; + } + a6.isub(b4); + } while (true); + return b4.iushln(shift); + }; + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num); + }; + BN.prototype.isEven = function isEven() { + return ((this || _global$12).words[0] & 1) === 0; + }; + BN.prototype.isOdd = function isOdd() { + return ((this || _global$12).words[0] & 1) === 1; + }; + BN.prototype.andln = function andln(num) { + return (this || _global$12).words[0] & num; + }; + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === "number"); + var r6 = bit % 26; + var s6 = (bit - r6) / 26; + var q3 = 1 << r6; + if ((this || _global$12).length <= s6) { + this._expand(s6 + 1); + (this || _global$12).words[s6] |= q3; + return this || _global$12; + } + var carry = q3; + for (var i6 = s6; carry !== 0 && i6 < (this || _global$12).length; i6++) { + var w4 = (this || _global$12).words[i6] | 0; + w4 += carry; + carry = w4 >>> 26; + w4 &= 67108863; + (this || _global$12).words[i6] = w4; + } + if (carry !== 0) { + (this || _global$12).words[i6] = carry; + (this || _global$12).length++; + } + return this || _global$12; + }; + BN.prototype.isZero = function isZero() { + return (this || _global$12).length === 1 && (this || _global$12).words[0] === 0; + }; + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0; + if ((this || _global$12).negative !== 0 && !negative) + return -1; + if ((this || _global$12).negative === 0 && negative) + return 1; + this.strip(); + var res; + if ((this || _global$12).length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + assert(num <= 67108863, "Number is too big"); + var w4 = (this || _global$12).words[0] | 0; + res = w4 === num ? 0 : w4 < num ? -1 : 1; + } + if ((this || _global$12).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.cmp = function cmp(num) { + if ((this || _global$12).negative !== 0 && num.negative === 0) + return -1; + if ((this || _global$12).negative === 0 && num.negative !== 0) + return 1; + var res = this.ucmp(num); + if ((this || _global$12).negative !== 0) + return -res | 0; + return res; + }; + BN.prototype.ucmp = function ucmp(num) { + if ((this || _global$12).length > num.length) + return 1; + if ((this || _global$12).length < num.length) + return -1; + var res = 0; + for (var i6 = (this || _global$12).length - 1; i6 >= 0; i6--) { + var a6 = (this || _global$12).words[i6] | 0; + var b4 = num.words[i6] | 0; + if (a6 === b4) + continue; + if (a6 < b4) { + res = -1; + } else if (a6 > b4) { + res = 1; + } + break; + } + return res; + }; + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1; + }; + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1; + }; + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0; + }; + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0; + }; + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1; + }; + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1; + }; + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0; + }; + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0; + }; + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0; + }; + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0; + }; + BN.red = function red(num) { + return new Red(num); + }; + BN.prototype.toRed = function toRed(ctx) { + assert(!(this || _global$12).red, "Already a number in reduction context"); + assert((this || _global$12).negative === 0, "red works only with positives"); + return ctx.convertTo(this || _global$12)._forceRed(ctx); + }; + BN.prototype.fromRed = function fromRed() { + assert((this || _global$12).red, "fromRed works only with numbers in reduction context"); + return (this || _global$12).red.convertFrom(this || _global$12); + }; + BN.prototype._forceRed = function _forceRed(ctx) { + (this || _global$12).red = ctx; + return this || _global$12; + }; + BN.prototype.forceRed = function forceRed(ctx) { + assert(!(this || _global$12).red, "Already a number in reduction context"); + return this._forceRed(ctx); + }; + BN.prototype.redAdd = function redAdd(num) { + assert((this || _global$12).red, "redAdd works only with red numbers"); + return (this || _global$12).red.add(this || _global$12, num); + }; + BN.prototype.redIAdd = function redIAdd(num) { + assert((this || _global$12).red, "redIAdd works only with red numbers"); + return (this || _global$12).red.iadd(this || _global$12, num); + }; + BN.prototype.redSub = function redSub(num) { + assert((this || _global$12).red, "redSub works only with red numbers"); + return (this || _global$12).red.sub(this || _global$12, num); + }; + BN.prototype.redISub = function redISub(num) { + assert((this || _global$12).red, "redISub works only with red numbers"); + return (this || _global$12).red.isub(this || _global$12, num); + }; + BN.prototype.redShl = function redShl(num) { + assert((this || _global$12).red, "redShl works only with red numbers"); + return (this || _global$12).red.shl(this || _global$12, num); + }; + BN.prototype.redMul = function redMul(num) { + assert((this || _global$12).red, "redMul works only with red numbers"); + (this || _global$12).red._verify2(this || _global$12, num); + return (this || _global$12).red.mul(this || _global$12, num); + }; + BN.prototype.redIMul = function redIMul(num) { + assert((this || _global$12).red, "redMul works only with red numbers"); + (this || _global$12).red._verify2(this || _global$12, num); + return (this || _global$12).red.imul(this || _global$12, num); + }; + BN.prototype.redSqr = function redSqr() { + assert((this || _global$12).red, "redSqr works only with red numbers"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.sqr(this || _global$12); + }; + BN.prototype.redISqr = function redISqr() { + assert((this || _global$12).red, "redISqr works only with red numbers"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.isqr(this || _global$12); + }; + BN.prototype.redSqrt = function redSqrt() { + assert((this || _global$12).red, "redSqrt works only with red numbers"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.sqrt(this || _global$12); + }; + BN.prototype.redInvm = function redInvm() { + assert((this || _global$12).red, "redInvm works only with red numbers"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.invm(this || _global$12); + }; + BN.prototype.redNeg = function redNeg() { + assert((this || _global$12).red, "redNeg works only with red numbers"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.neg(this || _global$12); + }; + BN.prototype.redPow = function redPow(num) { + assert((this || _global$12).red && !num.red, "redPow(normalNum)"); + (this || _global$12).red._verify1(this || _global$12); + return (this || _global$12).red.pow(this || _global$12, num); + }; + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + function MPrime(name, p6) { + (this || _global$12).name = name; + (this || _global$12).p = new BN(p6, 16); + (this || _global$12).n = (this || _global$12).p.bitLength(); + (this || _global$12).k = new BN(1).iushln((this || _global$12).n).isub((this || _global$12).p); + (this || _global$12).tmp = this._tmp(); + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil((this || _global$12).n / 13)); + return tmp; + }; + MPrime.prototype.ireduce = function ireduce(num) { + var r6 = num; + var rlen; + do { + this.split(r6, (this || _global$12).tmp); + r6 = this.imulK(r6); + r6 = r6.iadd((this || _global$12).tmp); + rlen = r6.bitLength(); + } while (rlen > (this || _global$12).n); + var cmp = rlen < (this || _global$12).n ? -1 : r6.ucmp((this || _global$12).p); + if (cmp === 0) { + r6.words[0] = 0; + r6.length = 1; + } else if (cmp > 0) { + r6.isub((this || _global$12).p); + } else { + if (r6.strip !== void 0) { + r6.strip(); + } else { + r6._strip(); + } + } + return r6; + }; + MPrime.prototype.split = function split(input, out) { + input.iushrn((this || _global$12).n, 0, out); + }; + MPrime.prototype.imulK = function imulK(num) { + return num.imul((this || _global$12).k); + }; + function K256() { + MPrime.call(this || _global$12, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); + } + inherits2(K256, MPrime); + K256.prototype.split = function split(input, output) { + var mask = 4194303; + var outLen = Math.min(input.length, 9); + for (var i6 = 0; i6 < outLen; i6++) { + output.words[i6] = input.words[i6]; + } + output.length = outLen; + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + for (i6 = 10; i6 < input.length; i6++) { + var next = input.words[i6] | 0; + input.words[i6 - 10] = (next & mask) << 4 | prev >>> 22; + prev = next; + } + prev >>>= 22; + input.words[i6 - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + var lo = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var w4 = num.words[i6] | 0; + lo += w4 * 977; + num.words[i6] = lo & 67108863; + lo = w4 * 64 + (lo / 67108864 | 0); + } + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + function P224() { + MPrime.call(this || _global$12, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); + } + inherits2(P224, MPrime); + function P192() { + MPrime.call(this || _global$12, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); + } + inherits2(P192, MPrime); + function P25519() { + MPrime.call(this || _global$12, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); + } + inherits2(P25519, MPrime); + P25519.prototype.imulK = function imulK(num) { + var carry = 0; + for (var i6 = 0; i6 < num.length; i6++) { + var hi = (num.words[i6] | 0) * 19 + carry; + var lo = hi & 67108863; + hi >>>= 26; + num.words[i6] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + BN._prime = function prime(name) { + if (primes[name]) + return primes[name]; + var prime2; + if (name === "k256") { + prime2 = new K256(); + } else if (name === "p224") { + prime2 = new P224(); + } else if (name === "p192") { + prime2 = new P192(); + } else if (name === "p25519") { + prime2 = new P25519(); + } else { + throw new Error("Unknown prime " + name); + } + primes[name] = prime2; + return prime2; + }; + function Red(m5) { + if (typeof m5 === "string") { + var prime = BN._prime(m5); + (this || _global$12).m = prime.p; + (this || _global$12).prime = prime; + } else { + assert(m5.gtn(1), "modulus must be greater than 1"); + (this || _global$12).m = m5; + (this || _global$12).prime = null; + } + } + Red.prototype._verify1 = function _verify1(a6) { + assert(a6.negative === 0, "red works only with positives"); + assert(a6.red, "red works only with red numbers"); + }; + Red.prototype._verify2 = function _verify2(a6, b4) { + assert((a6.negative | b4.negative) === 0, "red works only with positives"); + assert(a6.red && a6.red === b4.red, "red works only with red numbers"); + }; + Red.prototype.imod = function imod(a6) { + if ((this || _global$12).prime) + return (this || _global$12).prime.ireduce(a6)._forceRed(this || _global$12); + return a6.umod((this || _global$12).m)._forceRed(this || _global$12); + }; + Red.prototype.neg = function neg(a6) { + if (a6.isZero()) { + return a6.clone(); + } + return (this || _global$12).m.sub(a6)._forceRed(this || _global$12); + }; + Red.prototype.add = function add(a6, b4) { + this._verify2(a6, b4); + var res = a6.add(b4); + if (res.cmp((this || _global$12).m) >= 0) { + res.isub((this || _global$12).m); + } + return res._forceRed(this || _global$12); + }; + Red.prototype.iadd = function iadd(a6, b4) { + this._verify2(a6, b4); + var res = a6.iadd(b4); + if (res.cmp((this || _global$12).m) >= 0) { + res.isub((this || _global$12).m); + } + return res; + }; + Red.prototype.sub = function sub(a6, b4) { + this._verify2(a6, b4); + var res = a6.sub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$12).m); + } + return res._forceRed(this || _global$12); + }; + Red.prototype.isub = function isub(a6, b4) { + this._verify2(a6, b4); + var res = a6.isub(b4); + if (res.cmpn(0) < 0) { + res.iadd((this || _global$12).m); + } + return res; + }; + Red.prototype.shl = function shl(a6, num) { + this._verify1(a6); + return this.imod(a6.ushln(num)); + }; + Red.prototype.imul = function imul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.imul(b4)); + }; + Red.prototype.mul = function mul(a6, b4) { + this._verify2(a6, b4); + return this.imod(a6.mul(b4)); + }; + Red.prototype.isqr = function isqr(a6) { + return this.imul(a6, a6.clone()); + }; + Red.prototype.sqr = function sqr(a6) { + return this.mul(a6, a6); + }; + Red.prototype.sqrt = function sqrt(a6) { + if (a6.isZero()) + return a6.clone(); + var mod3 = (this || _global$12).m.andln(3); + assert(mod3 % 2 === 1); + if (mod3 === 3) { + var pow = (this || _global$12).m.add(new BN(1)).iushrn(2); + return this.pow(a6, pow); + } + var q3 = (this || _global$12).m.subn(1); + var s6 = 0; + while (!q3.isZero() && q3.andln(1) === 0) { + s6++; + q3.iushrn(1); + } + assert(!q3.isZero()); + var one = new BN(1).toRed(this || _global$12); + var nOne = one.redNeg(); + var lpow = (this || _global$12).m.subn(1).iushrn(1); + var z4 = (this || _global$12).m.bitLength(); + z4 = new BN(2 * z4 * z4).toRed(this || _global$12); + while (this.pow(z4, lpow).cmp(nOne) !== 0) { + z4.redIAdd(nOne); + } + var c6 = this.pow(z4, q3); + var r6 = this.pow(a6, q3.addn(1).iushrn(1)); + var t6 = this.pow(a6, q3); + var m5 = s6; + while (t6.cmp(one) !== 0) { + var tmp = t6; + for (var i6 = 0; tmp.cmp(one) !== 0; i6++) { + tmp = tmp.redSqr(); + } + assert(i6 < m5); + var b4 = this.pow(c6, new BN(1).iushln(m5 - i6 - 1)); + r6 = r6.redMul(b4); + c6 = b4.redSqr(); + t6 = t6.redMul(c6); + m5 = i6; + } + return r6; + }; + Red.prototype.invm = function invm(a6) { + var inv = a6._invmp((this || _global$12).m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + Red.prototype.pow = function pow(a6, num) { + if (num.isZero()) + return new BN(1).toRed(this || _global$12); + if (num.cmpn(1) === 0) + return a6.clone(); + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this || _global$12); + wnd[1] = a6; + for (var i6 = 2; i6 < wnd.length; i6++) { + wnd[i6] = this.mul(wnd[i6 - 1], a6); + } + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + for (i6 = num.length - 1; i6 >= 0; i6--) { + var word = num.words[i6]; + for (var j4 = start - 1; j4 >= 0; j4--) { + var bit = word >> j4 & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i6 !== 0 || j4 !== 0)) + continue; + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + return res; + }; + Red.prototype.convertTo = function convertTo(num) { + var r6 = num.umod((this || _global$12).m); + return r6 === num ? r6.clone() : r6; + }; + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone(); + res.red = null; + return res; + }; + BN.mont = function mont(num) { + return new Mont(num); + }; + function Mont(m5) { + Red.call(this || _global$12, m5); + (this || _global$12).shift = (this || _global$12).m.bitLength(); + if ((this || _global$12).shift % 26 !== 0) { + (this || _global$12).shift += 26 - (this || _global$12).shift % 26; + } + (this || _global$12).r = new BN(1).iushln((this || _global$12).shift); + (this || _global$12).r2 = this.imod((this || _global$12).r.sqr()); + (this || _global$12).rinv = (this || _global$12).r._invmp((this || _global$12).m); + (this || _global$12).minv = (this || _global$12).rinv.mul((this || _global$12).r).isubn(1).div((this || _global$12).m); + (this || _global$12).minv = (this || _global$12).minv.umod((this || _global$12).r); + (this || _global$12).minv = (this || _global$12).r.sub((this || _global$12).minv); + } + inherits2(Mont, Red); + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln((this || _global$12).shift)); + }; + Mont.prototype.convertFrom = function convertFrom(num) { + var r6 = this.imod(num.mul((this || _global$12).rinv)); + r6.red = null; + return r6; + }; + Mont.prototype.imul = function imul(a6, b4) { + if (a6.isZero() || b4.isZero()) { + a6.words[0] = 0; + a6.length = 1; + return a6; + } + var t6 = a6.imul(b4); + var c6 = t6.maskn((this || _global$12).shift).mul((this || _global$12).minv).imaskn((this || _global$12).shift).mul((this || _global$12).m); + var u6 = t6.isub(c6).iushrn((this || _global$12).shift); + var res = u6; + if (u6.cmp((this || _global$12).m) >= 0) { + res = u6.isub((this || _global$12).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$12).m); + } + return res._forceRed(this || _global$12); + }; + Mont.prototype.mul = function mul(a6, b4) { + if (a6.isZero() || b4.isZero()) + return new BN(0)._forceRed(this || _global$12); + var t6 = a6.mul(b4); + var c6 = t6.maskn((this || _global$12).shift).mul((this || _global$12).minv).imaskn((this || _global$12).shift).mul((this || _global$12).m); + var u6 = t6.isub(c6).iushrn((this || _global$12).shift); + var res = u6; + if (u6.cmp((this || _global$12).m) >= 0) { + res = u6.isub((this || _global$12).m); + } else if (u6.cmpn(0) < 0) { + res = u6.iadd((this || _global$12).m); + } + return res._forceRed(this || _global$12); + }; + Mont.prototype.invm = function invm(a6) { + var res = this.imod(a6._invmp((this || _global$12).m).mul((this || _global$12).r2)); + return res._forceRed(this || _global$12); + }; + })(module, exports$72); + return module.exports; +} +var exports$62 = {}; +var _dewExec$52 = false; +function dew$52() { + if (_dewExec$52) + return exports$62; + _dewExec$52 = true; + var BN = dew$62(); + var Buffer2 = dew$2P().Buffer; + function withPublic(paddedMsg, key) { + return Buffer2.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray()); + } + exports$62 = withPublic; + return exports$62; +} +var exports$52 = {}; +var _dewExec$42 = false; +function dew$42() { + if (_dewExec$42) + return exports$52; + _dewExec$42 = true; + var parseKeys = dew$e2(); + var randomBytes2 = dew$2O(); + var createHash2 = dew$2y(); + var mgf = dew$82(); + var xor = dew$72(); + var BN = dew$62(); + var withPublic = dew$52(); + var crt = dew$W(); + var Buffer2 = dew$2P().Buffer; + exports$52 = function publicEncrypt2(publicKey, msg, reverse) { + var padding; + if (publicKey.padding) { + padding = publicKey.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + var key = parseKeys(publicKey); + var paddedMsg; + if (padding === 4) { + paddedMsg = oaep(key, msg); + } else if (padding === 1) { + paddedMsg = pkcs1(key, msg, reverse); + } else if (padding === 3) { + paddedMsg = new BN(msg); + if (paddedMsg.cmp(key.modulus) >= 0) { + throw new Error("data too long for modulus"); + } + } else { + throw new Error("unknown padding"); + } + if (reverse) { + return crt(paddedMsg, key); + } else { + return withPublic(paddedMsg, key); + } + }; + function oaep(key, msg) { + var k4 = key.modulus.byteLength(); + var mLen = msg.length; + var iHash = createHash2("sha1").update(Buffer2.alloc(0)).digest(); + var hLen = iHash.length; + var hLen2 = 2 * hLen; + if (mLen > k4 - hLen2 - 2) { + throw new Error("message too long"); + } + var ps = Buffer2.alloc(k4 - mLen - hLen2 - 2); + var dblen = k4 - hLen - 1; + var seed = randomBytes2(hLen); + var maskedDb = xor(Buffer2.concat([iHash, ps, Buffer2.alloc(1, 1), msg], dblen), mgf(seed, dblen)); + var maskedSeed = xor(seed, mgf(maskedDb, hLen)); + return new BN(Buffer2.concat([Buffer2.alloc(1), maskedSeed, maskedDb], k4)); + } + function pkcs1(key, msg, reverse) { + var mLen = msg.length; + var k4 = key.modulus.byteLength(); + if (mLen > k4 - 11) { + throw new Error("message too long"); + } + var ps; + if (reverse) { + ps = Buffer2.alloc(k4 - mLen - 3, 255); + } else { + ps = nonZero(k4 - mLen - 3); + } + return new BN(Buffer2.concat([Buffer2.from([0, reverse ? 1 : 2]), ps, Buffer2.alloc(1), msg], k4)); + } + function nonZero(len) { + var out = Buffer2.allocUnsafe(len); + var i6 = 0; + var cache = randomBytes2(len * 2); + var cur = 0; + var num; + while (i6 < len) { + if (cur === cache.length) { + cache = randomBytes2(len * 2); + cur = 0; + } + num = cache[cur++]; + if (num) { + out[i6++] = num; + } + } + return out; + } + return exports$52; +} +var exports$42 = {}; +var _dewExec$32 = false; +function dew$32() { + if (_dewExec$32) + return exports$42; + _dewExec$32 = true; + var parseKeys = dew$e2(); + var mgf = dew$82(); + var xor = dew$72(); + var BN = dew$62(); + var crt = dew$W(); + var createHash2 = dew$2y(); + var withPublic = dew$52(); + var Buffer2 = dew$2P().Buffer; + exports$42 = function privateDecrypt2(privateKey, enc, reverse) { + var padding; + if (privateKey.padding) { + padding = privateKey.padding; + } else if (reverse) { + padding = 1; + } else { + padding = 4; + } + var key = parseKeys(privateKey); + var k4 = key.modulus.byteLength(); + if (enc.length > k4 || new BN(enc).cmp(key.modulus) >= 0) { + throw new Error("decryption error"); + } + var msg; + if (reverse) { + msg = withPublic(new BN(enc), key); + } else { + msg = crt(enc, key); + } + var zBuffer = Buffer2.alloc(k4 - msg.length); + msg = Buffer2.concat([zBuffer, msg], k4); + if (padding === 4) { + return oaep(key, msg); + } else if (padding === 1) { + return pkcs1(key, msg, reverse); + } else if (padding === 3) { + return msg; + } else { + throw new Error("unknown padding"); + } + }; + function oaep(key, msg) { + var k4 = key.modulus.byteLength(); + var iHash = createHash2("sha1").update(Buffer2.alloc(0)).digest(); + var hLen = iHash.length; + if (msg[0] !== 0) { + throw new Error("decryption error"); + } + var maskedSeed = msg.slice(1, hLen + 1); + var maskedDb = msg.slice(hLen + 1); + var seed = xor(maskedSeed, mgf(maskedDb, hLen)); + var db = xor(maskedDb, mgf(seed, k4 - hLen - 1)); + if (compare(iHash, db.slice(0, hLen))) { + throw new Error("decryption error"); + } + var i6 = hLen; + while (db[i6] === 0) { + i6++; + } + if (db[i6++] !== 1) { + throw new Error("decryption error"); + } + return db.slice(i6); + } + function pkcs1(key, msg, reverse) { + var p1 = msg.slice(0, 2); + var i6 = 2; + var status = 0; + while (msg[i6++] !== 0) { + if (i6 >= msg.length) { + status++; + break; + } + } + var ps = msg.slice(2, i6 - 1); + if (p1.toString("hex") !== "0002" && !reverse || p1.toString("hex") !== "0001" && reverse) { + status++; + } + if (ps.length < 8) { + status++; + } + if (status) { + throw new Error("decryption error"); + } + return msg.slice(i6); + } + function compare(a6, b4) { + a6 = Buffer2.from(a6); + b4 = Buffer2.from(b4); + var dif = 0; + var len = a6.length; + if (a6.length !== b4.length) { + dif++; + len = Math.min(a6.length, b4.length); + } + var i6 = -1; + while (++i6 < len) { + dif += a6[i6] ^ b4[i6]; + } + return dif; + } + return exports$42; +} +var exports$32 = {}; +var _dewExec$210 = false; +function dew$210() { + if (_dewExec$210) + return exports$32; + _dewExec$210 = true; + exports$32.publicEncrypt = dew$42(); + exports$32.privateDecrypt = dew$32(); + exports$32.privateEncrypt = function privateEncrypt2(key, buf) { + return exports$32.publicEncrypt(key, buf, true); + }; + exports$32.publicDecrypt = function publicDecrypt2(key, buf) { + return exports$32.privateDecrypt(key, buf, true); + }; + return exports$32; +} +var exports$210 = {}; +var _dewExec$110 = false; +var _global3 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : globalThis; +function dew$110() { + if (_dewExec$110) + return exports$210; + _dewExec$110 = true; + var process$1 = process; + function oldBrowser() { + throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11"); + } + var safeBuffer = dew$2P(); + var randombytes = dew$2O(); + var Buffer2 = safeBuffer.Buffer; + var kBufferMaxLength = safeBuffer.kMaxLength; + var crypto2 = _global3.crypto || _global3.msCrypto; + var kMaxUint32 = Math.pow(2, 32) - 1; + function assertOffset(offset, length) { + if (typeof offset !== "number" || offset !== offset) { + throw new TypeError("offset must be a number"); + } + if (offset > kMaxUint32 || offset < 0) { + throw new TypeError("offset must be a uint32"); + } + if (offset > kBufferMaxLength || offset > length) { + throw new RangeError("offset out of range"); + } + } + function assertSize(size, offset, length) { + if (typeof size !== "number" || size !== size) { + throw new TypeError("size must be a number"); + } + if (size > kMaxUint32 || size < 0) { + throw new TypeError("size must be a uint32"); + } + if (size + offset > length || size > kBufferMaxLength) { + throw new RangeError("buffer too small"); + } + } + if (crypto2 && crypto2.getRandomValues || !process$1.browser) { + exports$210.randomFill = randomFill2; + exports$210.randomFillSync = randomFillSync2; + } else { + exports$210.randomFill = oldBrowser; + exports$210.randomFillSync = oldBrowser; + } + function randomFill2(buf, offset, size, cb) { + if (!Buffer2.isBuffer(buf) && !(buf instanceof _global3.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + if (typeof offset === "function") { + cb = offset; + offset = 0; + size = buf.length; + } else if (typeof size === "function") { + cb = size; + size = buf.length - offset; + } else if (typeof cb !== "function") { + throw new TypeError('"cb" argument must be a function'); + } + assertOffset(offset, buf.length); + assertSize(size, offset, buf.length); + return actualFill(buf, offset, size, cb); + } + function actualFill(buf, offset, size, cb) { + if (process$1.browser) { + var ourBuf = buf.buffer; + var uint = new Uint8Array(ourBuf, offset, size); + crypto2.getRandomValues(uint); + if (cb) { + process$1.nextTick(function() { + cb(null, buf); + }); + return; + } + return buf; + } + if (cb) { + randombytes(size, function(err, bytes2) { + if (err) { + return cb(err); + } + bytes2.copy(buf, offset); + cb(null, buf); + }); + return; + } + var bytes = randombytes(size); + bytes.copy(buf, offset); + return buf; + } + function randomFillSync2(buf, offset, size) { + if (typeof offset === "undefined") { + offset = 0; + } + if (!Buffer2.isBuffer(buf) && !(buf instanceof _global3.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array'); + } + assertOffset(offset, buf.length); + if (size === void 0) + size = buf.length - offset; + assertSize(size, offset, buf.length); + return actualFill(buf, offset, size); + } + return exports$210; +} +var exports$110 = {}; +var _dewExec4 = false; +function dew4() { + if (_dewExec4) + return exports$110; + _dewExec4 = true; + exports$110.randomBytes = exports$110.rng = exports$110.pseudoRandomBytes = exports$110.prng = dew$2O(); + exports$110.createHash = exports$110.Hash = dew$2y(); + exports$110.createHmac = exports$110.Hmac = dew$2v(); + var algos = dew$2u(); + var algoKeys = Object.keys(algos); + var hashes = ["sha1", "sha224", "sha256", "sha384", "sha512", "md5", "rmd160"].concat(algoKeys); + exports$110.getHashes = function() { + return hashes; + }; + var p6 = dew$2o(); + exports$110.pbkdf2 = p6.pbkdf2; + exports$110.pbkdf2Sync = p6.pbkdf2Sync; + var aes = dew$1Y(); + exports$110.Cipher = aes.Cipher; + exports$110.createCipher = aes.createCipher; + exports$110.Cipheriv = aes.Cipheriv; + exports$110.createCipheriv = aes.createCipheriv; + exports$110.Decipher = aes.Decipher; + exports$110.createDecipher = aes.createDecipher; + exports$110.Decipheriv = aes.Decipheriv; + exports$110.createDecipheriv = aes.createDecipheriv; + exports$110.getCiphers = aes.getCiphers; + exports$110.listCiphers = aes.listCiphers; + var dh = dew$Z(); + exports$110.DiffieHellmanGroup = dh.DiffieHellmanGroup; + exports$110.createDiffieHellmanGroup = dh.createDiffieHellmanGroup; + exports$110.getDiffieHellman = dh.getDiffieHellman; + exports$110.createDiffieHellman = dh.createDiffieHellman; + exports$110.DiffieHellman = dh.DiffieHellman; + var sign = dew$b2(); + exports$110.createSign = sign.createSign; + exports$110.Sign = sign.Sign; + exports$110.createVerify = sign.createVerify; + exports$110.Verify = sign.Verify; + exports$110.createECDH = dew$92(); + var publicEncrypt2 = dew$210(); + exports$110.publicEncrypt = publicEncrypt2.publicEncrypt; + exports$110.privateEncrypt = publicEncrypt2.privateEncrypt; + exports$110.publicDecrypt = publicEncrypt2.publicDecrypt; + exports$110.privateDecrypt = publicEncrypt2.privateDecrypt; + var rf = dew$110(); + exports$110.randomFill = rf.randomFill; + exports$110.randomFillSync = rf.randomFillSync; + exports$110.createCredentials = function() { + throw new Error(["sorry, createCredentials is not implemented yet", "we accept pull requests", "https://github.com/crypto-browserify/crypto-browserify"].join("\n")); + }; + exports$110.constants = { + "DH_CHECK_P_NOT_SAFE_PRIME": 2, + "DH_CHECK_P_NOT_PRIME": 1, + "DH_UNABLE_TO_CHECK_GENERATOR": 4, + "DH_NOT_SUITABLE_GENERATOR": 8, + "NPN_ENABLED": 1, + "ALPN_ENABLED": 1, + "RSA_PKCS1_PADDING": 1, + "RSA_SSLV23_PADDING": 2, + "RSA_NO_PADDING": 3, + "RSA_PKCS1_OAEP_PADDING": 4, + "RSA_X931_PADDING": 5, + "RSA_PKCS1_PSS_PADDING": 6, + "POINT_CONVERSION_COMPRESSED": 2, + "POINT_CONVERSION_UNCOMPRESSED": 4, + "POINT_CONVERSION_HYBRID": 6 + }; + return exports$110; +} +var exports4 = dew4(); +exports4["randomBytes"]; +exports4["rng"]; +exports4["pseudoRandomBytes"]; +exports4["prng"]; +exports4["createHash"]; +exports4["Hash"]; +exports4["createHmac"]; +exports4["Hmac"]; +exports4["getHashes"]; +exports4["pbkdf2"]; +exports4["pbkdf2Sync"]; +exports4["Cipher"]; +exports4["createCipher"]; +exports4["Cipheriv"]; +exports4["createCipheriv"]; +exports4["Decipher"]; +exports4["createDecipher"]; +exports4["Decipheriv"]; +exports4["createDecipheriv"]; +exports4["getCiphers"]; +exports4["listCiphers"]; +exports4["DiffieHellmanGroup"]; +exports4["createDiffieHellmanGroup"]; +exports4["getDiffieHellman"]; +exports4["createDiffieHellman"]; +exports4["DiffieHellman"]; +exports4["createSign"]; +exports4["Sign"]; +exports4["createVerify"]; +exports4["Verify"]; +exports4["createECDH"]; +exports4["publicEncrypt"]; +exports4["privateEncrypt"]; +exports4["publicDecrypt"]; +exports4["privateDecrypt"]; +exports4["randomFill"]; +exports4["randomFillSync"]; +exports4["createCredentials"]; +exports4["constants"]; +exports4.webcrypto = globalThis.crypto; +var Cipher = exports4.Cipher; +var Cipheriv = exports4.Cipheriv; +var Decipher = exports4.Decipher; +var Decipheriv = exports4.Decipheriv; +var DiffieHellman = exports4.DiffieHellman; +var DiffieHellmanGroup = exports4.DiffieHellmanGroup; +var Hash = exports4.Hash; +var Hmac = exports4.Hmac; +var Sign = exports4.Sign; +var Verify = exports4.Verify; +var constants = exports4.constants; +var createCipher = exports4.createCipher; +var createCipheriv = exports4.createCipheriv; +var createCredentials = exports4.createCredentials; +var createDecipher = exports4.createDecipher; +var createDecipheriv = exports4.createDecipheriv; +var createDiffieHellman = exports4.createDiffieHellman; +var createDiffieHellmanGroup = exports4.createDiffieHellmanGroup; +var createECDH = exports4.createECDH; +var createHash = exports4.createHash; +var createHmac = exports4.createHmac; +var createSign = exports4.createSign; +var createVerify = exports4.createVerify; +var getCiphers = exports4.getCiphers; +var getDiffieHellman = exports4.getDiffieHellman; +var getHashes = exports4.getHashes; +var listCiphers = exports4.listCiphers; +var pbkdf2 = exports4.pbkdf2; +var pbkdf2Sync = exports4.pbkdf2Sync; +var privateDecrypt = exports4.privateDecrypt; +var privateEncrypt = exports4.privateEncrypt; +var prng = exports4.prng; +var pseudoRandomBytes = exports4.pseudoRandomBytes; +var publicDecrypt = exports4.publicDecrypt; +var publicEncrypt = exports4.publicEncrypt; +var randomBytes = exports4.randomBytes; +var randomFill = exports4.randomFill; +var randomFillSync = exports4.randomFillSync; +var rng = exports4.rng; +var webcrypto = exports4.webcrypto; + +// src/index.ts +var src_default = exports4; +export { + src_default as default +}; +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +/*! Bundled license information: + +@jspm/core/nodelibs/browser/chunk-44e51b61.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) +*/ +//# sourceMappingURL=main.js.map diff --git a/services/js-poc/src/runtime/mod.rs b/services/js-poc/src/runtime/mod.rs index 34530670f..2af4f52c8 100644 --- a/services/js-poc/src/runtime/mod.rs +++ b/services/js-poc/src/runtime/mod.rs @@ -114,7 +114,7 @@ impl Runtime { op_metrics_factory_fn: Some(tape.op_metrics_factory_fn()), // Heap initializes with 1KiB, maxes out at 10MiB create_params: Some(CreateParams::default().heap_limits(HEAP_INIT, HEAP_LIMIT)), - module_loader: Some(Rc::new(module_loader::get())), + module_loader: Some(Rc::new(module_loader::node_crypto())), ..Default::default() }); diff --git a/services/js-poc/src/runtime/module_loader.rs b/services/js-poc/src/runtime/module_loader.rs index ff7571e80..19fab0e90 100644 --- a/services/js-poc/src/runtime/module_loader.rs +++ b/services/js-poc/src/runtime/module_loader.rs @@ -1,7 +1,7 @@ use deno_core::{ModuleSpecifier, StaticModuleLoader}; -pub fn get() -> StaticModuleLoader { - let source = String::from("export default function(name) { return `hello ${name}`; }"); - let modules = vec![(ModuleSpecifier::parse("memory://crypto").unwrap(), source)]; +pub fn node_crypto() -> StaticModuleLoader { + let source = include_str!("js/node_crypto.js"); + let modules = vec![(ModuleSpecifier::parse("node:crypto").unwrap(), source)]; StaticModuleLoader::new(modules) }