Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jsbi

Package Overview
Dependencies
Maintainers
2
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsbi - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

2

dist/jsbi-cjs.js

@@ -1,1 +0,1 @@

"use strict";class JSBI extends Array{constructor(a,b){if(a>JSBI.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return JSBI.__zero();if((0|a)===a)return 0>a?JSBI.__oneDigit(-a,!0):JSBI.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return JSBI.__fromDouble(a)}if("string"==typeof a){const b=JSBI.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?JSBI.__oneDigit(1,!1):JSBI.__zero();if("object"==typeof a){if(a.constructor===JSBI)return a;const b=JSBI.__toPrimitive(a);return JSBI.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?JSBI.__toStringBasePowerOfTwo(this,a):JSBI.__toStringGeneric(this,a,!1)}static toNumber(a){return JSBI.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?JSBI.__absoluteSubOne(a).__trim():JSBI.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return JSBI.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?JSBI.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=JSBI.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),e=new JSBI(b,d);e.__initializeDigits();const f=1<<(31&c);return e.__setDigit(b-1,f),e}let d=null,e=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)e=JSBI.multiply(e,e),0!=(1&c)&&(null===d?d=e:d=JSBI.multiply(d,e));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new JSBI(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)JSBI.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return JSBI.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let e;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:JSBI.unaryMinus(a);e=JSBI.__absoluteDivSmall(a,d,null)}else e=JSBI.__absoluteDivLarge(a,b,!0,!1);return e.sign=c,e.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return JSBI.__zero();const b=JSBI.__absoluteModSmall(a,c);return 0===b?JSBI.__zero():JSBI.__oneDigit(b,a.sign)}const d=JSBI.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?JSBI.__absoluteAdd(a,b,c):0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c):JSBI.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__rightShiftByAbsolute(a,b):JSBI.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__leftShiftByAbsolute(a,b):JSBI.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>JSBI.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=JSBI.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<JSBI.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=JSBI.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length)+1;let e=JSBI.__absoluteSubOne(a,d);const f=JSBI.__absoluteSubOne(b);return e=JSBI.__absoluteOr(e,f,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}return a.sign&&([a,b]=[b,a]),JSBI.__absoluteAndNot(a,JSBI.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length),e=JSBI.__absoluteSubOne(a,d),f=JSBI.__absoluteSubOne(b);return JSBI.__absoluteXor(e,f,e).__trim()}const d=c(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteXor(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static bitwiseOr(a,b){var c=Math.max;const d=c(a.length,b.length);if(!a.sign&&!b.sign)return JSBI.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let c=JSBI.__absoluteSubOne(a,d);const e=JSBI.__absoluteSubOne(b);return c=JSBI.__absoluteAnd(c,e,c),JSBI.__absoluteAddOne(c,!0,c).__trim()}a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteAndNot(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static ADD(a,b){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)&&JSBI.__isBigInt(b))return JSBI.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return JSBI.__compare(a,b,0)}static LE(a,b){return JSBI.__compare(a,b,1)}static GT(a,b){return JSBI.__compare(a,b,2)}static GE(a,b){return JSBI.__compare(a,b,3)}static EQ(a,b){for(;;){if(JSBI.__isBigInt(a))return JSBI.__isBigInt(b)?JSBI.equal(a,b):JSBI.EQ(b,a);if("number"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("string"==typeof a){if(JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.equal(a,b);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("boolean"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("symbol"==typeof a){if(JSBI.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==JSBI)return a==b;a=JSBI.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===JSBI.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");JSBI.BigInt=function(a){return new JSBI(0,BigInt(a))},JSBI.prototype.unaryMinus=function(){return new JSBI(0,-this.sign)},JSBI.prototype.bitwiseNot=function(){return new JSBI(0,~this.sign)},JSBI.prototype.exponentiate=function(a){return new JSBI(0,this.sign**a.sign)},JSBI.prototype.multiply=function(a){return new JSBI(0,this.sign*a.sign)},JSBI.prototype.divide=function(a){return new JSBI(0,this.sign/a.sign)},JSBI.prototype.remainder=function(a){return new JSBI(0,this.sign%a.sign)},JSBI.prototype.add=function(a){return new JSBI(0,this.sign+a.sign)},JSBI.prototype.subtract=function(a){return new JSBI(0,this.sign-a.sign)},JSBI.prototype.leftShift=function(a){return new JSBI(0,this.sign<<a.sign)},JSBI.prototype.signedRightShift=function(a){return new JSBI(0,this.sign>>a.sign)},JSBI.prototype.lessThan=function(a){return this.sign<a.sign},JSBI.prototype.equal=function(a){return this.sign===a.sign},JSBI.prototype.bitwiseAnd=function(a){return new JSBI(0,this.sign&a.sign)},JSBI.prototype.bitwiseXor=function(a){return new JSBI(0,this.sign^a.sign)},JSBI.prototype.bitwiseOr=function(a){return new JSBI(0,this.sign|a.sign)},JSBI.prototype.toString=function(a){return this.sign.toString(a)},JSBI.prototype.toNumber=function(){return+this.sign},JSBI.prototype.increment=function(){return new JSBI(0,++this.sign)},JSBI.prototype.decrement=function(){return new JSBI(0,--this.sign)},JSBI.ADD=function(a,b){JSBI.__isBigInt(a)&&(a=a.sign),JSBI.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new JSBI(0,c):c},JSBI.LT=function(a,b){return a<b},JSBI.LE=function(a,b){return a<=b},JSBI.GT=function(a,b){return a>b},JSBI.GE=function(a,b){return a>=b},JSBI.EQ=function(a,b){return a==b}}}static __zero(){return new JSBI(0,!1)}static __oneDigit(a,b){const c=new JSBI(1,b);return c.__setDigit(0,a),c}__copy(){const a=new JSBI(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){var b=Math.clz32;const c=a.length;if(0===c)return 0;if(1===c){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(c-1),e=b(d),f=32*c-e;if(1024<f)return a.sign?-Infinity:1/0;let g=f-1,h=d,i=c-1;const j=e+1;let k=32===j?0:h<<j;k>>>=12;const l=j-12;let m=12<=j?0:h<<20+j,n=20+j;0<l&&0<i&&(i--,h=a.__digit(i),k|=h>>>32-l,m=h<<l,n=l),0<n&&0<i&&(i--,h=a.__digit(i),m|=h>>>32-n,n-=32);const o=JSBI.__decideRounding(a,n,i,h);if((1===o||0===o&&1==(1&m))&&(m=m+1>>>0,0==m&&(k++,0!=k>>>20&&(k=0,g++,1023<g))))return a.sign?-Infinity:1/0;const p=a.sign?-2147483648:0;return g=g+1023<<20,JSBI.__kBitConversionInts[1]=p|g|k,JSBI.__kBitConversionInts[0]=m,JSBI.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){JSBI.__kBitConversionDouble[0]=a;const b=2047&JSBI.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,e=new JSBI(d,0>a);let f=1048575&JSBI.__kBitConversionInts[1]|1048576,g=JSBI.__kBitConversionInts[0];const h=20,i=31&c;let j,k=0;if(i<20){const a=h-i;k=a+32,j=f>>>a,f=f<<32-a|g>>>a,g<<=32-a}else if(i===20)k=32,j=f,f=g;else{const a=i-h;k=32-a,j=f<<a|g>>>32-a,f=g<<a}e.__setDigit(d-1,j);for(let b=d-2;0<=b;b--)0<k?(k-=32,j=f,f=g):j=0,e.__setDigit(b,j);return e.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const e=a.length;let f=0;if(f===e)return JSBI.__zero();let g=a.charCodeAt(f);for(;JSBI.__iswhitespace(g);){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}if(43===g){if(++f===e)return null;g=a.charCodeAt(f),c=1}else if(45===g){if(++f===e)return null;g=a.charCodeAt(f),c=-1}if(0===b){if(b=10,48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(b=16,++f===e)return null;g=a.charCodeAt(f)}else if(79===g||111===g){if(b=8,++f===e)return null;g=a.charCodeAt(f)}else if(66===g||98===g){if(b=2,++f===e)return null;g=a.charCodeAt(f)}}}else if(16===b&&48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(++f===e)return null;g=a.charCodeAt(f)}}for(;48===g;){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}const h=e-f;let i=JSBI.__kMaxBitsPerChar[b],j=JSBI.__kBitsPerCharTableMultiplier-1;if(h>1073741824/i)return null;const k=i*h+j>>>JSBI.__kBitsPerCharTableShift,l=new JSBI(k+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){i>>=JSBI.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let h=0,j=0;for(;;){let b;if(g-48>>>0<n)b=g-48;else if((32|g)-97>>>0<o)b=(32|g)-87;else{d=!0;break}if(j+=i,h=h<<i|b,++f===e){d=!0;break}if(g=a.charCodeAt(f),32<j+i)break}b.push(h),c.push(j)}while(!d);JSBI.__fillFromParts(l,b,c)}else{l.__initializeDigits();let c=!1,h=0;do{let k=0,p=1;for(;;){let i;if(g-48>>>0<n)i=g-48;else if((32|g)-97>>>0<o)i=(32|g)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,k=k*b+i,h++,++f===e){c=!0;break}g=a.charCodeAt(f)}j=32*JSBI.__kBitsPerCharTableMultiplier-1;const q=i*h+j>>>JSBI.__kBitsPerCharTableShift+5;l.__inplaceMultiplyAdd(p,k,q)}while(!c)}for(;f!==e;){if(!JSBI.__iswhitespace(g))return null;g=a.charCodeAt(f++)}return 0!=c&&10!==b?null:(l.sign=-1==c,l.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){var c=Math.clz32;const d=a.length;let e=b-1;e=(85&e>>>1)+(85&e),e=(51&e>>>2)+(51&e),e=(15&e>>>4)+(15&e);const f=e,g=b-1,h=a.__digit(d-1),i=c(h);let j=0|(32*d-i+f-1)/f;if(a.sign&&j++,268435456<j)throw new Error("string too long");const k=Array(j);let l=j-1,m=0,n=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(m|b<<n)&g;k[l--]=JSBI.__kConversionChars[d];const e=f-n;for(m=b>>>e,n=32-e;n>=f;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f,n-=f}const o=(m|h<<n)&g;for(k[l--]=JSBI.__kConversionChars[o],m=h>>>f-n;0!==m;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f;if(a.sign&&(k[l--]="-"),-1!=l)throw new Error("implementation bug");return k.join("")}static __toStringGeneric(a,b,c){var d=Math.clz32;const e=a.length;if(0===e)return"";if(1===e){let d=a.__unsignedDigit(0).toString(b);return!1===c&&a.sign&&(d="-"+d),d}const f=32*e-d(a.__digit(e-1)),g=JSBI.__kMaxBitsPerChar[b],h=g-1;let i=f*JSBI.__kBitsPerCharTableMultiplier;i+=h-1,i=0|i/h;const j=i+1>>1,k=JSBI.exponentiate(JSBI.__oneDigit(b,!1),JSBI.__oneDigit(j,!1));let l,m;const n=k.__unsignedDigit(0);if(1===k.length&&65535>=n){l=new JSBI(a.length,!1),l.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);l.__setHalfDigit(b,0|d/n),c=0|d%n}m=c.toString(b)}else{const c=JSBI.__absoluteDivLarge(a,k,!0,!0);l=c.quotient;const d=c.remainder.__trim();m=JSBI.__toStringGeneric(d,b,!0)}l.__trim();let o=JSBI.__toStringGeneric(l,b,!0);for(;m.length<j;)m="0"+m;return!1===c&&a.sign&&(o="-"+o),o+m}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return JSBI.__unequalSign(c);const d=JSBI.__absoluteCompare(a,b);return 0<d?JSBI.__absoluteGreater(c):0>d?JSBI.__absoluteLess(c):0}static __compareToNumber(a,b){if(b|!0){const c=a.sign,d=0>b;if(c!==d)return JSBI.__unequalSign(c);if(0===a.length){if(d)throw new Error("implementation bug");return 0===b?0:-1}if(1<a.length)return JSBI.__absoluteGreater(c);const e=Math.abs(b),f=a.__unsignedDigit(0);return f>e?JSBI.__absoluteGreater(c):f<e?JSBI.__absoluteLess(c):0}return JSBI.__compareToDouble(a,b)}static __compareToDouble(a,b){var c=Math.clz32;if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return JSBI.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;JSBI.__kBitConversionDouble[0]=b;const e=2047&JSBI.__kBitConversionInts[1]>>>20;if(2047==e)throw new Error("implementation bug: handled elsewhere");const f=e-1023;if(0>f)return JSBI.__absoluteGreater(d);const g=a.length;let h=a.__digit(g-1);const i=c(h),j=32*g-i,k=f+1;if(j<k)return JSBI.__absoluteLess(d);if(j>k)return JSBI.__absoluteGreater(d);let l=1048576|1048575&JSBI.__kBitConversionInts[1],m=JSBI.__kBitConversionInts[0];const n=20,o=31-i;if(o!==(j-1)%31)throw new Error("implementation bug");let p,q=0;if(20>o){const a=n-o;q=a+32,p=l>>>a,l=l<<32-a|m>>>a,m<<=32-a}else if(20===o)q=32,p=l,l=m;else{const a=o-n;q=32-a,p=l<<a|m>>>32-a,l=m<<a}if(h>>>=0,p>>>=0,h>p)return JSBI.__absoluteGreater(d);if(h<p)return JSBI.__absoluteLess(d);for(let c=g-2;0<=c;c--){0<q?(q-=32,p=l>>>0,l=m,m=0):p=0;const b=a.__unsignedDigit(c);if(b>p)return JSBI.__absoluteGreater(d);if(b<p)return JSBI.__absoluteLess(d)}if(0!==l||0!==m){if(0===q)throw new Error("implementation bug");return JSBI.__absoluteLess(d)}return 0}static __equalToNumber(a,b){var c=Math.abs;return b|0===b?0===b?0===a.length:1===a.length&&a.sign===0>b&&a.__unsignedDigit(0)===c(b):0===JSBI.__compareToDouble(a,b)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(JSBI.__isBigInt(a)&&"string"==typeof b)return b=JSBI.__fromString(b),null!==b&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("string"==typeof a&&JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)){if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return Math.clz32(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return JSBI.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const e=new JSBI(d,c);let f=0,g=0;for(;g<b.length;g++){const c=b.__digit(g),d=a.__digit(g),h=(65535&d)+(65535&c)+f,i=(d>>>16)+(c>>>16)+(h>>>16);f=i>>>16,e.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)+f,d=(b>>>16)+(c>>>16);f=d>>>16,e.__setDigit(g,65535&c|d<<16)}return g<e.length&&e.__setDigit(g,f),e.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);const d=new JSBI(a.length,c);let e=0,f=0;for(;f<b.length;f++){const c=a.__digit(f),g=b.__digit(f),h=(65535&c)-(65535&g)-e;e=1&h>>>16;const i=(c>>>16)-(g>>>16)-e;e=1&i>>>16,d.__setDigit(f,65535&h|i<<16)}for(;f<a.length;f++){const b=a.__digit(f),c=(65535&b)-e;e=1&c>>>16;const g=(b>>>16)-e;e=1&g>>>16,d.__setDigit(f,65535&c|g<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new JSBI(d,b):c.sign=b;let e=!0;for(let f,g=0;g<d;g++){f=a.__digit(g);const b=-1===f;e&&(f=0|f+1),e=b,c.__setDigit(g,f)}return e&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new JSBI(b,!1);let e=!0;for(let f,g=0;g<c;g++){f=a.__digit(g);const b=0===f;e&&(f=0|f-1),e=b,d.__setDigit(g,f)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=f;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&b.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,e=b.length;let f=e;d<e&&(f=d);let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&~b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)|b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)^b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(a,b,c,d){var e=Math.imul;if(0===b)return;const f=65535&b,g=b>>>16;let h=0,j=0,k=0;for(let l=0;l<a.length;l++,d++){let b=c.__digit(d),i=65535&b,m=b>>>16;const n=a.__digit(l),o=65535&n,p=n>>>16,q=e(o,f),r=e(o,g),s=e(p,f),t=e(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,b=65535&i|m<<16,c.__setDigit(d,b)}for(;0!=h||0!==j||0!==k;d++){let a=c.__digit(d);const b=(65535&a)+j,e=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=e>>>16,a=65535&b|e<<16,c.__setDigit(d,a)}}static __internalMultiplyAdd(a,b,c,d,e){var f=Math.imul;let g=c,h=0;for(let j=0;j<d;j++){const c=a.__digit(j),d=f(65535&c,b),i=(65535&d)+h+g;g=i>>>16;const k=f(c>>>16,b),l=(65535&k)+(d>>>16)+g;g=l>>>16,h=k>>>16,e.__setDigit(j,l<<16|65535&i)}if(e.length>d)for(e.__setDigit(d++,g+h);d<e.length;)e.__setDigit(d++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(a,b,c){var e=Math.imul;c>this.length&&(c=this.length);const f=65535&a,g=a>>>16;let h=0,j=65535&b,k=b>>>16;for(let l=0;l<c;l++){const a=this.__digit(l),b=65535&a,c=a>>>16,d=e(b,f),i=e(b,g),m=e(c,f),n=e(c,g),o=j+(65535&d),p=k+h+(o>>>16)+(d>>>16)+(65535&i)+(65535&m);j=(i>>>16)+(m>>>16)+(65535&n)+(p>>>16),h=j>>>16,j&=65535,k=n>>>16;this.__setDigit(l,65535&o|p<<16)}if(0!=h||0!==j||0!==k)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new JSBI(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(a,b,d,e){var f=Math.imul;const g=b.__halfDigitLength(),h=b.length,c=a.__halfDigitLength()-g;let i=null;d&&(i=new JSBI(c+2>>>1,!1),i.__initializeDigits());const k=new JSBI(g+2>>>1,!1);k.__initializeDigits();const l=JSBI.__clz16(b.__halfDigit(g-1));0<l&&(b=JSBI.__specialLeftShift(b,l,0));const m=JSBI.__specialLeftShift(a,l,1),n=b.__halfDigit(g-1);let o=0;for(let l,p=c;0<=p;p--){l=65535;const a=m.__halfDigit(p+g);if(a!==n){const c=(a<<16|m.__halfDigit(p+g-1))>>>0;l=0|c/n;let d=0|c%n;const e=b.__halfDigit(g-2),h=m.__halfDigit(p+g-2);for(;f(l,e)>>>0>(d<<16|h)>>>0&&(l--,d+=n,!(65535<d)););}JSBI.__internalMultiplyAdd(b,l,0,h,k);let e=m.__inplaceSub(k,p);0!==e&&(e=m.__inplaceAdd(b,p),m.__setHalfDigit(p+g,m.__halfDigit(p+g)+e),l--),d&&(1&p?o=l<<16:i.__setDigit(p>>>1,o|l))}return e?(m.__inplaceRightShift(l),d?{quotient:i,remainder:m}:m):d?i:void 0}static __clz16(a){return Math.clz32(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,e=new JSBI(d+c,!1);if(0===b){for(let b=0;b<d;b++)e.__setDigit(b,a.__digit(b));return 0<c&&e.__setDigit(d,0),e}let f=0;for(let g=0;g<d;g++){const c=a.__digit(g);e.__setDigit(g,c<<b|f),f=c>>>32-b}return 0<c&&e.__setDigit(d,f),e}static __leftShiftByAbsolute(a,b){const c=JSBI.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const e=c>>>5,f=31&c,g=a.length,h=0!==f&&0!=a.__digit(g-1)>>>32-f,j=g+e+(h?1:0),k=new JSBI(j,a.sign);if(0===f){let b=0;for(;b<e;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-e))}else{let b=0;for(let a=0;a<e;a++)k.__setDigit(a,0);for(let c=0;c<g;c++){const g=a.__digit(c);k.__setDigit(c+e,g<<f|b),b=g>>>32-f}if(h)k.__setDigit(g+e,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,e=JSBI.__toShiftAmount(b);if(0>e)return JSBI.__rightShiftByMaximum(d);const f=e>>>5,g=31&e;let h=c-f;if(0>=h)return JSBI.__rightShiftByMaximum(d);let i=!1;if(d){if(0!=(a.__digit(f)&(1<<g)-1))i=!0;else for(let b=0;b<f;b++)if(0!==a.__digit(b)){i=!0;break}}if(i&&0===g){const b=a.__digit(c-1);0==~b&&h++}let j=new JSBI(h,d);if(0===g)for(let b=f;b<c;b++)j.__setDigit(b-f,a.__digit(b));else{let b=a.__digit(f)>>>g;const d=c-f-1;for(let c=0;c<d;c++){const e=a.__digit(c+f+1);j.__setDigit(c,e<<32-g|b),b=e>>>g}j.__setDigit(d,b)}return i&&(j=JSBI.__absoluteAddOne(j,!0,j)),j.__trim()}static __rightShiftByMaximum(a){return a?JSBI.__oneDigit(1,!0):JSBI.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>JSBI.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===JSBI)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const e=a.toString;if(e){const b=e.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return JSBI.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===JSBI}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}JSBI.__kMaxLength=33554432,JSBI.__kMaxLengthBits=JSBI.__kMaxLength<<5,JSBI.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],JSBI.__kBitsPerCharTableShift=5,JSBI.__kBitsPerCharTableMultiplier=1<<JSBI.__kBitsPerCharTableShift,JSBI.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],JSBI.__kBitConversionBuffer=new ArrayBuffer(8),JSBI.__kBitConversionDouble=new Float64Array(JSBI.__kBitConversionBuffer),JSBI.__kBitConversionInts=new Int32Array(JSBI.__kBitConversionBuffer),module.exports=JSBI;
"use strict";class JSBI extends Array{constructor(a,b){if(a>JSBI.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return JSBI.__zero();if((0|a)===a)return 0>a?JSBI.__oneDigit(-a,!0):JSBI.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return JSBI.__fromDouble(a)}if("string"==typeof a){const b=JSBI.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?JSBI.__oneDigit(1,!1):JSBI.__zero();if("object"==typeof a){if(a.constructor===JSBI)return a;const b=JSBI.__toPrimitive(a);return JSBI.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?JSBI.__toStringBasePowerOfTwo(this,a):JSBI.__toStringGeneric(this,a,!1)}static toNumber(a){return JSBI.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?JSBI.__absoluteSubOne(a).__trim():JSBI.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return JSBI.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?JSBI.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=JSBI.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),e=new JSBI(b,d);e.__initializeDigits();const f=1<<(31&c);return e.__setDigit(b-1,f),e}let d=null,e=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)e=JSBI.multiply(e,e),0!=(1&c)&&(null===d?d=e:d=JSBI.multiply(d,e));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new JSBI(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)JSBI.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return JSBI.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let e;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:JSBI.unaryMinus(a);e=JSBI.__absoluteDivSmall(a,d,null)}else e=JSBI.__absoluteDivLarge(a,b,!0,!1);return e.sign=c,e.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>JSBI.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return JSBI.__zero();const b=JSBI.__absoluteModSmall(a,c);return 0===b?JSBI.__zero():JSBI.__oneDigit(b,a.sign)}const d=JSBI.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?JSBI.__absoluteAdd(a,b,c):0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=JSBI.__absoluteCompare(a,b)?JSBI.__absoluteSub(a,b,c):JSBI.__absoluteSub(b,a,!c):JSBI.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__rightShiftByAbsolute(a,b):JSBI.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?JSBI.__leftShiftByAbsolute(a,b):JSBI.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>JSBI.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=JSBI.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<JSBI.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=JSBI.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length)+1;let e=JSBI.__absoluteSubOne(a,d);const f=JSBI.__absoluteSubOne(b);return e=JSBI.__absoluteOr(e,f,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}return a.sign&&([a,b]=[b,a]),JSBI.__absoluteAndNot(a,JSBI.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){var c=Math.max;if(!a.sign&&!b.sign)return JSBI.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const d=c(a.length,b.length),e=JSBI.__absoluteSubOne(a,d),f=JSBI.__absoluteSubOne(b);return JSBI.__absoluteXor(e,f,e).__trim()}const d=c(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteXor(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static bitwiseOr(a,b){var c=Math.max;const d=c(a.length,b.length);if(!a.sign&&!b.sign)return JSBI.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let c=JSBI.__absoluteSubOne(a,d);const e=JSBI.__absoluteSubOne(b);return c=JSBI.__absoluteAnd(c,e,c),JSBI.__absoluteAddOne(c,!0,c).__trim()}a.sign&&([a,b]=[b,a]);let e=JSBI.__absoluteSubOne(b,d);return e=JSBI.__absoluteAndNot(e,a,e),JSBI.__absoluteAddOne(e,!0,e).__trim()}static ADD(a,b){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)&&JSBI.__isBigInt(b))return JSBI.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return JSBI.__compare(a,b,0)}static LE(a,b){return JSBI.__compare(a,b,1)}static GT(a,b){return JSBI.__compare(a,b,2)}static GE(a,b){return JSBI.__compare(a,b,3)}static EQ(a,b){for(;;){if(JSBI.__isBigInt(a))return JSBI.__isBigInt(b)?JSBI.equal(a,b):JSBI.EQ(b,a);if("number"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("string"==typeof a){if(JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.equal(a,b);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("boolean"==typeof a){if(JSBI.__isBigInt(b))return JSBI.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("symbol"==typeof a){if(JSBI.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=JSBI.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==JSBI)return a==b;a=JSBI.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===JSBI.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");JSBI.BigInt=function(a){return new JSBI(0,BigInt(a))},JSBI.unaryMinus=function(a){return new JSBI(0,-a.sign)},JSBI.bitwiseNot=function(a){return new JSBI(0,~a.sign)},JSBI.exponentiate=function(a,b){return new JSBI(0,a.sign**b.sign)},JSBI.multiply=function(a,b){return new JSBI(0,a.sign*b.sign)},JSBI.divide=function(a,b){return new JSBI(0,a.sign/b.sign)},JSBI.remainder=function(a,b){return new JSBI(0,a.sign%b.sign)},JSBI.add=function(a,b){return new JSBI(0,a.sign+b.sign)},JSBI.subtract=function(a,b){return new JSBI(0,a.sign-b.sign)},JSBI.leftShift=function(a,b){return new JSBI(0,a.sign<<b.sign)},JSBI.signedRightShift=function(a,b){return new JSBI(0,a.sign>>b.sign)},JSBI.lessThan=function(a,b){return a.sign<b.sign},JSBI.equal=function(a,b){return a.sign===b.sign},JSBI.bitwiseAnd=function(a,b){return new JSBI(0,a.sign&b.sign)},JSBI.bitwiseXor=function(a,b){return new JSBI(0,a.sign^b.sign)},JSBI.bitwiseOr=function(a,b){return new JSBI(0,a.sign|b.sign)},JSBI.toString=function(a){return this.sign.toString(a)},JSBI.toNumber=function(a){return+a.sign},JSBI.ADD=function(a,b){JSBI.__isBigInt(a)&&(a=a.sign),JSBI.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new JSBI(0,c):c},JSBI.LT=function(a,b){return a<b},JSBI.LE=function(a,b){return a<=b},JSBI.GT=function(a,b){return a>b},JSBI.GE=function(a,b){return a>=b},JSBI.EQ=function(a,b){return a==b}}}static __zero(){return new JSBI(0,!1)}static __oneDigit(a,b){const c=new JSBI(1,b);return c.__setDigit(0,a),c}__copy(){const a=new JSBI(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){var b=Math.clz32;const c=a.length;if(0===c)return 0;if(1===c){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(c-1),e=b(d),f=32*c-e;if(1024<f)return a.sign?-Infinity:1/0;let g=f-1,h=d,i=c-1;const j=e+1;let k=32===j?0:h<<j;k>>>=12;const l=j-12;let m=12<=j?0:h<<20+j,n=20+j;0<l&&0<i&&(i--,h=a.__digit(i),k|=h>>>32-l,m=h<<l,n=l),0<n&&0<i&&(i--,h=a.__digit(i),m|=h>>>32-n,n-=32);const o=JSBI.__decideRounding(a,n,i,h);if((1===o||0===o&&1==(1&m))&&(m=m+1>>>0,0==m&&(k++,0!=k>>>20&&(k=0,g++,1023<g))))return a.sign?-Infinity:1/0;const p=a.sign?-2147483648:0;return g=g+1023<<20,JSBI.__kBitConversionInts[1]=p|g|k,JSBI.__kBitConversionInts[0]=m,JSBI.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){JSBI.__kBitConversionDouble[0]=a;const b=2047&JSBI.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,e=new JSBI(d,0>a);let f=1048575&JSBI.__kBitConversionInts[1]|1048576,g=JSBI.__kBitConversionInts[0];const h=20,i=31&c;let j,k=0;if(i<20){const a=h-i;k=a+32,j=f>>>a,f=f<<32-a|g>>>a,g<<=32-a}else if(i===20)k=32,j=f,f=g;else{const a=i-h;k=32-a,j=f<<a|g>>>32-a,f=g<<a}e.__setDigit(d-1,j);for(let b=d-2;0<=b;b--)0<k?(k-=32,j=f,f=g):j=0,e.__setDigit(b,j);return e.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const e=a.length;let f=0;if(f===e)return JSBI.__zero();let g=a.charCodeAt(f);for(;JSBI.__iswhitespace(g);){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}if(43===g){if(++f===e)return null;g=a.charCodeAt(f),c=1}else if(45===g){if(++f===e)return null;g=a.charCodeAt(f),c=-1}if(0===b){if(b=10,48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(b=16,++f===e)return null;g=a.charCodeAt(f)}else if(79===g||111===g){if(b=8,++f===e)return null;g=a.charCodeAt(f)}else if(66===g||98===g){if(b=2,++f===e)return null;g=a.charCodeAt(f)}}}else if(16===b&&48===g){if(++f===e)return JSBI.__zero();if(g=a.charCodeAt(f),88===g||120===g){if(++f===e)return null;g=a.charCodeAt(f)}}for(;48===g;){if(++f===e)return JSBI.__zero();g=a.charCodeAt(f)}const h=e-f;let i=JSBI.__kMaxBitsPerChar[b],j=JSBI.__kBitsPerCharTableMultiplier-1;if(h>1073741824/i)return null;const k=i*h+j>>>JSBI.__kBitsPerCharTableShift,l=new JSBI(k+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){i>>=JSBI.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let h=0,j=0;for(;;){let b;if(g-48>>>0<n)b=g-48;else if((32|g)-97>>>0<o)b=(32|g)-87;else{d=!0;break}if(j+=i,h=h<<i|b,++f===e){d=!0;break}if(g=a.charCodeAt(f),32<j+i)break}b.push(h),c.push(j)}while(!d);JSBI.__fillFromParts(l,b,c)}else{l.__initializeDigits();let c=!1,h=0;do{let k=0,p=1;for(;;){let i;if(g-48>>>0<n)i=g-48;else if((32|g)-97>>>0<o)i=(32|g)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,k=k*b+i,h++,++f===e){c=!0;break}g=a.charCodeAt(f)}j=32*JSBI.__kBitsPerCharTableMultiplier-1;const q=i*h+j>>>JSBI.__kBitsPerCharTableShift+5;l.__inplaceMultiplyAdd(p,k,q)}while(!c)}for(;f!==e;){if(!JSBI.__iswhitespace(g))return null;g=a.charCodeAt(f++)}return 0!=c&&10!==b?null:(l.sign=-1==c,l.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){var c=Math.clz32;const d=a.length;let e=b-1;e=(85&e>>>1)+(85&e),e=(51&e>>>2)+(51&e),e=(15&e>>>4)+(15&e);const f=e,g=b-1,h=a.__digit(d-1),i=c(h);let j=0|(32*d-i+f-1)/f;if(a.sign&&j++,268435456<j)throw new Error("string too long");const k=Array(j);let l=j-1,m=0,n=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(m|b<<n)&g;k[l--]=JSBI.__kConversionChars[d];const e=f-n;for(m=b>>>e,n=32-e;n>=f;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f,n-=f}const o=(m|h<<n)&g;for(k[l--]=JSBI.__kConversionChars[o],m=h>>>f-n;0!==m;)k[l--]=JSBI.__kConversionChars[m&g],m>>>=f;if(a.sign&&(k[l--]="-"),-1!=l)throw new Error("implementation bug");return k.join("")}static __toStringGeneric(a,b,c){var d=Math.clz32;const e=a.length;if(0===e)return"";if(1===e){let d=a.__unsignedDigit(0).toString(b);return!1===c&&a.sign&&(d="-"+d),d}const f=32*e-d(a.__digit(e-1)),g=JSBI.__kMaxBitsPerChar[b],h=g-1;let i=f*JSBI.__kBitsPerCharTableMultiplier;i+=h-1,i=0|i/h;const j=i+1>>1,k=JSBI.exponentiate(JSBI.__oneDigit(b,!1),JSBI.__oneDigit(j,!1));let l,m;const n=k.__unsignedDigit(0);if(1===k.length&&65535>=n){l=new JSBI(a.length,!1),l.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);l.__setHalfDigit(b,0|d/n),c=0|d%n}m=c.toString(b)}else{const c=JSBI.__absoluteDivLarge(a,k,!0,!0);l=c.quotient;const d=c.remainder.__trim();m=JSBI.__toStringGeneric(d,b,!0)}l.__trim();let o=JSBI.__toStringGeneric(l,b,!0);for(;m.length<j;)m="0"+m;return!1===c&&a.sign&&(o="-"+o),o+m}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return JSBI.__unequalSign(c);const d=JSBI.__absoluteCompare(a,b);return 0<d?JSBI.__absoluteGreater(c):0>d?JSBI.__absoluteLess(c):0}static __compareToNumber(a,b){if(b|!0){const c=a.sign,d=0>b;if(c!==d)return JSBI.__unequalSign(c);if(0===a.length){if(d)throw new Error("implementation bug");return 0===b?0:-1}if(1<a.length)return JSBI.__absoluteGreater(c);const e=Math.abs(b),f=a.__unsignedDigit(0);return f>e?JSBI.__absoluteGreater(c):f<e?JSBI.__absoluteLess(c):0}return JSBI.__compareToDouble(a,b)}static __compareToDouble(a,b){var c=Math.clz32;if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return JSBI.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;JSBI.__kBitConversionDouble[0]=b;const e=2047&JSBI.__kBitConversionInts[1]>>>20;if(2047==e)throw new Error("implementation bug: handled elsewhere");const f=e-1023;if(0>f)return JSBI.__absoluteGreater(d);const g=a.length;let h=a.__digit(g-1);const i=c(h),j=32*g-i,k=f+1;if(j<k)return JSBI.__absoluteLess(d);if(j>k)return JSBI.__absoluteGreater(d);let l=1048576|1048575&JSBI.__kBitConversionInts[1],m=JSBI.__kBitConversionInts[0];const n=20,o=31-i;if(o!==(j-1)%31)throw new Error("implementation bug");let p,q=0;if(20>o){const a=n-o;q=a+32,p=l>>>a,l=l<<32-a|m>>>a,m<<=32-a}else if(20===o)q=32,p=l,l=m;else{const a=o-n;q=32-a,p=l<<a|m>>>32-a,l=m<<a}if(h>>>=0,p>>>=0,h>p)return JSBI.__absoluteGreater(d);if(h<p)return JSBI.__absoluteLess(d);for(let c=g-2;0<=c;c--){0<q?(q-=32,p=l>>>0,l=m,m=0):p=0;const b=a.__unsignedDigit(c);if(b>p)return JSBI.__absoluteGreater(d);if(b<p)return JSBI.__absoluteLess(d)}if(0!==l||0!==m){if(0===q)throw new Error("implementation bug");return JSBI.__absoluteLess(d)}return 0}static __equalToNumber(a,b){var c=Math.abs;return b|0===b?0===b?0===a.length:1===a.length&&a.sign===0>b&&a.__unsignedDigit(0)===c(b):0===JSBI.__compareToDouble(a,b)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=JSBI.__toPrimitive(a),b=JSBI.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(JSBI.__isBigInt(a)&&"string"==typeof b)return b=JSBI.__fromString(b),null!==b&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("string"==typeof a&&JSBI.__isBigInt(b))return a=JSBI.__fromString(a),null!==a&&JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if(a=JSBI.__toNumeric(a),b=JSBI.__toNumeric(b),JSBI.__isBigInt(a)){if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(JSBI.__isBigInt(b))return JSBI.__comparisonResultToBool(JSBI.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return Math.clz32(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return JSBI.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const e=new JSBI(d,c);let f=0,g=0;for(;g<b.length;g++){const c=b.__digit(g),d=a.__digit(g),h=(65535&d)+(65535&c)+f,i=(d>>>16)+(c>>>16)+(h>>>16);f=i>>>16,e.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)+f,d=(b>>>16)+(c>>>16);f=d>>>16,e.__setDigit(g,65535&c|d<<16)}return g<e.length&&e.__setDigit(g,f),e.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:JSBI.unaryMinus(a);const d=new JSBI(a.length,c);let e=0,f=0;for(;f<b.length;f++){const c=a.__digit(f),g=b.__digit(f),h=(65535&c)-(65535&g)-e;e=1&h>>>16;const i=(c>>>16)-(g>>>16)-e;e=1&i>>>16,d.__setDigit(f,65535&h|i<<16)}for(;f<a.length;f++){const b=a.__digit(f),c=(65535&b)-e;e=1&c>>>16;const g=(b>>>16)-e;e=1&g>>>16,d.__setDigit(f,65535&c|g<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new JSBI(d,b):c.sign=b;let e=!0;for(let f,g=0;g<d;g++){f=a.__digit(g);const b=-1===f;e&&(f=0|f+1),e=b,c.__setDigit(g,f)}return e&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new JSBI(b,!1);let e=!0;for(let f,g=0;g<c;g++){f=a.__digit(g);const b=0===f;e&&(f=0|f-1),e=b,d.__setDigit(g,f)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=f;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&b.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,e=b.length;let f=e;d<e&&(f=d);let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)&~b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)|b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,e=b.length,f=e;if(d<e){f=d;const c=a,g=d;a=b,d=e,b=c,e=g}let g=d;null===c?c=new JSBI(g,!1):g=c.length;let h=0;for(;h<f;h++)c.__setDigit(h,a.__digit(h)^b.__digit(h));for(;h<d;h++)c.__setDigit(h,a.__digit(h));for(;h<g;h++)c.__setDigit(h,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(a,b,c,d){var e=Math.imul;if(0===b)return;const f=65535&b,g=b>>>16;let h=0,j=0,k=0;for(let l=0;l<a.length;l++,d++){let b=c.__digit(d),i=65535&b,m=b>>>16;const n=a.__digit(l),o=65535&n,p=n>>>16,q=e(o,f),r=e(o,g),s=e(p,f),t=e(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,b=65535&i|m<<16,c.__setDigit(d,b)}for(;0!=h||0!==j||0!==k;d++){let a=c.__digit(d);const b=(65535&a)+j,e=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=e>>>16,a=65535&b|e<<16,c.__setDigit(d,a)}}static __internalMultiplyAdd(a,b,c,d,e){var f=Math.imul;let g=c,h=0;for(let j=0;j<d;j++){const c=a.__digit(j),d=f(65535&c,b),i=(65535&d)+h+g;g=i>>>16;const k=f(c>>>16,b),l=(65535&k)+(d>>>16)+g;g=l>>>16,h=k>>>16,e.__setDigit(j,l<<16|65535&i)}if(e.length>d)for(e.__setDigit(d++,g+h);d<e.length;)e.__setDigit(d++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(a,b,c){var e=Math.imul;c>this.length&&(c=this.length);const f=65535&a,g=a>>>16;let h=0,j=65535&b,k=b>>>16;for(let l=0;l<c;l++){const a=this.__digit(l),b=65535&a,c=a>>>16,d=e(b,f),i=e(b,g),m=e(c,f),n=e(c,g),o=j+(65535&d),p=k+h+(o>>>16)+(d>>>16)+(65535&i)+(65535&m);j=(i>>>16)+(m>>>16)+(65535&n)+(p>>>16),h=j>>>16,j&=65535,k=n>>>16;this.__setDigit(l,65535&o|p<<16)}if(0!=h||0!==j||0!==k)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new JSBI(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(a,b,d,e){var f=Math.imul;const g=b.__halfDigitLength(),h=b.length,c=a.__halfDigitLength()-g;let i=null;d&&(i=new JSBI(c+2>>>1,!1),i.__initializeDigits());const k=new JSBI(g+2>>>1,!1);k.__initializeDigits();const l=JSBI.__clz16(b.__halfDigit(g-1));0<l&&(b=JSBI.__specialLeftShift(b,l,0));const m=JSBI.__specialLeftShift(a,l,1),n=b.__halfDigit(g-1);let o=0;for(let l,p=c;0<=p;p--){l=65535;const a=m.__halfDigit(p+g);if(a!==n){const c=(a<<16|m.__halfDigit(p+g-1))>>>0;l=0|c/n;let d=0|c%n;const e=b.__halfDigit(g-2),h=m.__halfDigit(p+g-2);for(;f(l,e)>>>0>(d<<16|h)>>>0&&(l--,d+=n,!(65535<d)););}JSBI.__internalMultiplyAdd(b,l,0,h,k);let e=m.__inplaceSub(k,p);0!==e&&(e=m.__inplaceAdd(b,p),m.__setHalfDigit(p+g,m.__halfDigit(p+g)+e),l--),d&&(1&p?o=l<<16:i.__setDigit(p>>>1,o|l))}return e?(m.__inplaceRightShift(l),d?{quotient:i,remainder:m}:m):d?i:void 0}static __clz16(a){return Math.clz32(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,e=new JSBI(d+c,!1);if(0===b){for(let b=0;b<d;b++)e.__setDigit(b,a.__digit(b));return 0<c&&e.__setDigit(d,0),e}let f=0;for(let g=0;g<d;g++){const c=a.__digit(g);e.__setDigit(g,c<<b|f),f=c>>>32-b}return 0<c&&e.__setDigit(d,f),e}static __leftShiftByAbsolute(a,b){const c=JSBI.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const e=c>>>5,f=31&c,g=a.length,h=0!==f&&0!=a.__digit(g-1)>>>32-f,j=g+e+(h?1:0),k=new JSBI(j,a.sign);if(0===f){let b=0;for(;b<e;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-e))}else{let b=0;for(let a=0;a<e;a++)k.__setDigit(a,0);for(let c=0;c<g;c++){const g=a.__digit(c);k.__setDigit(c+e,g<<f|b),b=g>>>32-f}if(h)k.__setDigit(g+e,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,e=JSBI.__toShiftAmount(b);if(0>e)return JSBI.__rightShiftByMaximum(d);const f=e>>>5,g=31&e;let h=c-f;if(0>=h)return JSBI.__rightShiftByMaximum(d);let i=!1;if(d){if(0!=(a.__digit(f)&(1<<g)-1))i=!0;else for(let b=0;b<f;b++)if(0!==a.__digit(b)){i=!0;break}}if(i&&0===g){const b=a.__digit(c-1);0==~b&&h++}let j=new JSBI(h,d);if(0===g)for(let b=f;b<c;b++)j.__setDigit(b-f,a.__digit(b));else{let b=a.__digit(f)>>>g;const d=c-f-1;for(let c=0;c<d;c++){const e=a.__digit(c+f+1);j.__setDigit(c,e<<32-g|b),b=e>>>g}j.__setDigit(d,b)}return i&&(j=JSBI.__absoluteAddOne(j,!0,j)),j.__trim()}static __rightShiftByMaximum(a){return a?JSBI.__oneDigit(1,!0):JSBI.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>JSBI.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===JSBI)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const e=a.toString;if(e){const b=e.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return JSBI.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===JSBI}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}JSBI.__kMaxLength=33554432,JSBI.__kMaxLengthBits=JSBI.__kMaxLength<<5,JSBI.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],JSBI.__kBitsPerCharTableShift=5,JSBI.__kBitsPerCharTableMultiplier=1<<JSBI.__kBitsPerCharTableShift,JSBI.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],JSBI.__kBitConversionBuffer=new ArrayBuffer(8),JSBI.__kBitConversionDouble=new Float64Array(JSBI.__kBitConversionBuffer),JSBI.__kBitConversionInts=new Int32Array(JSBI.__kBitConversionBuffer),module.exports=JSBI;

@@ -1,1 +0,1 @@

(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.JSBigInt=b()})(this,function(){"use strict";var a=Math.imul,b=Math.abs,c=Math.clz32,d=Math.max;class e extends Array{constructor(a,b){if(a>e.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return e.__zero();if((0|a)===a)return 0>a?e.__oneDigit(-a,!0):e.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return e.__fromDouble(a)}if("string"==typeof a){const b=e.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?e.__oneDigit(1,!1):e.__zero();if("object"==typeof a){if(a.constructor===e)return a;const b=e.__toPrimitive(a);return e.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?e.__toStringBasePowerOfTwo(this,a):e.__toStringGeneric(this,a,!1)}static toNumber(a){return e.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?e.__absoluteSubOne(a).__trim():e.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return e.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?e.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=e.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),f=new e(b,d);f.__initializeDigits();const g=1<<(31&c);return f.__setDigit(b-1,g),f}let d=null,f=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)f=e.multiply(f,f),0!=(1&c)&&(null===d?d=f:d=e.multiply(d,f));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new e(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)e.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return e.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let f;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:e.unaryMinus(a);f=e.__absoluteDivSmall(a,d,null)}else f=e.__absoluteDivLarge(a,b,!0,!1);return f.sign=c,f.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return e.__zero();const b=e.__absoluteModSmall(a,c);return 0===b?e.__zero():e.__oneDigit(b,a.sign)}const d=e.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?e.__absoluteAdd(a,b,c):0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c):e.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__rightShiftByAbsolute(a,b):e.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__leftShiftByAbsolute(a,b):e.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>e.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=e.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<e.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=e.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){if(!a.sign&&!b.sign)return e.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length)+1;let f=e.__absoluteSubOne(a,c);const g=e.__absoluteSubOne(b);return f=e.__absoluteOr(f,g,f),e.__absoluteAddOne(f,!0,f).__trim()}return a.sign&&([a,b]=[b,a]),e.__absoluteAndNot(a,e.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){if(!a.sign&&!b.sign)return e.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length),f=e.__absoluteSubOne(a,c),g=e.__absoluteSubOne(b);return e.__absoluteXor(f,g,f).__trim()}const c=d(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteXor(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static bitwiseOr(a,b){const c=d(a.length,b.length);if(!a.sign&&!b.sign)return e.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let d=e.__absoluteSubOne(a,c);const f=e.__absoluteSubOne(b);return d=e.__absoluteAnd(d,f,d),e.__absoluteAddOne(d,!0,d).__trim()}a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteAndNot(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static ADD(a,b){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)&&e.__isBigInt(b))return e.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return e.__compare(a,b,0)}static LE(a,b){return e.__compare(a,b,1)}static GT(a,b){return e.__compare(a,b,2)}static GE(a,b){return e.__compare(a,b,3)}static EQ(a,b){for(;;){if(e.__isBigInt(a))return e.__isBigInt(b)?e.equal(a,b):e.EQ(b,a);if("number"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("string"==typeof a){if(e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.equal(a,b);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("boolean"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("symbol"==typeof a){if(e.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==e)return a==b;a=e.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===e.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");e.BigInt=function(a){return new e(0,BigInt(a))},e.prototype.unaryMinus=function(){return new e(0,-this.sign)},e.prototype.bitwiseNot=function(){return new e(0,~this.sign)},e.prototype.exponentiate=function(a){return new e(0,this.sign**a.sign)},e.prototype.multiply=function(a){return new e(0,this.sign*a.sign)},e.prototype.divide=function(a){return new e(0,this.sign/a.sign)},e.prototype.remainder=function(a){return new e(0,this.sign%a.sign)},e.prototype.add=function(a){return new e(0,this.sign+a.sign)},e.prototype.subtract=function(a){return new e(0,this.sign-a.sign)},e.prototype.leftShift=function(a){return new e(0,this.sign<<a.sign)},e.prototype.signedRightShift=function(a){return new e(0,this.sign>>a.sign)},e.prototype.lessThan=function(a){return this.sign<a.sign},e.prototype.equal=function(a){return this.sign===a.sign},e.prototype.bitwiseAnd=function(a){return new e(0,this.sign&a.sign)},e.prototype.bitwiseXor=function(a){return new e(0,this.sign^a.sign)},e.prototype.bitwiseOr=function(a){return new e(0,this.sign|a.sign)},e.prototype.toString=function(a){return this.sign.toString(a)},e.prototype.toNumber=function(){return+this.sign},e.prototype.increment=function(){return new e(0,++this.sign)},e.prototype.decrement=function(){return new e(0,--this.sign)},e.ADD=function(a,b){e.__isBigInt(a)&&(a=a.sign),e.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new e(0,c):c},e.LT=function(a,b){return a<b},e.LE=function(a,b){return a<=b},e.GT=function(a,b){return a>b},e.GE=function(a,b){return a>=b},e.EQ=function(a,b){return a==b}}}static __zero(){return new e(0,!1)}static __oneDigit(a,b){const c=new e(1,b);return c.__setDigit(0,a),c}__copy(){const a=new e(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){const b=a.length;if(0===b)return 0;if(1===b){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(b-1),f=c(d),g=32*b-f;if(1024<g)return a.sign?-Infinity:1/0;let h=g-1,i=d,j=b-1;const k=f+1;let l=32===k?0:i<<k;l>>>=12;const m=k-12;let n=12<=k?0:i<<20+k,o=20+k;0<m&&0<j&&(j--,i=a.__digit(j),l|=i>>>32-m,n=i<<m,o=m),0<o&&0<j&&(j--,i=a.__digit(j),n|=i>>>32-o,o-=32);const p=e.__decideRounding(a,o,j,i);if((1===p||0===p&&1==(1&n))&&(n=n+1>>>0,0==n&&(l++,0!=l>>>20&&(l=0,h++,1023<h))))return a.sign?-Infinity:1/0;const q=a.sign?-2147483648:0;return h=h+1023<<20,e.__kBitConversionInts[1]=q|h|l,e.__kBitConversionInts[0]=n,e.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){e.__kBitConversionDouble[0]=a;const b=2047&e.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,f=new e(d,0>a);let g=1048575&e.__kBitConversionInts[1]|1048576,h=e.__kBitConversionInts[0];const i=20,j=31&c;let k,l=0;if(20>j){const a=i-j;l=a+32,k=g>>>a,g=g<<32-a|h>>>a,h<<=32-a}else if(20===j)l=32,k=g,g=h;else{const a=j-i;l=32-a,k=g<<a|h>>>32-a,g=h<<a}f.__setDigit(d-1,k);for(let b=d-2;0<=b;b--)0<l?(l-=32,k=g,g=h):k=0,f.__setDigit(b,k);return f.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const f=a.length;let g=0;if(g===f)return e.__zero();let h=a.charCodeAt(g);for(;e.__iswhitespace(h);){if(++g===f)return e.__zero();h=a.charCodeAt(g)}if(43===h){if(++g===f)return null;h=a.charCodeAt(g),c=1}else if(45===h){if(++g===f)return null;h=a.charCodeAt(g),c=-1}if(0===b){if(b=10,48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(b=16,++g===f)return null;h=a.charCodeAt(g)}else if(79===h||111===h){if(b=8,++g===f)return null;h=a.charCodeAt(g)}else if(66===h||98===h){if(b=2,++g===f)return null;h=a.charCodeAt(g)}}}else if(16===b&&48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(++g===f)return null;h=a.charCodeAt(g)}}for(;48===h;){if(++g===f)return e.__zero();h=a.charCodeAt(g)}const i=f-g;let j=e.__kMaxBitsPerChar[b],k=e.__kBitsPerCharTableMultiplier-1;if(i>1073741824/j)return null;const l=j*i+k>>>e.__kBitsPerCharTableShift,m=new e(l+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){j>>=e.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let e=0,i=0;for(;;){let b;if(h-48>>>0<n)b=h-48;else if((32|h)-97>>>0<o)b=(32|h)-87;else{d=!0;break}if(i+=j,e=e<<j|b,++g===f){d=!0;break}if(h=a.charCodeAt(g),32<i+j)break}b.push(e),c.push(i)}while(!d);e.__fillFromParts(m,b,c)}else{m.__initializeDigits();let c=!1,i=0;do{let l=0,p=1;for(;;){let e;if(h-48>>>0<n)e=h-48;else if((32|h)-97>>>0<o)e=(32|h)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,l=l*b+e,i++,++g===f){c=!0;break}h=a.charCodeAt(g)}k=32*e.__kBitsPerCharTableMultiplier-1;const q=j*i+k>>>e.__kBitsPerCharTableShift+5;m.__inplaceMultiplyAdd(p,l,q)}while(!c)}for(;g!==f;){if(!e.__iswhitespace(h))return null;h=a.charCodeAt(g++)}return 0!=c&&10!==b?null:(m.sign=-1==c,m.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){const d=a.length;let f=b-1;f=(85&f>>>1)+(85&f),f=(51&f>>>2)+(51&f),f=(15&f>>>4)+(15&f);const g=f,h=b-1,i=a.__digit(d-1),j=c(i);let k=0|(32*d-j+g-1)/g;if(a.sign&&k++,268435456<k)throw new Error("string too long");const l=Array(k);let m=k-1,n=0,o=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(n|b<<o)&h;l[m--]=e.__kConversionChars[d];const f=g-o;for(n=b>>>f,o=32-f;o>=g;)l[m--]=e.__kConversionChars[n&h],n>>>=g,o-=g}const p=(n|i<<o)&h;for(l[m--]=e.__kConversionChars[p],n=i>>>g-o;0!==n;)l[m--]=e.__kConversionChars[n&h],n>>>=g;if(a.sign&&(l[m--]="-"),-1!=m)throw new Error("implementation bug");return l.join("")}static __toStringGeneric(a,b,d){const f=a.length;if(0===f)return"";if(1===f){let c=a.__unsignedDigit(0).toString(b);return!1===d&&a.sign&&(c="-"+c),c}const g=32*f-c(a.__digit(f-1)),h=e.__kMaxBitsPerChar[b],i=h-1;let j=g*e.__kBitsPerCharTableMultiplier;j+=i-1,j=0|j/i;const k=j+1>>1,l=e.exponentiate(e.__oneDigit(b,!1),e.__oneDigit(k,!1));let m,n;const o=l.__unsignedDigit(0);if(1===l.length&&65535>=o){m=new e(a.length,!1),m.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);m.__setHalfDigit(b,0|d/o),c=0|d%o}n=c.toString(b)}else{const c=e.__absoluteDivLarge(a,l,!0,!0);m=c.quotient;const d=c.remainder.__trim();n=e.__toStringGeneric(d,b,!0)}m.__trim();let p=e.__toStringGeneric(m,b,!0);for(;n.length<k;)n="0"+n;return!1===d&&a.sign&&(p="-"+p),p+n}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return e.__unequalSign(c);const d=e.__absoluteCompare(a,b);return 0<d?e.__absoluteGreater(c):0>d?e.__absoluteLess(c):0}static __compareToNumber(a,c){if(!0|c){const d=a.sign,f=0>c;if(d!==f)return e.__unequalSign(d);if(0===a.length){if(f)throw new Error("implementation bug");return 0===c?0:-1}if(1<a.length)return e.__absoluteGreater(d);const g=b(c),h=a.__unsignedDigit(0);return h>g?e.__absoluteGreater(d):h<g?e.__absoluteLess(d):0}return e.__compareToDouble(a,c)}static __compareToDouble(a,b){if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return e.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;e.__kBitConversionDouble[0]=b;const f=2047&e.__kBitConversionInts[1]>>>20;if(2047==f)throw new Error("implementation bug: handled elsewhere");const g=f-1023;if(0>g)return e.__absoluteGreater(d);const h=a.length;let i=a.__digit(h-1);const j=c(i),k=32*h-j,l=g+1;if(k<l)return e.__absoluteLess(d);if(k>l)return e.__absoluteGreater(d);let m=1048576|1048575&e.__kBitConversionInts[1],n=e.__kBitConversionInts[0];const o=20,p=31-j;if(p!==(k-1)%31)throw new Error("implementation bug");let q,r=0;if(20>p){const a=o-p;r=a+32,q=m>>>a,m=m<<32-a|n>>>a,n<<=32-a}else if(20===p)r=32,q=m,m=n;else{const a=p-o;r=32-a,q=m<<a|n>>>32-a,m=n<<a}if(i>>>=0,q>>>=0,i>q)return e.__absoluteGreater(d);if(i<q)return e.__absoluteLess(d);for(let c=h-2;0<=c;c--){0<r?(r-=32,q=m>>>0,m=n,n=0):q=0;const b=a.__unsignedDigit(c);if(b>q)return e.__absoluteGreater(d);if(b<q)return e.__absoluteLess(d)}if(0!==m||0!==n){if(0===r)throw new Error("implementation bug");return e.__absoluteLess(d)}return 0}static __equalToNumber(a,c){return c|0===c?0===c?0===a.length:1===a.length&&a.sign===0>c&&a.__unsignedDigit(0)===b(c):0===e.__compareToDouble(a,c)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(e.__isBigInt(a)&&"string"==typeof b)return b=e.__fromString(b),null!==b&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("string"==typeof a&&e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)){if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return e.__comparisonResultToBool(e.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return c(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return e.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const f=new e(d,c);let g=0,h=0;for(;h<b.length;h++){const c=b.__digit(h),d=a.__digit(h),e=(65535&d)+(65535&c)+g,i=(d>>>16)+(c>>>16)+(e>>>16);g=i>>>16,f.__setDigit(h,65535&e|i<<16)}for(;h<a.length;h++){const b=a.__digit(h),c=(65535&b)+g,d=(b>>>16)+(c>>>16);g=d>>>16,f.__setDigit(h,65535&c|d<<16)}return h<f.length&&f.__setDigit(h,g),f.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);const d=new e(a.length,c);let f=0,g=0;for(;g<b.length;g++){const c=a.__digit(g),e=b.__digit(g),h=(65535&c)-(65535&e)-f;f=1&h>>>16;const i=(c>>>16)-(e>>>16)-f;f=1&i>>>16,d.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)-f;f=1&c>>>16;const e=(b>>>16)-f;f=1&e>>>16,d.__setDigit(g,65535&c|e<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new e(d,b):c.sign=b;let f=!0;for(let e,g=0;g<d;g++){e=a.__digit(g);const b=-1===e;f&&(e=0|e+1),f=b,c.__setDigit(g,e)}return f&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new e(b,!1);let f=!0;for(let e,g=0;g<c;g++){e=a.__digit(g);const b=0===e;f&&(e=0|e-1),f=b,d.__setDigit(g,e)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=g;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&b.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,f=b.length;let g=f;d<f&&(g=d);let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&~b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)|b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)^b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(b,c,d,e){if(0===c)return;const f=65535&c,g=c>>>16;let h=0,j=0,k=0;for(let l=0;l<b.length;l++,e++){let c=d.__digit(e),i=65535&c,m=c>>>16;const n=b.__digit(l),o=65535&n,p=n>>>16,q=a(o,f),r=a(o,g),s=a(p,f),t=a(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,c=65535&i|m<<16,d.__setDigit(e,c)}for(;0!=h||0!==j||0!==k;e++){let a=d.__digit(e);const b=(65535&a)+j,c=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=c>>>16,a=65535&b|c<<16,d.__setDigit(e,a)}}static __internalMultiplyAdd(b,c,d,e,f){let g=d,h=0;for(let j=0;j<e;j++){const d=b.__digit(j),e=a(65535&d,c),i=(65535&e)+h+g;g=i>>>16;const k=a(d>>>16,c),l=(65535&k)+(e>>>16)+g;g=l>>>16,h=k>>>16,f.__setDigit(j,l<<16|65535&i)}if(f.length>e)for(f.__setDigit(e++,g+h);e<f.length;)f.__setDigit(e++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(b,c,d){d>this.length&&(d=this.length);const e=65535&b,f=b>>>16;let g=0,h=65535&c,j=c>>>16;for(let k=0;k<d;k++){const b=this.__digit(k),c=65535&b,d=b>>>16,i=a(c,e),l=a(c,f),m=a(d,e),n=a(d,f),o=h+(65535&i),p=j+g+(o>>>16)+(i>>>16)+(65535&l)+(65535&m);h=(l>>>16)+(m>>>16)+(65535&n)+(p>>>16),g=h>>>16,h&=65535,j=n>>>16;this.__setDigit(k,65535&o|p<<16)}if(0!=g||0!==h||0!==j)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new e(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(b,d,f,g){const h=d.__halfDigitLength(),i=d.length,c=b.__halfDigitLength()-h;let k=null;f&&(k=new e(c+2>>>1,!1),k.__initializeDigits());const l=new e(h+2>>>1,!1);l.__initializeDigits();const m=e.__clz16(d.__halfDigit(h-1));0<m&&(d=e.__specialLeftShift(d,m,0));const n=e.__specialLeftShift(b,m,1),o=d.__halfDigit(h-1);let p=0;for(let m,q=c;0<=q;q--){m=65535;const b=n.__halfDigit(q+h);if(b!==o){const c=(b<<16|n.__halfDigit(q+h-1))>>>0;m=0|c/o;let e=0|c%o;const f=d.__halfDigit(h-2),g=n.__halfDigit(q+h-2);for(;a(m,f)>>>0>(e<<16|g)>>>0&&(m--,e+=o,!(65535<e)););}e.__internalMultiplyAdd(d,m,0,i,l);let g=n.__inplaceSub(l,q);0!==g&&(g=n.__inplaceAdd(d,q),n.__setHalfDigit(q+h,n.__halfDigit(q+h)+g),m--),f&&(1&q?p=m<<16:k.__setDigit(q>>>1,p|m))}return g?(n.__inplaceRightShift(m),f?{quotient:k,remainder:n}:n):f?k:void 0}static __clz16(a){return c(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,f=new e(d+c,!1);if(0===b){for(let b=0;b<d;b++)f.__setDigit(b,a.__digit(b));return 0<c&&f.__setDigit(d,0),f}let g=0;for(let e=0;e<d;e++){const c=a.__digit(e);f.__setDigit(e,c<<b|g),g=c>>>32-b}return 0<c&&f.__setDigit(d,g),f}static __leftShiftByAbsolute(a,b){const c=e.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const f=c>>>5,g=31&c,h=a.length,i=0!==g&&0!=a.__digit(h-1)>>>32-g,j=h+f+(i?1:0),k=new e(j,a.sign);if(0===g){let b=0;for(;b<f;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-f))}else{let b=0;for(let a=0;a<f;a++)k.__setDigit(a,0);for(let c=0;c<h;c++){const e=a.__digit(c);k.__setDigit(c+f,e<<g|b),b=e>>>32-g}if(i)k.__setDigit(h+f,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,f=e.__toShiftAmount(b);if(0>f)return e.__rightShiftByMaximum(d);const g=f>>>5,h=31&f;let i=c-g;if(0>=i)return e.__rightShiftByMaximum(d);let j=!1;if(d){if(0!=(a.__digit(g)&(1<<h)-1))j=!0;else for(let b=0;b<g;b++)if(0!==a.__digit(b)){j=!0;break}}if(j&&0===h){const b=a.__digit(c-1);0==~b&&i++}let k=new e(i,d);if(0===h)for(let b=g;b<c;b++)k.__setDigit(b-g,a.__digit(b));else{let b=a.__digit(g)>>>h;const d=c-g-1;for(let c=0;c<d;c++){const e=a.__digit(c+g+1);k.__setDigit(c,e<<32-h|b),b=e>>>h}k.__setDigit(d,b)}return j&&(k=e.__absoluteAddOne(k,!0,k)),k.__trim()}static __rightShiftByMaximum(a){return a?e.__oneDigit(1,!0):e.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>e.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===e)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const f=a.toString;if(f){const b=f.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return e.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===e}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}return e.__kMaxLength=33554432,e.__kMaxLengthBits=e.__kMaxLength<<5,e.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],e.__kBitsPerCharTableShift=5,e.__kBitsPerCharTableMultiplier=1<<e.__kBitsPerCharTableShift,e.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],e.__kBitConversionBuffer=new ArrayBuffer(8),e.__kBitConversionDouble=new Float64Array(e.__kBitConversionBuffer),e.__kBitConversionInts=new Int32Array(e.__kBitConversionBuffer),e});
(function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.JSBigInt=b()})(this,function(){"use strict";var a=Math.imul,b=Math.abs,c=Math.clz32,d=Math.max;class e extends Array{constructor(a,b){if(a>e.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");super(a),this.sign=b}static BigInt(a){var b=Math.floor,c=Number.isFinite;if("number"==typeof a){if(0===a)return e.__zero();if((0|a)===a)return 0>a?e.__oneDigit(-a,!0):e.__oneDigit(a,!1);if(!c(a)||b(a)!==a)throw new RangeError("The number "+a+" cannot be converted to BigInt because it is not an integer");return e.__fromDouble(a)}if("string"==typeof a){const b=e.__fromString(a);if(null===b)throw new SyntaxError("Cannot convert "+a+" to a BigInt");return b}if("boolean"==typeof a)return!0===a?e.__oneDigit(1,!1):e.__zero();if("object"==typeof a){if(a.constructor===e)return a;const b=e.__toPrimitive(a);return e.BigInt(b)}throw new TypeError("Cannot convert "+a+" to a BigInt")}toDebugString(){const a=["BigInt["];for(const b of this)a.push((b?b.toString(16):b)+", ");return a.push("]"),a.join("")}toString(a=10){if(2>a||36<a)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(a&a-1)?e.__toStringBasePowerOfTwo(this,a):e.__toStringGeneric(this,a,!1)}static toNumber(a){return e.__toNumber(a)}static unaryMinus(a){if(0===a.length)return a;const b=a.__copy();return b.sign=!a.sign,b}static bitwiseNot(a){return a.sign?e.__absoluteSubOne(a).__trim():e.__absoluteAddOne(a,!0)}static exponentiate(a,b){if(b.sign)throw new RangeError("Exponent must be positive");if(0===b.length)return e.__oneDigit(1,!1);if(0===a.length)return a;if(1===a.length&&1===a.__digit(0))return a.sign&&0==(1&b.__digit(0))?e.unaryMinus(a):a;if(1<b.length)throw new RangeError("BigInt too big");let c=b.__unsignedDigit(0);if(1===c)return a;if(c>=e.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===a.length&&2===a.__digit(0)){const b=1+(c>>>5),d=a.sign&&0!=(1&c),f=new e(b,d);f.__initializeDigits();const g=1<<(31&c);return f.__setDigit(b-1,g),f}let d=null,f=a;for(0!=(1&c)&&(d=a),c>>=1;0!==c;c>>=1)f=e.multiply(f,f),0!=(1&c)&&(null===d?d=f:d=e.multiply(d,f));return d}static multiply(a,b){if(0===a.length)return a;if(0===b.length)return b;let c=a.length+b.length;32<=a.__clzmsd()+b.__clzmsd()&&c--;const d=new e(c,a.sign!==b.sign);d.__initializeDigits();for(let c=0;c<a.length;c++)e.__multiplyAccumulate(b,a.__digit(c),d,c);return d.__trim()}static divide(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return e.__zero();const c=a.sign!==b.sign,d=b.__unsignedDigit(0);let f;if(1===b.length&&65535>=d){if(1===d)return c===a.sign?a:e.unaryMinus(a);f=e.__absoluteDivSmall(a,d,null)}else f=e.__absoluteDivLarge(a,b,!0,!1);return f.sign=c,f.__trim()}static remainder(a,b){if(0===b.length)throw new RangeError("Division by zero");if(0>e.__absoluteCompare(a,b))return a;const c=b.__unsignedDigit(0);if(1===b.length&&65535>=c){if(1===c)return e.__zero();const b=e.__absoluteModSmall(a,c);return 0===b?e.__zero():e.__oneDigit(b,a.sign)}const d=e.__absoluteDivLarge(a,b,!1,!0);return d.sign=a.sign,d.__trim()}static add(a,b){const c=a.sign;return c===b.sign?e.__absoluteAdd(a,b,c):0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c)}static subtract(a,b){const c=a.sign;return c===b.sign?0<=e.__absoluteCompare(a,b)?e.__absoluteSub(a,b,c):e.__absoluteSub(b,a,!c):e.__absoluteAdd(a,b,c)}static leftShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__rightShiftByAbsolute(a,b):e.__leftShiftByAbsolute(a,b)}static signedRightShift(a,b){return 0===b.length||0===a.length?a:b.sign?e.__leftShiftByAbsolute(a,b):e.__rightShiftByAbsolute(a,b)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(a,b){return 0>e.__compareToBigInt(a,b)}static lessThanOrEqual(a,b){return 0>=e.__compareToBigInt(a,b)}static greaterThan(a,b){return 0<e.__compareToBigInt(a,b)}static greaterThanOrEqual(a,b){return 0<=e.__compareToBigInt(a,b)}static equal(a,b){if(a.sign!==b.sign)return!1;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a.__digit(c)!==b.__digit(c))return!1;return!0}static bitwiseAnd(a,b){if(!a.sign&&!b.sign)return e.__absoluteAnd(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length)+1;let f=e.__absoluteSubOne(a,c);const g=e.__absoluteSubOne(b);return f=e.__absoluteOr(f,g,f),e.__absoluteAddOne(f,!0,f).__trim()}return a.sign&&([a,b]=[b,a]),e.__absoluteAndNot(a,e.__absoluteSubOne(b)).__trim()}static bitwiseXor(a,b){if(!a.sign&&!b.sign)return e.__absoluteXor(a,b).__trim();if(a.sign&&b.sign){const c=d(a.length,b.length),f=e.__absoluteSubOne(a,c),g=e.__absoluteSubOne(b);return e.__absoluteXor(f,g,f).__trim()}const c=d(a.length,b.length)+1;a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteXor(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static bitwiseOr(a,b){const c=d(a.length,b.length);if(!a.sign&&!b.sign)return e.__absoluteOr(a,b).__trim();if(a.sign&&b.sign){let d=e.__absoluteSubOne(a,c);const f=e.__absoluteSubOne(b);return d=e.__absoluteAnd(d,f,d),e.__absoluteAddOne(d,!0,d).__trim()}a.sign&&([a,b]=[b,a]);let f=e.__absoluteSubOne(b,c);return f=e.__absoluteAndNot(f,a,f),e.__absoluteAddOne(f,!0,f).__trim()}static ADD(a,b){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a)return"string"!=typeof b&&(b=b.toString()),a+b;if("string"==typeof b)return a.toString()+b;if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)&&e.__isBigInt(b))return e.add(a,b);if("number"==typeof a&&"number"==typeof b)return a+b;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(a,b){return e.__compare(a,b,0)}static LE(a,b){return e.__compare(a,b,1)}static GT(a,b){return e.__compare(a,b,2)}static GE(a,b){return e.__compare(a,b,3)}static EQ(a,b){for(;;){if(e.__isBigInt(a))return e.__isBigInt(b)?e.equal(a,b):e.EQ(b,a);if("number"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("string"==typeof a){if(e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.equal(a,b);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("boolean"==typeof a){if(e.__isBigInt(b))return e.__equalToNumber(b,+a);if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("symbol"==typeof a){if(e.__isBigInt(b))return!1;if("object"!=typeof b)return a==b;b=e.__toPrimitive(b)}else if("object"==typeof a){if("object"==typeof b&&b.constructor!==e)return a==b;a=e.__toPrimitive(a)}else return a==b}}static useNativeBigIntsIfAvailable(){if("function"==typeof BigInt){if(BigInt===e.BigInt)throw new Error("This method must be called *before* `BigInt = JSBI.BigInt`!");e.BigInt=function(a){return new e(0,BigInt(a))},e.unaryMinus=function(a){return new e(0,-a.sign)},e.bitwiseNot=function(a){return new e(0,~a.sign)},e.exponentiate=function(a,b){return new e(0,a.sign**b.sign)},e.multiply=function(a,b){return new e(0,a.sign*b.sign)},e.divide=function(a,b){return new e(0,a.sign/b.sign)},e.remainder=function(a,b){return new e(0,a.sign%b.sign)},e.add=function(a,b){return new e(0,a.sign+b.sign)},e.subtract=function(a,b){return new e(0,a.sign-b.sign)},e.leftShift=function(a,b){return new e(0,a.sign<<b.sign)},e.signedRightShift=function(a,b){return new e(0,a.sign>>b.sign)},e.lessThan=function(a,b){return a.sign<b.sign},e.equal=function(a,b){return a.sign===b.sign},e.bitwiseAnd=function(a,b){return new e(0,a.sign&b.sign)},e.bitwiseXor=function(a,b){return new e(0,a.sign^b.sign)},e.bitwiseOr=function(a,b){return new e(0,a.sign|b.sign)},e.toString=function(a){return this.sign.toString(a)},e.toNumber=function(a){return+a.sign},e.ADD=function(a,b){e.__isBigInt(a)&&(a=a.sign),e.__isBigInt(b)&&(b=b.sign);const c=a+b;return"bigint"==typeof c?new e(0,c):c},e.LT=function(a,b){return a<b},e.LE=function(a,b){return a<=b},e.GT=function(a,b){return a>b},e.GE=function(a,b){return a>=b},e.EQ=function(a,b){return a==b}}}static __zero(){return new e(0,!1)}static __oneDigit(a,b){const c=new e(1,b);return c.__setDigit(0,a),c}__copy(){const a=new e(this.length,this.sign);for(let b=0;b<this.length;b++)a[b]=this[b];return a}__trim(){let a=this.length,b=this[a-1];for(;0===b;)a--,b=this[a-1],this.pop();return 0===a&&(this.sign=!1),this}__initializeDigits(){for(let a=0;a<this.length;a++)this[a]=0}static __toNumber(a){const b=a.length;if(0===b)return 0;if(1===b){const b=a.__unsignedDigit(0);return a.sign?-b:b}const d=a.__digit(b-1),f=c(d),g=32*b-f;if(1024<g)return a.sign?-Infinity:1/0;let h=g-1,i=d,j=b-1;const k=f+1;let l=32===k?0:i<<k;l>>>=12;const m=k-12;let n=12<=k?0:i<<20+k,o=20+k;0<m&&0<j&&(j--,i=a.__digit(j),l|=i>>>32-m,n=i<<m,o=m),0<o&&0<j&&(j--,i=a.__digit(j),n|=i>>>32-o,o-=32);const p=e.__decideRounding(a,o,j,i);if((1===p||0===p&&1==(1&n))&&(n=n+1>>>0,0==n&&(l++,0!=l>>>20&&(l=0,h++,1023<h))))return a.sign?-Infinity:1/0;const q=a.sign?-2147483648:0;return h=h+1023<<20,e.__kBitConversionInts[1]=q|h|l,e.__kBitConversionInts[0]=n,e.__kBitConversionDouble[0]}static __decideRounding(a,b,c,d){if(0<b)return-1;let e;if(0>b)e=-b-1;else{if(0===c)return-1;c--,d=a.__digit(c),e=31}let f=1<<e;if(0==(d&f))return-1;if(f-=1,0!=(d&f))return 1;for(;0<c;)if(c--,0!==a.__digit(c))return 1;return 0}static __fromDouble(a){e.__kBitConversionDouble[0]=a;const b=2047&e.__kBitConversionInts[1]>>>20,c=b-1023,d=(c>>>5)+1,f=new e(d,0>a);let g=1048575&e.__kBitConversionInts[1]|1048576,h=e.__kBitConversionInts[0];const i=20,j=31&c;let k,l=0;if(20>j){const a=i-j;l=a+32,k=g>>>a,g=g<<32-a|h>>>a,h<<=32-a}else if(20===j)l=32,k=g,g=h;else{const a=j-i;l=32-a,k=g<<a|h>>>32-a,g=h<<a}f.__setDigit(d-1,k);for(let b=d-2;0<=b;b--)0<l?(l-=32,k=g,g=h):k=0,f.__setDigit(b,k);return f.__trim()}static __iswhitespace(a){return!!(13>=a&&9<=a)||(159>=a?32==a:131071>=a?160==a||5760==a:196607>=a?(a&=131071,10>=a||40==a||41==a||47==a||95==a||4096==a):65279==a)}static __fromString(a,b=0){let c=0;const f=a.length;let g=0;if(g===f)return e.__zero();let h=a.charCodeAt(g);for(;e.__iswhitespace(h);){if(++g===f)return e.__zero();h=a.charCodeAt(g)}if(43===h){if(++g===f)return null;h=a.charCodeAt(g),c=1}else if(45===h){if(++g===f)return null;h=a.charCodeAt(g),c=-1}if(0===b){if(b=10,48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(b=16,++g===f)return null;h=a.charCodeAt(g)}else if(79===h||111===h){if(b=8,++g===f)return null;h=a.charCodeAt(g)}else if(66===h||98===h){if(b=2,++g===f)return null;h=a.charCodeAt(g)}}}else if(16===b&&48===h){if(++g===f)return e.__zero();if(h=a.charCodeAt(g),88===h||120===h){if(++g===f)return null;h=a.charCodeAt(g)}}for(;48===h;){if(++g===f)return e.__zero();h=a.charCodeAt(g)}const i=f-g;let j=e.__kMaxBitsPerChar[b],k=e.__kBitsPerCharTableMultiplier-1;if(i>1073741824/j)return null;const l=j*i+k>>>e.__kBitsPerCharTableShift,m=new e(l+31>>>5,!1),n=10>b?b:10,o=10<b?b-10:0;if(0==(b&b-1)){j>>=e.__kBitsPerCharTableShift;const b=[],c=[];let d=!1;do{let e=0,i=0;for(;;){let b;if(h-48>>>0<n)b=h-48;else if((32|h)-97>>>0<o)b=(32|h)-87;else{d=!0;break}if(i+=j,e=e<<j|b,++g===f){d=!0;break}if(h=a.charCodeAt(g),32<i+j)break}b.push(e),c.push(i)}while(!d);e.__fillFromParts(m,b,c)}else{m.__initializeDigits();let c=!1,i=0;do{let l=0,p=1;for(;;){let e;if(h-48>>>0<n)e=h-48;else if((32|h)-97>>>0<o)e=(32|h)-87;else{c=!0;break}const d=p*b;if(4294967295<d)break;if(p=d,l=l*b+e,i++,++g===f){c=!0;break}h=a.charCodeAt(g)}k=32*e.__kBitsPerCharTableMultiplier-1;const q=j*i+k>>>e.__kBitsPerCharTableShift+5;m.__inplaceMultiplyAdd(p,l,q)}while(!c)}for(;g!==f;){if(!e.__iswhitespace(h))return null;h=a.charCodeAt(g++)}return 0!=c&&10!==b?null:(m.sign=-1==c,m.__trim())}static __fillFromParts(a,b,c){let d=0,e=0,f=0;for(let g=b.length-1;0<=g;g--){const h=b[g],i=c[g];e|=h<<f,f+=i,32===f?(a.__setDigit(d++,e),f=0,e=0):32<f&&(a.__setDigit(d++,e),f-=32,e=h>>>i-f)}if(0!==e){if(d>=a.length)throw new Error("implementation bug");a.__setDigit(d++,e)}for(;d<a.length;d++)a.__setDigit(d,0)}static __toStringBasePowerOfTwo(a,b){const d=a.length;let f=b-1;f=(85&f>>>1)+(85&f),f=(51&f>>>2)+(51&f),f=(15&f>>>4)+(15&f);const g=f,h=b-1,i=a.__digit(d-1),j=c(i);let k=0|(32*d-j+g-1)/g;if(a.sign&&k++,268435456<k)throw new Error("string too long");const l=Array(k);let m=k-1,n=0,o=0;for(let c=0;c<d-1;c++){const b=a.__digit(c),d=(n|b<<o)&h;l[m--]=e.__kConversionChars[d];const f=g-o;for(n=b>>>f,o=32-f;o>=g;)l[m--]=e.__kConversionChars[n&h],n>>>=g,o-=g}const p=(n|i<<o)&h;for(l[m--]=e.__kConversionChars[p],n=i>>>g-o;0!==n;)l[m--]=e.__kConversionChars[n&h],n>>>=g;if(a.sign&&(l[m--]="-"),-1!=m)throw new Error("implementation bug");return l.join("")}static __toStringGeneric(a,b,d){const f=a.length;if(0===f)return"";if(1===f){let c=a.__unsignedDigit(0).toString(b);return!1===d&&a.sign&&(c="-"+c),c}const g=32*f-c(a.__digit(f-1)),h=e.__kMaxBitsPerChar[b],i=h-1;let j=g*e.__kBitsPerCharTableMultiplier;j+=i-1,j=0|j/i;const k=j+1>>1,l=e.exponentiate(e.__oneDigit(b,!1),e.__oneDigit(k,!1));let m,n;const o=l.__unsignedDigit(0);if(1===l.length&&65535>=o){m=new e(a.length,!1),m.__initializeDigits();let c=0;for(let b=2*a.length-1;0<=b;b--){const d=c<<16|a.__halfDigit(b);m.__setHalfDigit(b,0|d/o),c=0|d%o}n=c.toString(b)}else{const c=e.__absoluteDivLarge(a,l,!0,!0);m=c.quotient;const d=c.remainder.__trim();n=e.__toStringGeneric(d,b,!0)}m.__trim();let p=e.__toStringGeneric(m,b,!0);for(;n.length<k;)n="0"+n;return!1===d&&a.sign&&(p="-"+p),p+n}static __unequalSign(a){return a?-1:1}static __absoluteGreater(a){return a?-1:1}static __absoluteLess(a){return a?1:-1}static __compareToBigInt(a,b){const c=a.sign;if(c!==b.sign)return e.__unequalSign(c);const d=e.__absoluteCompare(a,b);return 0<d?e.__absoluteGreater(c):0>d?e.__absoluteLess(c):0}static __compareToNumber(a,c){if(!0|c){const d=a.sign,f=0>c;if(d!==f)return e.__unequalSign(d);if(0===a.length){if(f)throw new Error("implementation bug");return 0===c?0:-1}if(1<a.length)return e.__absoluteGreater(d);const g=b(c),h=a.__unsignedDigit(0);return h>g?e.__absoluteGreater(d):h<g?e.__absoluteLess(d):0}return e.__compareToDouble(a,c)}static __compareToDouble(a,b){if(b!==b)return b;if(b===1/0)return-1;if(b===-Infinity)return 1;const d=a.sign;if(d!==0>b)return e.__unequalSign(d);if(0===b)throw new Error("implementation bug: should be handled elsewhere");if(0===a.length)return-1;e.__kBitConversionDouble[0]=b;const f=2047&e.__kBitConversionInts[1]>>>20;if(2047==f)throw new Error("implementation bug: handled elsewhere");const g=f-1023;if(0>g)return e.__absoluteGreater(d);const h=a.length;let i=a.__digit(h-1);const j=c(i),k=32*h-j,l=g+1;if(k<l)return e.__absoluteLess(d);if(k>l)return e.__absoluteGreater(d);let m=1048576|1048575&e.__kBitConversionInts[1],n=e.__kBitConversionInts[0];const o=20,p=31-j;if(p!==(k-1)%31)throw new Error("implementation bug");let q,r=0;if(20>p){const a=o-p;r=a+32,q=m>>>a,m=m<<32-a|n>>>a,n<<=32-a}else if(20===p)r=32,q=m,m=n;else{const a=p-o;r=32-a,q=m<<a|n>>>32-a,m=n<<a}if(i>>>=0,q>>>=0,i>q)return e.__absoluteGreater(d);if(i<q)return e.__absoluteLess(d);for(let c=h-2;0<=c;c--){0<r?(r-=32,q=m>>>0,m=n,n=0):q=0;const b=a.__unsignedDigit(c);if(b>q)return e.__absoluteGreater(d);if(b<q)return e.__absoluteLess(d)}if(0!==m||0!==n){if(0===r)throw new Error("implementation bug");return e.__absoluteLess(d)}return 0}static __equalToNumber(a,c){return c|0===c?0===c?0===a.length:1===a.length&&a.sign===0>c&&a.__unsignedDigit(0)===b(c):0===e.__compareToDouble(a,c)}static __comparisonResultToBool(a,b){switch(b){case 0:return 0>a;case 1:return 0>=a;case 2:return 0<a;case 3:return 0<=a;}throw new Error("unreachable")}static __compare(a,b,c){if(a=e.__toPrimitive(a),b=e.__toPrimitive(b),"string"==typeof a&&"string"==typeof b)switch(c){case 0:return a<b;case 1:return a<=b;case 2:return a>b;case 3:return a>=b;}if(e.__isBigInt(a)&&"string"==typeof b)return b=e.__fromString(b),null!==b&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("string"==typeof a&&e.__isBigInt(b))return a=e.__fromString(a),null!==a&&e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if(a=e.__toNumeric(a),b=e.__toNumeric(b),e.__isBigInt(a)){if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToBigInt(a,b),c);if("number"!=typeof b)throw new Error("implementation bug");return e.__comparisonResultToBool(e.__compareToNumber(a,b),c)}if("number"!=typeof a)throw new Error("implementation bug");if(e.__isBigInt(b))return e.__comparisonResultToBool(e.__compareToNumber(b,a),2^c);if("number"!=typeof b)throw new Error("implementation bug");return 0===c?a<b:1===c?a<=b:2===c?a>b:3===c?a>=b:void 0}__clzmsd(){return c(this[this.length-1])}static __absoluteAdd(a,b,c){if(a.length<b.length)return e.__absoluteAdd(b,a,c);if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);let d=a.length;(0===a.__clzmsd()||b.length===a.length&&0===b.__clzmsd())&&d++;const f=new e(d,c);let g=0,h=0;for(;h<b.length;h++){const c=b.__digit(h),d=a.__digit(h),e=(65535&d)+(65535&c)+g,i=(d>>>16)+(c>>>16)+(e>>>16);g=i>>>16,f.__setDigit(h,65535&e|i<<16)}for(;h<a.length;h++){const b=a.__digit(h),c=(65535&b)+g,d=(b>>>16)+(c>>>16);g=d>>>16,f.__setDigit(h,65535&c|d<<16)}return h<f.length&&f.__setDigit(h,g),f.__trim()}static __absoluteSub(a,b,c){if(0===a.length)return a;if(0===b.length)return a.sign===c?a:e.unaryMinus(a);const d=new e(a.length,c);let f=0,g=0;for(;g<b.length;g++){const c=a.__digit(g),e=b.__digit(g),h=(65535&c)-(65535&e)-f;f=1&h>>>16;const i=(c>>>16)-(e>>>16)-f;f=1&i>>>16,d.__setDigit(g,65535&h|i<<16)}for(;g<a.length;g++){const b=a.__digit(g),c=(65535&b)-f;f=1&c>>>16;const e=(b>>>16)-f;f=1&e>>>16,d.__setDigit(g,65535&c|e<<16)}return d.__trim()}static __absoluteAddOne(a,b,c=null){const d=a.length;null===c?c=new e(d,b):c.sign=b;let f=!0;for(let e,g=0;g<d;g++){e=a.__digit(g);const b=-1===e;f&&(e=0|e+1),f=b,c.__setDigit(g,e)}return f&&c.__setDigitGrow(d,1),c}static __absoluteSubOne(a,b){const c=a.length;b=b||c;const d=new e(b,!1);let f=!0;for(let e,g=0;g<c;g++){e=a.__digit(g);const b=0===e;f&&(e=0|e-1),f=b,d.__setDigit(g,e)}for(let e=c;e<b;e++)d.__setDigit(e,0);return d}static __absoluteAnd(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=g;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&b.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteAndNot(a,b,c=null){const d=a.length,f=b.length;let g=f;d<f&&(g=d);let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)&~b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteOr(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)|b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteXor(a,b,c=null){let d=a.length,f=b.length,g=f;if(d<f){g=d;const c=a,e=d;a=b,d=f,b=c,f=e}let h=d;null===c?c=new e(h,!1):h=c.length;let j=0;for(;j<g;j++)c.__setDigit(j,a.__digit(j)^b.__digit(j));for(;j<d;j++)c.__setDigit(j,a.__digit(j));for(;j<h;j++)c.__setDigit(j,0);return c}static __absoluteCompare(a,b){const c=a.length-b.length;if(0!=c)return c;let d=a.length-1;for(;0<=d&&a.__digit(d)===b.__digit(d);)d--;return 0>d?0:a.__unsignedDigit(d)>b.__unsignedDigit(d)?1:-1}static __multiplyAccumulate(b,c,d,e){if(0===c)return;const f=65535&c,g=c>>>16;let h=0,j=0,k=0;for(let l=0;l<b.length;l++,e++){let c=d.__digit(e),i=65535&c,m=c>>>16;const n=b.__digit(l),o=65535&n,p=n>>>16,q=a(o,f),r=a(o,g),s=a(p,f),t=a(p,g);i+=j+(65535&q),m+=k+h+(i>>>16)+(q>>>16)+(65535&r)+(65535&s),h=m>>>16,j=(r>>>16)+(s>>>16)+(65535&t)+h,h=j>>>16,j&=65535,k=t>>>16,c=65535&i|m<<16,d.__setDigit(e,c)}for(;0!=h||0!==j||0!==k;e++){let a=d.__digit(e);const b=(65535&a)+j,c=(a>>>16)+(b>>>16)+k+h;j=0,k=0,h=c>>>16,a=65535&b|c<<16,d.__setDigit(e,a)}}static __internalMultiplyAdd(b,c,d,e,f){let g=d,h=0;for(let j=0;j<e;j++){const d=b.__digit(j),e=a(65535&d,c),i=(65535&e)+h+g;g=i>>>16;const k=a(d>>>16,c),l=(65535&k)+(e>>>16)+g;g=l>>>16,h=k>>>16,f.__setDigit(j,l<<16|65535&i)}if(f.length>e)for(f.__setDigit(e++,g+h);e<f.length;)f.__setDigit(e++,0);else if(0!==g+h)throw new Error("implementation bug")}__inplaceMultiplyAdd(b,c,d){d>this.length&&(d=this.length);const e=65535&b,f=b>>>16;let g=0,h=65535&c,j=c>>>16;for(let k=0;k<d;k++){const b=this.__digit(k),c=65535&b,d=b>>>16,i=a(c,e),l=a(c,f),m=a(d,e),n=a(d,f),o=h+(65535&i),p=j+g+(o>>>16)+(i>>>16)+(65535&l)+(65535&m);h=(l>>>16)+(m>>>16)+(65535&n)+(p>>>16),g=h>>>16,h&=65535,j=n>>>16;this.__setDigit(k,65535&o|p<<16)}if(0!=g||0!==h||0!==j)throw new Error("implementation bug")}static __absoluteDivSmall(a,b,c){null===c&&(c=new e(a.length,!1));let d=0;for(let e,f=2*a.length-1;0<=f;f-=2){e=(d<<16|a.__halfDigit(f))>>>0;const g=0|e/b;d=0|e%b,e=(d<<16|a.__halfDigit(f-1))>>>0;const h=0|e/b;d=0|e%b,c.__setDigit(f>>>1,g<<16|h)}return c}static __absoluteModSmall(a,b){let c=0;for(let d=2*a.length-1;0<=d;d--){const e=(c<<16|a.__halfDigit(d))>>>0;c=0|e%b}return c}static __absoluteDivLarge(b,d,f,g){const h=d.__halfDigitLength(),i=d.length,c=b.__halfDigitLength()-h;let k=null;f&&(k=new e(c+2>>>1,!1),k.__initializeDigits());const l=new e(h+2>>>1,!1);l.__initializeDigits();const m=e.__clz16(d.__halfDigit(h-1));0<m&&(d=e.__specialLeftShift(d,m,0));const n=e.__specialLeftShift(b,m,1),o=d.__halfDigit(h-1);let p=0;for(let m,q=c;0<=q;q--){m=65535;const b=n.__halfDigit(q+h);if(b!==o){const c=(b<<16|n.__halfDigit(q+h-1))>>>0;m=0|c/o;let e=0|c%o;const f=d.__halfDigit(h-2),g=n.__halfDigit(q+h-2);for(;a(m,f)>>>0>(e<<16|g)>>>0&&(m--,e+=o,!(65535<e)););}e.__internalMultiplyAdd(d,m,0,i,l);let g=n.__inplaceSub(l,q);0!==g&&(g=n.__inplaceAdd(d,q),n.__setHalfDigit(q+h,n.__halfDigit(q+h)+g),m--),f&&(1&q?p=m<<16:k.__setDigit(q>>>1,p|m))}return g?(n.__inplaceRightShift(m),f?{quotient:k,remainder:n}:n):f?k:void 0}static __clz16(a){return c(a)-16}__inplaceAdd(a,b){let c=0;const d=a.__halfDigitLength();for(let e=0;e<d;e++){const d=this.__halfDigit(b+e)+a.__halfDigit(e)+c;c=d>>>16,this.__setHalfDigit(b+e,d)}return c}__inplaceSub(a,b){let c=0;if(1&b){b>>=1;let d=this.__digit(b),e=65535&d,f=0;for(;f<a.length-1;f++){const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e),d=this.__digit(b+f+1),e=(65535&d)-(g>>>16)-c,c=1&e>>>16}const g=a.__digit(f),h=(d>>>16)-(65535&g)-c;c=1&h>>>16,this.__setDigit(b+f,h<<16|65535&e);const i=g>>>16;if(b+f+1>=this.length)throw new RangeError("out of bounds");d=this.__digit(b+f+1),(0!=i||0!==d)&&(e=(65535&d)-i-c,c=1&e>>>16,this.__setDigit(b+a.length,4294901760&d|65535&e))}else{b>>=1;for(let d=0;d<a.length;d++){const e=this.__digit(b+d),f=a.__digit(d),g=(65535&e)-(65535&f)-c;c=1&g>>>16;const h=(e>>>16)-(f>>>16)-c;c=1&h>>>16,this.__setDigit(b+d,h<<16|65535&g)}}return c}__inplaceRightShift(a){if(0===a)return;let b=this.__digit(0)>>>a;const c=this.length-1;for(let e=0;e<c;e++){const c=this.__digit(e+1);this.__setDigit(e,c<<32-a|b),b=c>>>a}this.__setDigit(c,b)}static __specialLeftShift(a,b,c){const d=a.length,f=new e(d+c,!1);if(0===b){for(let b=0;b<d;b++)f.__setDigit(b,a.__digit(b));return 0<c&&f.__setDigit(d,0),f}let g=0;for(let e=0;e<d;e++){const c=a.__digit(e);f.__setDigit(e,c<<b|g),g=c>>>32-b}return 0<c&&f.__setDigit(d,g),f}static __leftShiftByAbsolute(a,b){const c=e.__toShiftAmount(b);if(0>c)throw new RangeError("BigInt too big");const f=c>>>5,g=31&c,h=a.length,i=0!==g&&0!=a.__digit(h-1)>>>32-g,j=h+f+(i?1:0),k=new e(j,a.sign);if(0===g){let b=0;for(;b<f;b++)k.__setDigit(b,0);for(;b<j;b++)k.__setDigit(b,a.__digit(b-f))}else{let b=0;for(let a=0;a<f;a++)k.__setDigit(a,0);for(let c=0;c<h;c++){const e=a.__digit(c);k.__setDigit(c+f,e<<g|b),b=e>>>32-g}if(i)k.__setDigit(h+f,b);else if(0!=b)throw new Error("implementation bug")}return k.__trim()}static __rightShiftByAbsolute(a,b){const c=a.length,d=a.sign,f=e.__toShiftAmount(b);if(0>f)return e.__rightShiftByMaximum(d);const g=f>>>5,h=31&f;let i=c-g;if(0>=i)return e.__rightShiftByMaximum(d);let j=!1;if(d){if(0!=(a.__digit(g)&(1<<h)-1))j=!0;else for(let b=0;b<g;b++)if(0!==a.__digit(b)){j=!0;break}}if(j&&0===h){const b=a.__digit(c-1);0==~b&&i++}let k=new e(i,d);if(0===h)for(let b=g;b<c;b++)k.__setDigit(b-g,a.__digit(b));else{let b=a.__digit(g)>>>h;const d=c-g-1;for(let c=0;c<d;c++){const e=a.__digit(c+g+1);k.__setDigit(c,e<<32-h|b),b=e>>>h}k.__setDigit(d,b)}return j&&(k=e.__absoluteAddOne(k,!0,k)),k.__trim()}static __rightShiftByMaximum(a){return a?e.__oneDigit(1,!0):e.__zero()}static __toShiftAmount(a){if(1<a.length)return-1;const b=a.__unsignedDigit(0);return b>e.__kMaxLengthBits?-1:b}static __toPrimitive(a,b="default"){if("object"!=typeof a)return a;if(a.constructor===e)return a;const c=a[Symbol.toPrimitive];if(c){const a=c(b);if("object"!=typeof a)return a;throw new TypeError("Cannot convert object to primitive value")}const d=a.valueOf;if(d){const b=d.call(a);if("object"!=typeof b)return b}const f=a.toString;if(f){const b=f.call(a);if("object"!=typeof b)return b}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(a){return e.__isBigInt(a)?a:+a}static __isBigInt(a){return"object"==typeof a&&a.constructor===e}__digit(a){return this[a]}__unsignedDigit(a){return this[a]>>>0}__setDigit(a,b){this[a]=0|b}__setDigitGrow(a,b){this[a]=0|b}__halfDigitLength(){const a=this.length;return 65535>=this.__unsignedDigit(a-1)?2*a-1:2*a}__halfDigit(a){return 65535&this[a>>>1]>>>((1&a)<<4)}__setHalfDigit(a,b){const c=a>>>1,d=this.__digit(c),e=1&a?65535&d|b<<16:4294901760&d|65535&b;this.__setDigit(c,e)}static __digitPow(a,b){let c=1;for(;0<b;)1&b&&(c*=a),b>>>=1,a*=a;return c}}return e.__kMaxLength=33554432,e.__kMaxLengthBits=e.__kMaxLength<<5,e.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],e.__kBitsPerCharTableShift=5,e.__kBitsPerCharTableMultiplier=1<<e.__kBitsPerCharTableShift,e.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],e.__kBitConversionBuffer=new ArrayBuffer(8),e.__kBitConversionDouble=new Float64Array(e.__kBitConversionBuffer),e.__kBitConversionInts=new Int32Array(e.__kBitConversionBuffer),e});
{
"name": "jsbi",
"version": "2.0.0",
"version": "2.0.1",
"devDependencies": {

@@ -5,0 +5,0 @@ "eslint": "^5.4.0",

@@ -61,3 +61,3 @@ # JSBI — pure-JavaScript BigInts [![Build status](https://travis-ci.com/GoogleChromeLabs/jsbi.svg?branch=master)](https://travis-ci.com/GoogleChromeLabs/jsbi)

| Division | `c = a / b` | `c = JSBI.divide(a, b)` |
| Modulus | `c = a % b` | `c = JSBI.remainder(a, b)` |
| Remainder | `c = a % b` | `c = JSBI.remainder(a, b)` |
| Exponentiation | `c = a ** b` | `c = JSBI.exponentiate(a, b)` |

@@ -64,0 +64,0 @@ | Negation | `b = -a` | `b = JSBI.unaryMinus(a, )` |

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc