+59
-33
@@ -129,3 +129,2 @@ /** | ||
| return IntN.fromInts([val.low, val.high], val.unsigned); // for Long.js v1 compatibility | ||
| // Throws for not an object (undefined, null) bytes not an array (in constructor), | ||
@@ -630,12 +629,11 @@ // fills smaller, truncates larger N (does not respect sign if differing): | ||
| /** | ||
| * Adds the specified to this IntN and returns the result. | ||
| * @param {!IntN|number|string} other Other number | ||
| * Adds the specified IntNs and returns the sum. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| var carry = this.and(other), | ||
| result = this.xor(other), | ||
| IntN.add = function(a, b) { | ||
| var carry = a.and(b), | ||
| result = a.xor(b), | ||
| carryPwr2; | ||
@@ -652,2 +650,14 @@ // There seem to be no performance benefits testing against == 0 or == 1 (test probably too costly in avg). | ||
| /** | ||
| * Adds the specified to this IntN and returns the sum. | ||
| * @param {!IntN|number|string} other Other number | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| return IntN.add(this, other); | ||
| }; | ||
| /** | ||
| * Negates this IntN (*-1) and returns the result. | ||
@@ -658,3 +668,3 @@ * @returns {!IntN} | ||
| IntN.prototype.negate = function() { | ||
| return this.not().add(IntN.ONE); | ||
| return IntN.add(this.not(), IntN.ONE); | ||
| }; | ||
@@ -671,3 +681,3 @@ | ||
| /** | ||
| * Subtracts the specified from this IntN and returns the result. | ||
| * Subtracts the specified from this IntN and returns the difference. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -680,3 +690,3 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| return this.add(other.negate()); | ||
| return IntN.add(this, other.negate()); | ||
| }; | ||
@@ -696,3 +706,22 @@ | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the result. | ||
| * Multiplies the specified IntNs and returns the product. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.multiply = function(a, b) { | ||
| // See comment in add above | ||
| var isNegative = a.isNegative() !== b.isNegative(), | ||
| result = a.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| a = a.absolute(); | ||
| b = b.absolute(); | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = IntN.add(result, a); | ||
| return isNegative ? result.negate() : result; | ||
| }; | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the product. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -705,16 +734,8 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| // See comment in #add above | ||
| var isNegative = this.isNegative() !== other.isNegative(), | ||
| a = this.absolute(), | ||
| b = other.absolute(), | ||
| result = this.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = result.add(a); | ||
| return isNegative ? result.negate() : result; | ||
| return IntN.multiply(this, other); | ||
| }; | ||
| /** | ||
| * Divides the specified dividend by the specified divisor. This method is used internally by {@link IntN#divide} | ||
| * and {@link IntN#modulo} and is exposed statically in case both the result and the remainder are required. | ||
| * Divides the specified dividend by the specified divisor and returns both the quotient and the remainder. Does | ||
| * not type check arguments. | ||
| * @param {!IntN} dividend | ||
@@ -728,3 +749,3 @@ * @param {!IntN} divisor | ||
| throw Error("division by zero"); | ||
| // See comment in #add multiply | ||
| // See comment in #add above | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
@@ -741,4 +762,4 @@ quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| if (product.lessThanEqual(remainder)) | ||
| quotient = quotient.add(term), | ||
| remainder = remainder.subtract(product); | ||
| quotient = IntN.add(quotient, term), | ||
| remainder = IntN.add(remainder, product.negate()); | ||
| product = product.shiftRight(1, true); | ||
@@ -754,3 +775,3 @@ term = term.shiftRight(1, true); | ||
| /** | ||
| * Divides this IntN by the specified and returns the result. | ||
| * Divides this IntN by the specified and returns the quotient. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -767,3 +788,3 @@ * @returns {!IntN} | ||
| /** | ||
| * Returns the remainder of the division of this IntN by the specified. | ||
| * Divides this IntN by the specified and returns the remainder. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -853,3 +874,3 @@ * @returns {!IntN} | ||
| throw Error("illegal interior character: "+ch); | ||
| result = result.add(IntN.fromInt(val).multiply(IntN.fromInt(radixToPower(i)))); | ||
| result = IntN.add(result, IntN.multiply(IntN.fromInt(val), IntN.fromInt(radixToPower(i)))); | ||
| } | ||
@@ -876,3 +897,3 @@ return result; | ||
| var div = IntN.divide(this, radix)['quotient'], | ||
| rem = div.multiply(radix).subtract(this); | ||
| rem = IntN.add(IntN.multiply(div, radix), this.negate()); | ||
| return div.toString(radix) + rem.toInt().toString(radix.toInt()); | ||
@@ -887,3 +908,3 @@ } | ||
| do | ||
| mod = result.modulo(radix), | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
@@ -898,5 +919,10 @@ result = IntN.divide(result, radix)['quotient']; | ||
| for (var key in aliases) | ||
| if (aliases.hasOwnProperty(key)) | ||
| if (aliases.hasOwnProperty(key)) { | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| if (IntN[key]) | ||
| IntN[aliases[key][i]] = IntN[key]; | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| if (IntN.prototype[key]) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| } | ||
@@ -903,0 +929,0 @@ return classes[nBits] = IntN; |
+59
-33
@@ -147,3 +147,2 @@ /* | ||
| return IntN.fromInts([val.low, val.high], val.unsigned); // for Long.js v1 compatibility | ||
| // Throws for not an object (undefined, null) bytes not an array (in constructor), | ||
@@ -648,12 +647,11 @@ // fills smaller, truncates larger N (does not respect sign if differing): | ||
| /** | ||
| * Adds the specified to this IntN and returns the result. | ||
| * @param {!IntN|number|string} other Other number | ||
| * Adds the specified IntNs and returns the sum. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| var carry = this.and(other), | ||
| result = this.xor(other), | ||
| IntN.add = function(a, b) { | ||
| var carry = a.and(b), | ||
| result = a.xor(b), | ||
| carryPwr2; | ||
@@ -670,2 +668,14 @@ // There seem to be no performance benefits testing against == 0 or == 1 (test probably too costly in avg). | ||
| /** | ||
| * Adds the specified to this IntN and returns the sum. | ||
| * @param {!IntN|number|string} other Other number | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| return IntN.add(this, other); | ||
| }; | ||
| /** | ||
| * Negates this IntN (*-1) and returns the result. | ||
@@ -676,3 +686,3 @@ * @returns {!IntN} | ||
| IntN.prototype.negate = function() { | ||
| return this.not().add(IntN.ONE); | ||
| return IntN.add(this.not(), IntN.ONE); | ||
| }; | ||
@@ -689,3 +699,3 @@ | ||
| /** | ||
| * Subtracts the specified from this IntN and returns the result. | ||
| * Subtracts the specified from this IntN and returns the difference. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -698,3 +708,3 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| return this.add(other.negate()); | ||
| return IntN.add(this, other.negate()); | ||
| }; | ||
@@ -714,3 +724,22 @@ | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the result. | ||
| * Multiplies the specified IntNs and returns the product. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.multiply = function(a, b) { | ||
| // See comment in add above | ||
| var isNegative = a.isNegative() !== b.isNegative(), | ||
| result = a.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| a = a.absolute(); | ||
| b = b.absolute(); | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = IntN.add(result, a); | ||
| return isNegative ? result.negate() : result; | ||
| }; | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the product. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -723,16 +752,8 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| // See comment in #add above | ||
| var isNegative = this.isNegative() !== other.isNegative(), | ||
| a = this.absolute(), | ||
| b = other.absolute(), | ||
| result = this.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = result.add(a); | ||
| return isNegative ? result.negate() : result; | ||
| return IntN.multiply(this, other); | ||
| }; | ||
| /** | ||
| * Divides the specified dividend by the specified divisor. This method is used internally by {@link IntN#divide} | ||
| * and {@link IntN#modulo} and is exposed statically in case both the result and the remainder are required. | ||
| * Divides the specified dividend by the specified divisor and returns both the quotient and the remainder. Does | ||
| * not type check arguments. | ||
| * @param {!IntN} dividend | ||
@@ -746,3 +767,3 @@ * @param {!IntN} divisor | ||
| throw Error("division by zero"); | ||
| // See comment in #add multiply | ||
| // See comment in #add above | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
@@ -759,4 +780,4 @@ quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| if (product.lessThanEqual(remainder)) | ||
| quotient = quotient.add(term), | ||
| remainder = remainder.subtract(product); | ||
| quotient = IntN.add(quotient, term), | ||
| remainder = IntN.add(remainder, product.negate()); | ||
| product = product.shiftRight(1, true); | ||
@@ -772,3 +793,3 @@ term = term.shiftRight(1, true); | ||
| /** | ||
| * Divides this IntN by the specified and returns the result. | ||
| * Divides this IntN by the specified and returns the quotient. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -785,3 +806,3 @@ * @returns {!IntN} | ||
| /** | ||
| * Returns the remainder of the division of this IntN by the specified. | ||
| * Divides this IntN by the specified and returns the remainder. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -871,3 +892,3 @@ * @returns {!IntN} | ||
| throw Error("illegal interior character: "+ch); | ||
| result = result.add(IntN.fromInt(val).multiply(IntN.fromInt(radixToPower(i)))); | ||
| result = IntN.add(result, IntN.multiply(IntN.fromInt(val), IntN.fromInt(radixToPower(i)))); | ||
| } | ||
@@ -894,3 +915,3 @@ return result; | ||
| var div = IntN.divide(this, radix)['quotient'], | ||
| rem = div.multiply(radix).subtract(this); | ||
| rem = IntN.add(IntN.multiply(div, radix), this.negate()); | ||
| return div.toString(radix) + rem.toInt().toString(radix.toInt()); | ||
@@ -905,3 +926,3 @@ } | ||
| do | ||
| mod = result.modulo(radix), | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
@@ -916,5 +937,10 @@ result = IntN.divide(result, radix)['quotient']; | ||
| for (var key in aliases) | ||
| if (aliases.hasOwnProperty(key)) | ||
| if (aliases.hasOwnProperty(key)) { | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| if (IntN[key]) | ||
| IntN[aliases[key][i]] = IntN[key]; | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| if (IntN.prototype[key]) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| } | ||
@@ -921,0 +947,0 @@ return classes[nBits] = IntN; |
+17
-17
@@ -6,19 +6,19 @@ /* | ||
| */ | ||
| (function(r){var p=function(){var p={},r=[1,256,65536,16777216,4294967296,1099511627776,281474976710656],s={compare:["comp"],equals:["eq","equal","=="],notEquals:["ne","notEqual","!="],lessThan:["lt","less","lesser","<"],lessThanEqual:["lte","lessThanOrEqual","<="],greaterThan:["gt","greater",">"],greaterThanEqual:["gte","greaterThanOrEqual",">="],not:["~"],and:["&"],or:["|"],xor:["^"],shiftLeft:["lsh","leftShift","<<"],shiftRight:["rsh","rightShift",">>"],shiftRightUnsigned:["rshu","rightShiftUnsigned", | ||
| ">>>"],add:["plus","+"],negate:["neg","!"],subtract:["sub","minus","-"],absolute:["abs","||"],multiply:["mult","*"],divide:["div","/"],modulo:["mod","%"]};return function(h){function b(a,b){this.bytes=Array(f);for(var c=0,e=a.length;c<e;++c)this.bytes[c]=a[c]&255;for(;c<f;++c)this.bytes[c]=0;this.unsigned=!!b}if(0>=h||0!==h%8)throw Error("illegal number of bits: "+h+" (not a positive multiple of 8)");if(p[h])return p[h];for(var f=h/8|0,n=f-1,q=Array(f),m=0;m<f;++m)q[m]=0;for(var u=Array(f),m=0;m< | ||
| f;++m)u[m]=255;b.BITS=h|0;b.BYTES=f;b.isIntN=function(a){return!0===(a&&Array.isArray(a.bytes)&&a.bytes.length===f&&"boolean"===typeof a.unsigned)};b.valueOf=function(a){return"number"===typeof a?b.fromNumber(a):"string"===typeof a?b.fromString(a):a&&a instanceof b&&a.bytes.length===f?a:a&&"number"===typeof a.b&&"number"===typeof a.a&&"boolean"===typeof a.unsigned?b.fromInts([a.b,a.a],a.unsigned):new b(a.bytes,a.unsigned)};b.prototype.cast=function(a,b){b="boolean"===typeof b?b:this.unsigned;var c= | ||
| this.isNegative(),e=c?this.not():this,e=new a(e.bytes,b);return c?e.not():e};b.ZERO=new b([],!1);b.UZERO=new b([],!0);b.ONE=new b([1],!1);b.UONE=new b([1],!0);b.MIN_VALUE=new b(q.slice(0,f));b.MIN_VALUE.bytes[n]|=128;b.MAX_VALUE=new b(u.slice(0,f));b.MAX_VALUE.bytes[n]&=127;b.MAX_UNSIGNED_VALUE=new b(u.slice(0,f),!0);b.prototype.isSigned=function(){return!this.unsigned};b.prototype.isUnsigned=function(){return this.unsigned};b.prototype.toSigned=function(){return this.unsigned?new b(this.bytes,!1): | ||
| this};b.prototype.toUnsigned=function(){return this.unsigned?this:new b(this.bytes,!0)};b.prototype.isNegative=function(){return!this.unsigned&&128===(this.bytes[n]&128)};b.prototype.isPositive=function(){return this.unsigned||0===(this.bytes[n]&128)};b.prototype.isEven=function(){return 0===(this.bytes[0]&1)};b.prototype.isOdd=function(){return 1===(this.bytes[0]&1)};b.prototype.isZero=function(){for(var a=0;a<f;++a)if(0!==this.bytes[a])return!1;return!0};b.prototype.compare=function(a){b.isIntN(a)|| | ||
| (function(t){var q=function(){var q={},t=[1,256,65536,16777216,4294967296,1099511627776,281474976710656],r={compare:["comp"],equals:["eq","equal","=="],notEquals:["ne","notEqual","!="],lessThan:["lt","less","lesser","<"],lessThanEqual:["lte","lessThanOrEqual","<="],greaterThan:["gt","greater",">"],greaterThanEqual:["gte","greaterThanOrEqual",">="],not:["~"],and:["&"],or:["|"],xor:["^"],shiftLeft:["lsh","leftShift","<<"],shiftRight:["rsh","rightShift",">>"],shiftRightUnsigned:["rshu","rightShiftUnsigned", | ||
| ">>>"],add:["plus","+"],negate:["neg","!"],subtract:["sub","minus","-"],absolute:["abs","||"],multiply:["mult","*"],divide:["div","/"],modulo:["mod","%"]};return function(l){function b(a,b){this.bytes=Array(g);for(var c=0,e=a.length;c<e;++c)this.bytes[c]=a[c]&255;for(;c<g;++c)this.bytes[c]=0;this.unsigned=!!b}if(0>=l||0!==l%8)throw Error("illegal number of bits: "+l+" (not a positive multiple of 8)");if(q[l])return q[l];for(var g=l/8|0,n=g-1,s=Array(g),h=0;h<g;++h)s[h]=0;for(var u=Array(g),h=0;h< | ||
| g;++h)u[h]=255;b.BITS=l|0;b.BYTES=g;b.isIntN=function(a){return!0===(a&&Array.isArray(a.bytes)&&a.bytes.length===g&&"boolean"===typeof a.unsigned)};b.valueOf=function(a){return"number"===typeof a?b.fromNumber(a):"string"===typeof a?b.fromString(a):a&&a instanceof b&&a.bytes.length===g?a:a&&"number"===typeof a.b&&"number"===typeof a.a&&"boolean"===typeof a.unsigned?b.fromInts([a.b,a.a],a.unsigned):new b(a.bytes,a.unsigned)};b.prototype.cast=function(a,b){b="boolean"===typeof b?b:this.unsigned;var c= | ||
| this.isNegative(),e=c?this.not():this,e=new a(e.bytes,b);return c?e.not():e};b.ZERO=new b([],!1);b.UZERO=new b([],!0);b.ONE=new b([1],!1);b.UONE=new b([1],!0);b.MIN_VALUE=new b(s.slice(0,g));b.MIN_VALUE.bytes[n]|=128;b.MAX_VALUE=new b(u.slice(0,g));b.MAX_VALUE.bytes[n]&=127;b.MAX_UNSIGNED_VALUE=new b(u.slice(0,g),!0);b.prototype.isSigned=function(){return!this.unsigned};b.prototype.isUnsigned=function(){return this.unsigned};b.prototype.toSigned=function(){return this.unsigned?new b(this.bytes,!1): | ||
| this};b.prototype.toUnsigned=function(){return this.unsigned?this:new b(this.bytes,!0)};b.prototype.isNegative=function(){return!this.unsigned&&128===(this.bytes[n]&128)};b.prototype.isPositive=function(){return this.unsigned||0===(this.bytes[n]&128)};b.prototype.isEven=function(){return 0===(this.bytes[0]&1)};b.prototype.isOdd=function(){return 1===(this.bytes[0]&1)};b.prototype.isZero=function(){for(var a=0;a<g;++a)if(0!==this.bytes[a])return!1;return!0};b.prototype.compare=function(a){b.isIntN(a)|| | ||
| (a=b.valueOf(a));var d=this.isNegative();if(d!==a.isNegative())return d?-1:1;for(d=n;0<=d;--d){if(this.bytes[d]<a.bytes[d])return-1;if(this.bytes[d]>a.bytes[d])return 1}return 0};b.prototype.equals=function(a){return 0===this.compare(a)};b.prototype.notEquals=function(a){return 0!==this.compare(a)};b.prototype.lessThan=function(a){return-1===this.compare(a)};b.prototype.lessThanEqual=function(a){return 0>=this.compare(a)};b.prototype.greaterThan=function(a){return 1===this.compare(a)};b.prototype.greaterThanEqual= | ||
| function(a){return 0<=this.compare(a)};b.fromInt=function(a,d){a|=0;var c;if(0>a)return-2147483648===a?b.MIN_VALUE:c=b.fromInt(-a,d).negate();c=q.slice(0,f);for(var e=0;e<f&&0!==a;++e)c[e]=a&255,a>>>=8;return c=new b(c,d)};b.prototype.toInt=function(a){a="boolean"===typeof a?a:this.unsigned;for(var b=this.isNegative(),c=b?this.not():this,e=0,g=0;e<Math.min(4,c.bytes.length);++e)g|=c.bytes[e]<<8*e;b&&(g=~g);return a?g>>>0:g};b.fromInts=function(a,d){for(var c=b.ZERO,e=0,g=Math.min(a.length,Math.ceil(f/ | ||
| 4)),l;e<g;++e)l=a[e],c=c.or((new b([l&255,l>>>8&255,l>>>16&255,l>>>24&255])).shiftLeft(32*e));return d?c.toUnsigned():c};b.prototype.toInts=function(){for(var a=Math.ceil(f/4),b=Array(a),c=0,e=0,g;c<a;e=4*++c){for(var l=g=0,k=Math.min(4,f-e);l<k;++l)g|=this.bytes[e+l]<<8*l;b[c]=g}return b};b.fromNumber=function(a,d){if("number"!==typeof a)throw TypeError("illegal arguments: "+typeof a);if(a!==a||!isFinite(a)||0===a)return d?b.UZERO:b.ZERO;if(0>a)return b.fromNumber(-a,d).negate();for(var c=0,e=Array(f);c< | ||
| f;++c)e[c]=a%256&255,a=Math.floor(a/256);return new b(e,d)};b.prototype.toNumber=function(){if(this.isNegative())return this.equals(b.MIN_VALUE)?-2147483648:-this.negate().toNumber();for(var a=0,d=0,c=Math.min(f,7);a<c;++a)d+=this.bytes[a]*r[a];return d};b.prototype.not=function(){for(var a=0,d=Array(f);a<f;++a)d[a]=~this.bytes[a];return new b(d,this.unsigned)};b.prototype.and=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]&a.bytes[d];return new b(c,this.unsigned)}; | ||
| b.prototype.or=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]|a.bytes[d];return new b(c,this.unsigned)};b.prototype.xor=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]^a.bytes[d];return new b(c,this.unsigned)};b.prototype.shiftLeft=function(a){b.isIntN(a)&&(a=a.toInt());a%=h;if(0===a)return this;0>a&&(a+=h);var d=a/8|0;a%=8;for(var c=0,e=q.slice(0,f),g;c<f&&!((g=c+d)>=f);++c)e[g]|=this.bytes[c]<<a&255,++g<f&& | ||
| (e[g]|=this.bytes[c]<<a>>>8&255);return new b(e,this.unsigned)};b.prototype.shiftRight=function(a,d){b.isIntN(a)&&(a=a.toInt());a%=h;if(0===a)return this;0>a&&(a+=h);var c=a/8|0;a%=8;var e=q.slice(0,f),g;if(!d&&128===(this.bytes[n]&128)){var l;g=f-1;for(l=f-c-1;g>=l;--g)e[g]=255;e[++g]=e[g]<<7-a&255}var k;for(g=0;g<f;++g)0<=(k=g-c)&&(e[k]|=this.bytes[g]>>>a&255),0<=--k&&(e[k]|=this.bytes[g]<<8>>>a&255);return new b(e,this.unsigned)};b.prototype.shiftRightUnsigned=function(a){return this.shiftRight(a, | ||
| !0)};b.prototype.add=function(a){b.isIntN(a)||(a=b.valueOf(a));var d=this.and(a);a=this.xor(a);for(var c;!d.isZero();)c=d.shiftLeft(1),d=a.and(c),a=a.xor(c);return a};b.prototype.negate=function(){return this.not().add(b.ONE)};b.NEG_ONE=b.ONE.negate();b.prototype.subtract=function(a){b.isIntN(a)||(a=b.valueOf(a));return this.add(a.negate())};b.prototype.absolute=function(){return this.unsigned?this:(this.isNegative()?this.negate():this).toUnsigned()};b.prototype.multiply=function(a){b.isIntN(a)|| | ||
| (a=b.valueOf(a));var d=this.isNegative()!==a.isNegative(),c=this.absolute();a=a.absolute();for(var e=this.unsigned?b.UZERO:b.ZERO;!a.isZero();c=c.shiftLeft(1),a=a.shiftRight(1,!0))1===(a.bytes[0]&1)&&(e=e.add(c));return d?e.negate():e};b.divide=function(a,d){if(d.isZero())throw Error("division by zero");for(var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO,g=a.absolute(),f=d.absolute(),k=b.UONE,h=b.MIN_VALUE.toUnsigned();k.lessThan(h)&&f.lessThan(g);)f=f.shiftLeft(1),k=k.shiftLeft(1); | ||
| for(;k.greaterThanEqual(b.UONE);)f.lessThanEqual(g)&&(e=e.add(k),g=g.subtract(f)),f=f.shiftRight(1,!0),k=k.shiftRight(1,!0);return{quotient:c?e.negate():e,remainder:g}};b.prototype.divide=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).quotient};b.prototype.modulo=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).remainder};b.prototype.toDebug=function(a){for(var b=n,c,e="";0<=b;--b){for(c=this.bytes[b].toString(2);8>c.length;)c="0"+c;e+=c;a&&0<b&&(e+=" ")}this.unsigned&& | ||
| (e+=a?" U":"U");return e};var v=b.fromInt(2),w=b.fromInt(36);b.fromString=function(a,d,c){"number"===typeof d&&(c=d,d=!1);a=(a+"").toLowerCase();c=c||10;if(2>c||36<c)throw RangeError("radix out of range: "+c+" (2-36)");if("-"===a.charAt(0))return b.fromString(a.substring(1),d,c).negate();"+"===a.charAt(0)&&(a=a.substring(1));if("0"===a||"NaN"===a||"Infinity"===a)return d?b.UZERO:b.ZERO;d=d?b.UZERO:b.ZERO;for(var e=2===c?function(a){return 1<<a}:Math.pow.bind(Math,c),g=0,f=a.length,k,h;g<f;++g){k= | ||
| a.charAt(f-g-1);h="0123456789abcdefghijklmnopqrstuvwxyz".indexOf(k);if(0>h||h>c)throw Error("illegal interior character: "+k);d=d.add(b.fromInt(h).multiply(b.fromInt(e(g))))}return d};b.prototype.toString=function(a){a=a||10;b.isIntN(a)||(a=b.valueOf(a));if(a.lessThan(v)||a.greaterThan(w))throw RangeError("radix out of range: "+a.toInt()+" (2-36)");var d=this.unsigned?b.UZERO:b.ZERO;if(this.isNegative()){if(this.equals(b.MIN_VALUE)){var d=b.divide(this,a).quotient,c=d.multiply(a).subtract(this);return d.toString(a)+ | ||
| c.toInt().toString(a.toInt())}return"-"+this.negate().toString(a)}var c=this,e=[],f;do f=c.modulo(a),e.unshift("0123456789abcdefghijklmnopqrstuvwxyz".charAt(f.toInt())),c=b.divide(c,a).quotient;while(!c.equals(d));return e.join("")};b["isInt"+h]=b.isIntN;for(var t in s)if(s.hasOwnProperty(t))for(m=0;m<s[t].length;++m)b.prototype[s[t][m]]=b.prototype[t];return p[h]=b}}();"undefined"!==typeof module&&module.exports?module.exports=p:"function"===typeof define&&define.amd?define(function(){return p}): | ||
| (r.dcodeIO=r.dcodeIO||{}).IntN=p})(this); | ||
| function(a){return 0<=this.compare(a)};b.fromInt=function(a,d){a|=0;var c;if(0>a)return-2147483648===a?b.MIN_VALUE:c=b.fromInt(-a,d).negate();c=s.slice(0,g);for(var e=0;e<g&&0!==a;++e)c[e]=a&255,a>>>=8;return c=new b(c,d)};b.prototype.toInt=function(a){a="boolean"===typeof a?a:this.unsigned;for(var b=this.isNegative(),c=b?this.not():this,e=0,f=0;e<Math.min(4,c.bytes.length);++e)f|=c.bytes[e]<<8*e;b&&(f=~f);return a?f>>>0:f};b.fromInts=function(a,d){for(var c=b.ZERO,e=0,f=Math.min(a.length,Math.ceil(g/ | ||
| 4)),m;e<f;++e)m=a[e],c=c.or((new b([m&255,m>>>8&255,m>>>16&255,m>>>24&255])).shiftLeft(32*e));return d?c.toUnsigned():c};b.prototype.toInts=function(){for(var a=Math.ceil(g/4),b=Array(a),c=0,e=0,f;c<a;e=4*++c){for(var m=f=0,k=Math.min(4,g-e);m<k;++m)f|=this.bytes[e+m]<<8*m;b[c]=f}return b};b.fromNumber=function(a,d){if("number"!==typeof a)throw TypeError("illegal arguments: "+typeof a);if(a!==a||!isFinite(a)||0===a)return d?b.UZERO:b.ZERO;if(0>a)return b.fromNumber(-a,d).negate();for(var c=0,e=Array(g);c< | ||
| g;++c)e[c]=a%256&255,a=Math.floor(a/256);return new b(e,d)};b.prototype.toNumber=function(){if(this.isNegative())return this.equals(b.MIN_VALUE)?-2147483648:-this.negate().toNumber();for(var a=0,d=0,c=Math.min(g,7);a<c;++a)d+=this.bytes[a]*t[a];return d};b.prototype.not=function(){for(var a=0,d=Array(g);a<g;++a)d[a]=~this.bytes[a];return new b(d,this.unsigned)};b.prototype.and=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]&a.bytes[d];return new b(c,this.unsigned)}; | ||
| b.prototype.or=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]|a.bytes[d];return new b(c,this.unsigned)};b.prototype.xor=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]^a.bytes[d];return new b(c,this.unsigned)};b.prototype.shiftLeft=function(a){b.isIntN(a)&&(a=a.toInt());a%=l;if(0===a)return this;0>a&&(a+=l);var d=a/8|0;a%=8;for(var c=0,e=s.slice(0,g),f;c<g&&!((f=c+d)>=g);++c)e[f]|=this.bytes[c]<<a&255,++f<g&& | ||
| (e[f]|=this.bytes[c]<<a>>>8&255);return new b(e,this.unsigned)};b.prototype.shiftRight=function(a,d){b.isIntN(a)&&(a=a.toInt());a%=l;if(0===a)return this;0>a&&(a+=l);var c=a/8|0;a%=8;var e=s.slice(0,g),f;if(!d&&128===(this.bytes[n]&128)){var m;f=g-1;for(m=g-c-1;f>=m;--f)e[f]=255;e[++f]=e[f]<<7-a&255}var k;for(f=0;f<g;++f)0<=(k=f-c)&&(e[k]|=this.bytes[f]>>>a&255),0<=--k&&(e[k]|=this.bytes[f]<<8>>>a&255);return new b(e,this.unsigned)};b.prototype.shiftRightUnsigned=function(a){return this.shiftRight(a, | ||
| !0)};b.add=function(a,b){for(var c=a.and(b),e=a.xor(b),f;!c.isZero();)f=c.shiftLeft(1),c=e.and(f),e=e.xor(f);return e};b.prototype.add=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a)};b.prototype.negate=function(){return b.add(this.not(),b.ONE)};b.NEG_ONE=b.ONE.negate();b.prototype.subtract=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a.negate())};b.prototype.absolute=function(){return this.unsigned?this:(this.isNegative()?this.negate():this).toUnsigned()};b.multiply= | ||
| function(a,d){var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO;a=a.absolute();for(d=d.absolute();!d.isZero();a=a.shiftLeft(1),d=d.shiftRight(1,!0))1===(d.bytes[0]&1)&&(e=b.add(e,a));return c?e.negate():e};b.prototype.multiply=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.multiply(this,a)};b.divide=function(a,d){if(d.isZero())throw Error("division by zero");for(var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO,f=a.absolute(),g=d.absolute(),k=b.UONE,h=b.MIN_VALUE.toUnsigned();k.lessThan(h)&& | ||
| g.lessThan(f);)g=g.shiftLeft(1),k=k.shiftLeft(1);for(;k.greaterThanEqual(b.UONE);)g.lessThanEqual(f)&&(e=b.add(e,k),f=b.add(f,g.negate())),g=g.shiftRight(1,!0),k=k.shiftRight(1,!0);return{quotient:c?e.negate():e,remainder:f}};b.prototype.divide=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).quotient};b.prototype.modulo=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).remainder};b.prototype.toDebug=function(a){for(var b=n,c,e="";0<=b;--b){for(c=this.bytes[b].toString(2);8> | ||
| c.length;)c="0"+c;e+=c;a&&0<b&&(e+=" ")}this.unsigned&&(e+=a?" U":"U");return e};var v=b.fromInt(2),w=b.fromInt(36);b.fromString=function(a,d,c){"number"===typeof d&&(c=d,d=!1);a=(a+"").toLowerCase();c=c||10;if(2>c||36<c)throw RangeError("radix out of range: "+c+" (2-36)");if("-"===a.charAt(0))return b.fromString(a.substring(1),d,c).negate();"+"===a.charAt(0)&&(a=a.substring(1));if("0"===a||"NaN"===a||"Infinity"===a)return d?b.UZERO:b.ZERO;d=d?b.UZERO:b.ZERO;for(var e=2===c?function(a){return 1<< | ||
| a}:Math.pow.bind(Math,c),f=0,g=a.length,k,h;f<g;++f){k=a.charAt(g-f-1);h="0123456789abcdefghijklmnopqrstuvwxyz".indexOf(k);if(0>h||h>c)throw Error("illegal interior character: "+k);d=b.add(d,b.multiply(b.fromInt(h),b.fromInt(e(f))))}return d};b.prototype.toString=function(a){a=a||10;b.isIntN(a)||(a=b.valueOf(a));if(a.lessThan(v)||a.greaterThan(w))throw RangeError("radix out of range: "+a.toInt()+" (2-36)");var d=this.unsigned?b.UZERO:b.ZERO;if(this.isNegative()){if(this.equals(b.MIN_VALUE)){var d= | ||
| b.divide(this,a).quotient,c=b.add(b.multiply(d,a),this.negate());return d.toString(a)+c.toInt().toString(a.toInt())}return"-"+this.negate().toString(a)}var c=this,e=[],f;do f=b.divide(c,a).remainder,e.unshift("0123456789abcdefghijklmnopqrstuvwxyz".charAt(f.toInt())),c=b.divide(c,a).quotient;while(!c.equals(d));return e.join("")};b["isInt"+l]=b.isIntN;for(var p in r)if(r.hasOwnProperty(p)){for(h=0;h<r[p].length;++h)b[p]&&(b[r[p][h]]=b[p]);for(h=0;h<r[p].length;++h)b.prototype[p]&&(b.prototype[r[p][h]]= | ||
| b.prototype[p])}return q[l]=b}}();"undefined"!==typeof module&&module.exports?module.exports=q:"function"===typeof define&&define.amd?define(function(){return q}):(t.dcodeIO=t.dcodeIO||{}).IntN=q})(this); |
@@ -5,5 +5,5 @@ { | ||
| "lineCount":23, | ||
| "mappings":"A;;;;;AAqBC,SAAQ,CAACA,CAAD,CAAS,CAEd,IAAIC,EAAQ,QAAQ,EAAG,CA03BnB,IAAIC,EAAU,EAAd,CAgBIC,EAAiB,CACjB,CADiB,CAEjB,GAFiB,CAGjB,KAHiB,CAIjB,QAJiB,CAKjB,UALiB,CAMjB,aANiB,CAOjB,eAPiB,CAhBrB,CAwCIC,EAAU,CAEV,QAAW,CAAC,MAAD,CAFD,CAGV,OAAU,CAAC,IAAD,CAAO,OAAP,CAAgB,IAAhB,CAHA,CAIV,UAAa,CAAC,IAAD,CAAO,UAAP,CAAmB,IAAnB,CAJH,CAKV,SAAY,CAAC,IAAD,CAAO,MAAP,CAAe,QAAf,CAAyB,GAAzB,CALF,CAMV,cAAiB,CAAC,KAAD,CAAQ,iBAAR,CAA2B,IAA3B,CANP,CAOV,YAAe,CAAC,IAAD,CAAO,SAAP,CAAkB,GAAlB,CAPL,CAQV,iBAAoB,CAAC,KAAD,CAAQ,oBAAR,CAA8B,IAA9B,CARV,CAUV,IAAO,CAAC,GAAD,CAVG,CAWV,IAAO,CAAC,GAAD,CAXG,CAYV,GAAM,CAAC,GAAD,CAZI,CAaV,IAAO,CAAC,GAAD,CAbG,CAcV,UAAa,CAAC,KAAD,CAAQ,WAAR,CAAqB,IAArB,CAdH,CAeV,WAAc,CAAC,KAAD,CAAQ,YAAR,CAAsB,IAAtB,CAfJ,CAgBV,mBAAsB,CAAC,MAAD,CAAS,oBAAT;AAA+B,KAA/B,CAhBZ,CAkBV,IAAO,CAAC,MAAD,CAAS,GAAT,CAlBG,CAmBV,OAAU,CAAC,KAAD,CAAQ,GAAR,CAnBA,CAoBV,SAAY,CAAC,KAAD,CAAQ,OAAR,CAAiB,GAAjB,CApBF,CAqBV,SAAY,CAAC,KAAD,CAAQ,IAAR,CArBF,CAsBV,SAAY,CAAC,MAAD,CAAS,GAAT,CAtBF,CAuBV,OAAU,CAAC,KAAD,CAAQ,GAAR,CAvBA,CAwBV,OAAU,CAAC,KAAD,CAAQ,GAAR,CAxBA,CA2Bd,OAp7BAC,SAAiB,CAACC,CAAD,CAAQ,CAgDrBL,QAASA,EAAI,CAACM,CAAD,CAAQC,CAAR,CAAkB,CAO3B,IAAAD,MAAA,CAAiBE,KAAJ,CAAUC,CAAV,CAEb,KAT2B,IASlBC,EAAE,CATgB,CASbC,EAAEL,CAAAM,OAAhB,CAA8BF,CAA9B,CAAgCC,CAAhC,CAAmC,EAAED,CAArC,CACI,IAAAJ,MAAA,CAAWI,CAAX,CAAA,CAAgBJ,CAAA,CAAMI,CAAN,CAAhB,CAA2B,GAC/B,KAAA,CAAOA,CAAP,CAASD,CAAT,CAAiB,EAAEC,CAAnB,CACI,IAAAJ,MAAA,CAAWI,CAAX,CAAA,CAAgB,CAOpB,KAAAH,SAAA,CAAgB,CAAEA,CAAAA,CAnBS,CA/C/B,GAAa,CAAb,EAAIF,CAAJ,EAAgC,CAAhC,GAAmBA,CAAnB,CAAyB,CAAzB,CACI,KAAMQ,MAAA,CAAM,0BAAN,CAAiCR,CAAjC,CAAuC,iCAAvC,CAAN,CAGJ,GAAIJ,CAAA,CAAQI,CAAR,CAAJ,CACI,MAAOJ,EAAA,CAAQI,CAAR,CAsBX,KAfA,IAAII,EAAUJ,CAAVI,CAAgB,CAAhBA,CAAmB,CAAvB,CAOIK,EAAWL,CAAXK,CAAkB,CAPtB,CAcIC,EAAaP,KAAJ,CAAUC,CAAV,CAdb,CAeSC,EAAE,CAAX,CAAcA,CAAd,CAAgBD,CAAhB,CAAwB,EAAEC,CAA1B,CACIK,CAAA,CAAOL,CAAP,CAAA,CAAY,CAQhB,KADA,IAAIM,EAAWR,KAAJ,CAAUC,CAAV,CAAX,CACKC,EAAE,CAAP,CAAUA,CAAV;AAAYD,CAAZ,CAAoB,EAAEC,CAAtB,CACIM,CAAA,CAAKN,CAAL,CAAA,CAAU,GAsCdV,EAAAiB,KAAA,CAAYZ,CAAZ,CAAkB,CAQlBL,EAAAkB,MAAA,CAAaT,CAUbT,EAAAmB,OAAA,CAAcC,QAAQ,CAACC,CAAD,CAAM,CACxB,MACQ,CAAA,CADR,IAAQA,CAAR,EAAeb,KAAAc,QAAA,CAAcD,CAAAf,MAAd,CAAf,EAA2Ce,CAAAf,MAAAM,OAA3C,GAAgEH,CAAhE,EAAkG,SAAlG,GAA0E,MAAOY,EAAAd,SAAjF,CADwB,CAW5BP,EAAAuB,QAAA,CAAeC,QAAQ,CAACC,CAAD,CAAM,CACzB,MAAmB,QAAnB,GAAI,MAAOA,EAAX,CACWzB,CAAA0B,WAAA,CAAgBD,CAAhB,CADX,CAEwB,QAAnB,GAAI,MAAOA,EAAX,CACMzB,CAAA2B,WAAA,CAAgBF,CAAhB,CADN,CAEIA,CAAJ,EAAWA,CAAX,WAA0BzB,EAA1B,EAAkCyB,CAAAnB,MAAAM,OAAlC,GAAuDH,CAAvD,CACMgB,CADN,CAEIA,CAAJ,EAA8B,QAA9B,GAAW,MAAOA,EAAAG,EAAlB,EAA8D,QAA9D,GAA0C,MAAOH,EAAAI,EAAjD,EAAkG,SAAlG,GAA0E,MAAOJ,EAAAlB,SAAjF,CACMP,CAAA8B,SAAA,CAAc,CAACL,CAAAG,EAAD,CAAUH,CAAAI,EAAV,CAAd,CAAmCJ,CAAAlB,SAAnC,CADN,CAKE,IAAIP,CAAJ,CAASyB,CAAAnB,MAAT,CAAoBmB,CAAAlB,SAApB,CAZkB,CAsB7BP,EAAA+B,UAAAC,KAAA,CAAsBC,QAAQ,CAACC,CAAD,CAAa3B,CAAb,CAAuB,CACjDA,CAAA,CAA+B,SAApB,GAAA,MAAOA,EAAP,CAAgCA,CAAhC,CAA2C,IAAAA,SADL,KAE7C4B;AAAY,IAAAC,WAAA,EAFiC,CAG7CX,EAAMU,CAAA,CAAY,IAAAE,IAAA,EAAZ,CAAyB,IAHc,CAIjDZ,EAAM,IAAIS,CAAJ,CAAeT,CAAAnB,MAAf,CAA0BC,CAA1B,CACN,OAAO4B,EAAA,CAAYV,CAAAY,IAAA,EAAZ,CAAwBZ,CALkB,CAgBrDzB,EAAAsC,KAAA,CAAY,IAAItC,CAAJ,CAAS,EAAT,CAAa,CAAA,CAAb,CAQZA,EAAAuC,MAAA,CAAa,IAAIvC,CAAJ,CAAS,EAAT,CAAa,CAAA,CAAb,CAQbA,EAAAwC,IAAA,CAAW,IAAIxC,CAAJ,CAAS,CAAC,CAAD,CAAT,CAAc,CAAA,CAAd,CAQXA,EAAAyC,KAAA,CAAY,IAAIzC,CAAJ,CAAS,CAAC,CAAD,CAAT,CAAc,CAAA,CAAd,CAQZA,EAAA0C,UAAA,CAAiB,IAAI1C,CAAJ,CAASe,CAAA4B,MAAA,CAAa,CAAb,CAAgBlC,CAAhB,CAAT,CACjBT,EAAA0C,UAAApC,MAAA,CAAqBQ,CAArB,CAAA,EAAkC,GAQlCd,EAAA4C,UAAA,CAAiB,IAAI5C,CAAJ,CAASgB,CAAA2B,MAAA,CAAW,CAAX,CAAclC,CAAd,CAAT,CACjBT,EAAA4C,UAAAtC,MAAA,CAAqBQ,CAArB,CAAA,EAAkC,GAQlCd,EAAA6C,mBAAA,CAA0B,IAAI7C,CAAJ,CAASgB,CAAA2B,MAAA,CAAW,CAAX,CAAclC,CAAd,CAAT,CAAgC,CAAA,CAAhC,CAS1BT,EAAA+B,UAAAe,SAAA,CAA0BC,QAAQ,EAAG,CACjC,MAAO,CAAC,IAAAxC,SADyB,CASrCP,EAAA+B,UAAAiB,WAAA,CAA4BC,QAAQ,EAAG,CACnC,MAAO,KAAA1C,SAD4B,CAWvCP,EAAA+B,UAAAmB,SAAA,CAA0BC,QAAQ,EAAG,CACjC,MAAK,KAAA5C,SAAL,CAEO,IAAIP,CAAJ,CAAS,IAAAM,MAAT,CAAqB,CAAA,CAArB,CAFP;AACW,IAFsB,CAWrCN,EAAA+B,UAAAqB,WAAA,CAA4BC,QAAQ,EAAG,CACnC,MAAI,KAAA9C,SAAJ,CACW,IADX,CAEO,IAAIP,CAAJ,CAAS,IAAAM,MAAT,CAAqB,CAAA,CAArB,CAH4B,CAavCN,EAAA+B,UAAAK,WAAA,CAA4BkB,QAAQ,EAAG,CACnC,MAAO,CAAC,IAAA/C,SAAR,EAA2D,GAA3D,IAA0B,IAAAD,MAAA,CAAWQ,CAAX,CAA1B,CAAiD,GAAjD,CADmC,CASvCd,EAAA+B,UAAAwB,WAAA,CAA4BC,QAAQ,EAAG,CACnC,MAAO,KAAAjD,SAAP,EAA0D,CAA1D,IAAyB,IAAAD,MAAA,CAAWQ,CAAX,CAAzB,CAAgD,GAAhD,CADmC,CASvCd,EAAA+B,UAAA0B,OAAA,CAAwBC,QAAQ,EAAG,CAC/B,MAA+B,EAA/B,IAAQ,IAAApD,MAAA,CAAW,CAAX,CAAR,CAAwB,CAAxB,CAD+B,CASnCN,EAAA+B,UAAA4B,MAAA,CAAuBC,QAAQ,EAAG,CAC9B,MAA+B,EAA/B,IAAQ,IAAAtD,MAAA,CAAW,CAAX,CAAR,CAAwB,CAAxB,CAD8B,CASlCN,EAAA+B,UAAA8B,OAAA,CAAwBC,QAAQ,EAAG,CAC/B,IAAS,IAAApD,EAAE,CAAX,CAAcA,CAAd,CAAgBD,CAAhB,CAAwB,EAAEC,CAA1B,CACI,GAAsB,CAAtB,GAAI,IAAAJ,MAAA,CAAWI,CAAX,CAAJ,CACI,MAAO,CAAA,CACf,OAAO,CAAA,CAJwB,CAanCV,EAAA+B,UAAAgC,QAAA,CAAyBC,QAAQ,CAACC,CAAD,CAAQ,CAChCjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL;CACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,KAAI7B,EAAa,IAAAA,WAAA,EACjB,IAAIA,CAAJ,GAAmB6B,CAAA7B,WAAA,EAAnB,CACI,MAAOA,EAAA,CAAc,EAAd,CAAkB,CAC7B,KAAS1B,CAAT,CAAWI,CAAX,CAAwB,CAAxB,EAAqBJ,CAArB,CAA2B,EAAEA,CAA7B,CACI,CAAA,GAAI,IAAAJ,MAAA,CAAWI,CAAX,CAAJ,CAAoBuD,CAAA3D,MAAA,CAAYI,CAAZ,CAApB,CACI,MAAQ,EACP,IAAI,IAAAJ,MAAA,CAAWI,CAAX,CAAJ,CAAoBuD,CAAA3D,MAAA,CAAYI,CAAZ,CAApB,CACD,MAAO,EAHX,CAIJ,MAAO,EAX8B,CAoBzCV,EAAA+B,UAAAmC,OAAA,CAAwBC,QAAQ,CAACF,CAAD,CAAQ,CACpC,MAA+B,EAA/B,GAAO,IAAAF,QAAA,CAAaE,CAAb,CAD6B,CAUxCjE,EAAA+B,UAAAqC,UAAA,CAA2BC,QAAQ,CAACJ,CAAD,CAAQ,CACvC,MAA+B,EAA/B,GAAO,IAAAF,QAAA,CAAaE,CAAb,CADgC,CAU3CjE,EAAA+B,UAAAuC,SAAA,CAA0BC,QAAQ,CAACN,CAAD,CAAQ,CACtC,MAAgC,EAAhC,GAAO,IAAAF,QAAA,CAAaE,CAAb,CAD+B,CAU1CjE,EAAA+B,UAAAyC,cAAA,CAA+BC,QAAQ,CAACR,CAAD,CAAQ,CAC3C,MAA8B,EAA9B,EAAO,IAAAF,QAAA,CAAaE,CAAb,CADoC,CAU/CjE,EAAA+B,UAAA2C,YAAA,CAA6BC,QAAQ,CAACV,CAAD,CAAQ,CACzC,MAA+B,EAA/B,GAAO,IAAAF,QAAA,CAAaE,CAAb,CADkC,CAU7CjE,EAAA+B,UAAA6C,iBAAA;AAAkCC,QAAQ,CAACZ,CAAD,CAAQ,CAC9C,MAA8B,EAA9B,EAAO,IAAAF,QAAA,CAAaE,CAAb,CADuC,CAalDjE,EAAA8E,QAAA,CAAeC,QAAQ,CAACC,CAAD,CAAQzE,CAAR,CAAkB,CACrCyE,CAAA,EAAc,CACd,KAAIvD,CACJ,IAAY,CAAZ,CAAIuD,CAAJ,CACI,MA2fUC,WA3fV,GAAID,CAAJ,CACWhF,CAAA0C,UADX,CAEAjB,CAFA,CAEMzB,CAAA8E,QAAA,CAAa,CAACE,CAAd,CAAqBzE,CAArB,CAAA2E,OAAA,EAGN5E,EAAAA,CAAQS,CAAA4B,MAAA,CAAa,CAAb,CAAgBlC,CAAhB,CACZ,KAAS,IAAAC,EAAE,CAAX,CAAcA,CAAd,CAAgBD,CAAhB,EAAoC,CAApC,GAA0BuE,CAA1B,CAAuC,EAAEtE,CAAzC,CACIJ,CAAA,CAAMI,CAAN,CACA,CADWsE,CACX,CADmB,GACnB,CAAAA,CAAA,IAAkB,CAEtB,OADAvD,EACA,CADM,IAAIzB,CAAJ,CAASM,CAAT,CAAgBC,CAAhB,CAb+B,CAuBzCP,EAAA+B,UAAAoD,MAAA,CAAuBC,QAAQ,CAAC7E,CAAD,CAAW,CACtCA,CAAA,CAA+B,SAApB,GAAA,MAAOA,EAAP,CAAgCA,CAAhC,CAA2C,IAAAA,SAGtD,KAJsC,IAElC4B,EAAY,IAAAC,WAAA,EAFsB,CAGlCX,EAAMU,CAAA,CAAY,IAAAE,IAAA,EAAZ,CAAyB,IAHG,CAI7B3B,EAAE,CAJ2B,CAIxB2E,EAAO,CAArB,CAAwB3E,CAAxB,CAA0B4E,IAAAC,IAAA,CAAS,CAAT,CAAY9D,CAAAnB,MAAAM,OAAZ,CAA1B,CAAyD,EAAEF,CAA3D,CACI2E,CAAA,EAAU5D,CAAAnB,MAAA,CAAUI,CAAV,CAAV,EAA6B,CAA7B,CAA2BA,CAC3ByB,EAAJ,GACIkD,CADJ,CACa,CAACA,CADd,CAEA,OAAO9E,EAAA,CAAW8E,CAAX,GAAsB,CAAtB,CAA0BA,CARK,CAkB1CrF,EAAA8B,SAAA,CAAgB0D,QAAQ,CAACC,CAAD,CAAOlF,CAAP,CAAiB,CAErC,IADA,IAAI8E,EAASrF,CAAAsC,KAAb,CACS5B,EAAE,CADX,CACcC,EAAE2E,IAAAC,IAAA,CAASE,CAAA7E,OAAT,CAAsB0E,IAAAI,KAAA,CAAUjF,CAAV;AAAiB,CAAjB,CAAtB,CADhB,CAC4DgB,CAA5D,CAAiEf,CAAjE,CAAmEC,CAAnE,CAAsE,EAAED,CAAxE,CACIe,CACA,CADMgE,CAAA,CAAK/E,CAAL,CACN,CAAA2E,CAAA,CAASA,CAAAM,GAAA,CAAUC,CAAA,IAAI5F,CAAJ,CAAS,CACvByB,CADuB,CACT,GADS,CAEvBA,CAFuB,GAEd,CAFc,CAET,GAFS,CAGvBA,CAHuB,GAGf,EAHe,CAGT,GAHS,CAIvBA,CAJuB,GAIf,EAJe,CAIT,GAJS,CAAT,CAAAmE,WAAA,CAKJ,EALI,CAKNlF,CALM,CAAV,CAMb,OAAOH,EAAA,CAAW8E,CAAAjC,WAAA,EAAX,CAAiCiC,CAVH,CAkBzCrF,EAAA+B,UAAA8D,OAAA,CAAwBC,QAAQ,EAAG,CAG/B,IAH+B,IAC3BC,EAAYT,IAAAI,KAAA,CAAUjF,CAAV,CAAiB,CAAjB,CADe,CAE3BuF,EAAUxF,KAAJ,CAAUuF,CAAV,CAFqB,CAGtBrF,EAAE,CAHoB,CAGjBuF,EAAO,CAHU,CAGPxE,CAAxB,CAA6Bf,CAA7B,CAA+BqF,CAA/B,CAA0CE,CAA1C,CAAqD,CAArD,CAAiD,EAAEvF,CAAnD,CAAwD,CAEpD,IAFoD,IAE3CwF,EADTzE,CACSyE,CADH,CAD8C,CAEtCC,EAAEb,IAAAC,IAAA,CAAS,CAAT,CAAY9E,CAAZ,CAAmBwF,CAAnB,CAAhB,CAA4CC,CAA5C,CAA8CC,CAA9C,CAAiD,EAAED,CAAnD,CACIzE,CAAA,EAAO,IAAAnB,MAAA,CAAW2F,CAAX,CAAkBC,CAAlB,CAAP,EAAkC,CAAlC,CAAgCA,CACpCF,EAAA,CAAItF,CAAJ,CAAA,CAASe,CAJ2C,CAMxD,MAAOuE,EATwB,CAqBnChG,EAAA0B,WAAA,CAAkB0E,QAAQ,CAACpB,CAAD,CAAQzE,CAAR,CAAkB,CACxC,GAAqB,QAArB,GAAI,MAAOyE,EAAX,CACI,KAAMqB,UAAA,CAAU,qBAAV,CAAgC,MAAOrB,EAAvC,CAAN,CACJ,GAAIA,CAAJ,GAAcA,CAAd,EAAwB,CAAAsB,QAAA,CAAStB,CAAT,CAAxB,EAAqD,CAArD,GAA2CA,CAA3C,CACI,MAAOzE,EAAA,CAAWP,CAAAuC,MAAX,CAAwBvC,CAAAsC,KACnC,IAAY,CAAZ,CAAI0C,CAAJ,CACI,MAAOhF,EAAA0B,WAAA,CAAgB,CAACsD,CAAjB,CAAwBzE,CAAxB,CAAA2E,OAAA,EAEX,KARwC,IAQ/BxE,EAAE,CAR6B,CAQ1BJ,EAAUE,KAAJ,CAAUC,CAAV,CAApB,CAAuCC,CAAvC;AAAyCD,CAAzC,CAAiD,EAAEC,CAAnD,CACIJ,CAAA,CAAMI,CAAN,CACA,CADYsE,CACZ,CADoB,GACpB,CAD2B,GAC3B,CAAAA,CAAA,CAAQM,IAAAiB,MAAA,CAAWvB,CAAX,CAAmB,GAAnB,CACZ,OAAO,KAAIhF,CAAJ,CAASM,CAAT,CAAgBC,CAAhB,CAXiC,CAmB5CP,EAAA+B,UAAAyE,SAAA,CAA0BC,QAAQ,EAAG,CACjC,GAAI,IAAArE,WAAA,EAAJ,CACI,MAAO,KAAA8B,OAAA,CAAYlE,CAAA0C,UAAZ,CAAA,CA0ZGuC,WA1ZH,CAAiD,CAAC,IAAAC,OAAA,EAAAsB,SAAA,EAE7D,KAJiC,IAIxB9F,EAAE,CAJsB,CAInB2E,EAAO,CAJY,CAIT1E,EAAE2E,IAAAC,IAAA,CAAS9E,CAAT,CAAiB,CAAjB,CAA1B,CAA+CC,CAA/C,CAAiDC,CAAjD,CAAoD,EAAED,CAAtD,CACI2E,CAAA,EAAU,IAAA/E,MAAA,CAAWI,CAAX,CAAV,CAA0BR,CAAA,CAAeQ,CAAf,CAC9B,OAAO2E,EAN0B,CAgBrCrF,EAAA+B,UAAAM,IAAA,CAAqBqE,QAAQ,EAAG,CAC5B,IAD4B,IACnBhG,EAAE,CADiB,CACdJ,EAAUE,KAAJ,CAAUC,CAAV,CAApB,CAAuCC,CAAvC,CAAyCD,CAAzC,CAAiD,EAAEC,CAAnD,CACIJ,CAAA,CAAMI,CAAN,CAAA,CAAW,CAAC,IAAAJ,MAAA,CAAWI,CAAX,CAChB,OAAO,KAAIV,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CAHqB,CAYhCP,EAAA+B,UAAA4E,IAAA,CAAqBC,QAAQ,CAAC3C,CAAD,CAAQ,CAC5BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,KAHiC,IAGxBvD,EAAE,CAHsB,CAGnBJ,EAAUE,KAAJ,CAAUC,CAAV,CAApB,CAAuCC,CAAvC,CAAyCD,CAAzC,CAAiD,EAAEC,CAAnD,CACIJ,CAAA,CAAMI,CAAN,CAAA,CAAW,IAAAJ,MAAA,CAAWI,CAAX,CAAX,CAA2BuD,CAAA3D,MAAA,CAAYI,CAAZ,CAC/B,OAAO,KAAIV,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CAL0B,CAcrCP;CAAA+B,UAAA4D,GAAA,CAAoBkB,QAAQ,CAAC5C,CAAD,CAAQ,CAC3BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,KAHgC,IAGvBvD,EAAE,CAHqB,CAGlBJ,EAAUE,KAAJ,CAAUC,CAAV,CAApB,CAAuCC,CAAvC,CAAyCD,CAAzC,CAAiD,EAAEC,CAAnD,CACIJ,CAAA,CAAMI,CAAN,CAAA,CAAW,IAAAJ,MAAA,CAAWI,CAAX,CAAX,CAA2BuD,CAAA3D,MAAA,CAAYI,CAAZ,CAC/B,OAAO,KAAIV,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CALyB,CAcpCP,EAAA+B,UAAA+E,IAAA,CAAqBC,QAAQ,CAAC9C,CAAD,CAAQ,CAC5BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,KAHiC,IAGxBvD,EAAE,CAHsB,CAGnBJ,EAAUE,KAAJ,CAAUC,CAAV,CAApB,CAAuCC,CAAvC,CAAyCD,CAAzC,CAAiD,EAAEC,CAAnD,CACIJ,CAAA,CAAMI,CAAN,CAAA,CAAW,IAAAJ,MAAA,CAAWI,CAAX,CAAX,CAA2BuD,CAAA3D,MAAA,CAAYI,CAAZ,CAC/B,OAAO,KAAIV,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CAL0B,CAcrCP,EAAA+B,UAAA6D,UAAA,CAA2BoB,QAAQ,CAACC,CAAD,CAAU,CACrCjH,CAAAmB,OAAA,CAAY8F,CAAZ,CAAJ,GACIA,CADJ,CACcA,CAAA9B,MAAA,EADd,CAEA8B,EAAA,EAAW5G,CACX,IAAgB,CAAhB,GAAI4G,CAAJ,CACI,MAAO,KACG,EAAd,CAAIA,CAAJ,GACIA,CADJ,EACe5G,CADf,CAEA,KAAI6G,EAAYD,CAAZC,CAAoB,CAApBA,CAAuB,CAC3BD,EAAA,EAAW,CACX,KAVyC,IAUhCvG,EAAE,CAV8B,CAU3BJ,EAAMS,CAAA4B,MAAA,CAAa,CAAb,CAAgBlC,CAAhB,CAVqB,CAUI0G,CAA7C,CAAkDzG,CAAlD,CAAoDD,CAApD,EACQ,GAAC0G,CAAD,CAAOzG,CAAP,CAASwG,CAAT,GAAsBzG,CAAtB,CADR,CAA4D,EAAEC,CAA9D,CAGIJ,CAAA,CAAM6G,CAAN,CACA,EADe,IAAA7G,MAAA,CAAWI,CAAX,CACf,EADgCuG,CAChC,CAD2C,GAC3C,CAAI,EAAEE,CAAN,CAAY1G,CAAZ;CACIH,CAAA,CAAM6G,CAAN,CADJ,EACmB,IAAA7G,MAAA,CAAWI,CAAX,CADnB,EACoCuG,CADpC,GACgD,CADhD,CACqD,GADrD,CAGJ,OAAO,KAAIjH,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CAjBkC,CA4B7CP,EAAA+B,UAAAqF,WAAA,CAA4BC,QAAQ,CAACJ,CAAD,CAAUK,CAAV,CAAmB,CAC/CtH,CAAAmB,OAAA,CAAY8F,CAAZ,CAAJ,GACIA,CADJ,CACcA,CAAA9B,MAAA,EADd,CAEA8B,EAAA,EAAW5G,CACX,IAAgB,CAAhB,GAAI4G,CAAJ,CACI,MAAO,KACG,EAAd,CAAIA,CAAJ,GACIA,CADJ,EACe5G,CADf,CAEA,KAAI6G,EAAYD,CAAZC,CAAoB,CAApBA,CAAuB,CAC3BD,EAAA,EAAW,CATwC,KAU/C3G,EAAQS,CAAA4B,MAAA,CAAa,CAAb,CAAgBlC,CAAhB,CAVuC,CAUdC,CACrC,IAAK4G,CAAAA,CAAL,EAAkD,GAAlD,IAAiB,IAAAhH,MAAA,CAAWQ,CAAX,CAAjB,CAAwC,GAAxC,EAAwD,CACpD,IAAIH,CAAQD,EAAA,CAAED,CAAF,CAAS,CAAd,KAAiBE,CAAjB,CAAmBF,CAAnB,CAA0ByG,CAA1B,CAAmC,CAAnC,CAAsCxG,CAAtC,EAAyCC,CAAzC,CAA4C,EAAED,CAA9C,CACHJ,CAAA,CAAMI,CAAN,CAAA,CAAW,GACfJ,EAAA,CAAM,EAAEI,CAAR,CAAA,CAAuBJ,CAAA,CAAMI,CAAN,CAAvB,EAAoC,CAApC,CAAsCuG,CAAtC,CAAkD,GAHE,CAKxD,IAAIE,CACJ,KAAKzG,CAAL,CAAO,CAAP,CAAUA,CAAV,CAAYD,CAAZ,CAAoB,EAAEC,CAAtB,CAC8B,CAE1B,GAFKyG,CAEL,CAFWzG,CAEX,CAFawG,CAEb,IADI5G,CAAA,CAAM6G,CAAN,CACJ,EADmB,IAAA7G,MAAA,CAAWI,CAAX,CACnB,GADqCuG,CACrC,CADgD,GAChD,EAAa,CAAb,EAAI,EAAEE,CAAN,GACI7G,CAAA,CAAM6G,CAAN,CADJ,EACmB,IAAA7G,MAAA,CAAWI,CAAX,CADnB,EACoC,CADpC,GAC0CuG,CAD1C,CACqD,GADrD,CAGJ,OAAO,KAAIjH,CAAJ,CAASM,CAAT,CAAgB,IAAAC,SAAhB,CAvB4C,CAgCvDP,EAAA+B,UAAAwF,mBAAA,CAAoCC,QAAQ,CAACP,CAAD,CAAU,CAClD,MAAO,KAAAG,WAAA,CAAgBH,CAAhB;AAAyB,CAAA,CAAzB,CAD2C,CAYtDjH,EAAA+B,UAAA0F,IAAA,CAAqBC,QAAQ,CAACzD,CAAD,CAAQ,CAC5BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CADiC,KAG7B0D,EAAQ,IAAAhB,IAAA,CAAS1C,CAAT,CACRoB,EAAAA,CAAS,IAAAyB,IAAA,CAAS7C,CAAT,CAIb,KALA,IAEI2D,CAGJ,CAAQ,CAAAD,CAAA9D,OAAA,EAAR,CAAA,CACI+D,CAEA,CAFYD,CAAA/B,UAAA,CAAgB,CAAhB,CAEZ,CADA+B,CACA,CADQtC,CAAAsB,IAAA,CAAWiB,CAAX,CACR,CAAAvC,CAAA,CAASA,CAAAyB,IAAA,CAAWc,CAAX,CACb,OAAOvC,EAZ0B,CAoBrCrF,EAAA+B,UAAAmD,OAAA,CAAwB2C,QAAQ,EAAG,CAC/B,MAAO,KAAAxF,IAAA,EAAAoF,IAAA,CAAezH,CAAAwC,IAAf,CADwB,CAUnCxC,EAAA8H,QAAA,CAAe9H,CAAAwC,IAAA0C,OAAA,EAQflF,EAAA+B,UAAAgG,SAAA,CAA0BC,QAAQ,CAAC/D,CAAD,CAAQ,CACjCjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,OAAO,KAAAwD,IAAA,CAASxD,CAAAiB,OAAA,EAAT,CAH+B,CAW1ClF,EAAA+B,UAAAkG,SAAA,CAA0BC,QAAQ,EAAG,CACjC,MAAI,KAAA3H,SAAJ,CACW,IADX,CAEO6C,CAAC,IAAAhB,WAAA,EAAA,CAAoB,IAAA8C,OAAA,EAApB,CAAoC,IAArC9B,YAAA,EAH0B,CAYrCpD,EAAA+B,UAAAoG,SAAA,CAA0BC,QAAQ,CAACnE,CAAD,CAAQ,CACjCjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL;CACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CADsC,KAIlC7B,EAAa,IAAAA,WAAA,EAAbA,GAAmC6B,CAAA7B,WAAA,EAJD,CAKlCiG,EAAI,IAAAJ,SAAA,EACJK,EAAAA,CAAIrE,CAAAgE,SAAA,EAER,KAJA,IAGI5C,EAAS,IAAA9E,SAAA,CAAgBP,CAAAuC,MAAhB,CAA6BvC,CAAAsC,KAC1C,CAAM,CAAAgG,CAAAzE,OAAA,EAAN,CAAkBwE,CAAA,CAAEA,CAAAzC,UAAA,CAAY,CAAZ,CAAF,CAAkB0C,CAAlB,CAAoBA,CAAAlB,WAAA,CAAa,CAAb,CAAgB,CAAA,CAAhB,CAAtC,CAC6B,CAAzB,IAAKkB,CAAAhI,MAAA,CAAQ,CAAR,CAAL,CAAkB,CAAlB,IACI+E,CADJ,CACaA,CAAAoC,IAAA,CAAWY,CAAX,CADb,CAEJ,OAAOjG,EAAA,CAAaiD,CAAAH,OAAA,EAAb,CAA+BG,CAXA,CAsB1CrF,EAAAuI,OAAA,CAAcC,QAAQ,CAACC,CAAD,CAAWC,CAAX,CAAoB,CACtC,GAAIA,CAAA7E,OAAA,EAAJ,CACI,KAAMhD,MAAA,CAAM,kBAAN,CAAN,CAQJ,IAVsC,IAIlCuB,EAAaqG,CAAArG,WAAA,EAAbA,GAAuCsG,CAAAtG,WAAA,EAJL,CAKlCuG,EAAWF,CAAAlI,SAAA,CAAoBP,CAAAuC,MAApB,CAAiCvC,CAAAsC,KALV,CAMlCsG,EAAYH,CAAAR,SAAA,EANsB,CAOlCY,EAAUH,CAAAT,SAAA,EAPwB,CAQlCa,EAAO9I,CAAAyC,KAR2B,CASlCsG,EAAU/I,CAAA0C,UAAAU,WAAA,EACd,CAAO0F,CAAAxE,SAAA,CAAcyE,CAAd,CAAP,EAAiCF,CAAAvE,SAAA,CAAiBsE,CAAjB,CAAjC,CAAA,CACIC,CACA,CADUA,CAAAjD,UAAA,CAAkB,CAAlB,CACV,CAAAkD,CAAA,CAAOA,CAAAlD,UAAA,CAAe,CAAf,CACX;IAAA,CAAOkD,CAAAlE,iBAAA,CAAsB5E,CAAAyC,KAAtB,CAAP,CAAA,CACQoG,CAAArE,cAAA,CAAsBoE,CAAtB,CAIJ,GAHID,CACA,CADWA,CAAAlB,IAAA,CAAaqB,CAAb,CACX,CAAAF,CAAA,CAAYA,CAAAb,SAAA,CAAmBc,CAAnB,CAEhB,EADAA,CACA,CADUA,CAAAzB,WAAA,CAAmB,CAAnB,CAAsB,CAAA,CAAtB,CACV,CAAA0B,CAAA,CAAOA,CAAA1B,WAAA,CAAgB,CAAhB,CAAmB,CAAA,CAAnB,CAEX,OAAO,CACH,SAAYhF,CAAA,CAAauG,CAAAzD,OAAA,EAAb,CAAiCyD,CAD1C,CAEH,UAAaC,CAFV,CApB+B,CAgC1C5I,EAAA+B,UAAAwG,OAAA,CAAwBS,QAAQ,CAAC/E,CAAD,CAAQ,CAC/BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,OAAOjE,EAAAuI,OAAA,CAAY,IAAZ,CAAkBtE,CAAlB,CAAA,SAH6B,CAYxCjE,EAAA+B,UAAAkH,OAAA,CAAwBC,QAAQ,CAACjF,CAAD,CAAQ,CAC/BjE,CAAAmB,OAAA,CAAY8C,CAAZ,CAAL,GACIA,CADJ,CACYjE,CAAAuB,QAAA,CAAa0C,CAAb,CADZ,CAEA,OAAOjE,EAAAuI,OAAA,CAAY,IAAZ,CAAkBtE,CAAlB,CAAA,UAH6B,CAaxCjE,EAAA+B,UAAAoH,QAAA,CAAyBC,QAAQ,CAACC,CAAD,CAAS,CACtC,IADsC,IAC7B3I,EAAEI,CAD2B,CACjBwI,CADiB,CACZC,EAAI,EAA9B,CAAqC,CAArC,EAAkC7I,CAAlC,CAAwC,EAAEA,CAA1C,CAA6C,CAEzC,IADA4I,CACA,CADM,IAAAhJ,MAAA,CAAWI,CAAX,CAAA8I,SAAA,CAAuB,CAAvB,CACN,CAAoB,CAApB,CAAOF,CAAA1I,OAAP,CAAA,CACI0I,CAAA,CAAM,GAAN,CAAUA,CACdC,EAAA,EAAOD,CACHD,EAAJ,EAAkB,CAAlB,CAAc3I,CAAd,GACI6I,CADJ,EACW,GADX,CALyC,CAQzC,IAAAhJ,SAAJ;CACIgJ,CADJ,EACWF,CAAA,CAAS,IAAT,CAAgB,GAD3B,CAEA,OAAOE,EAX+B,CAsB1C,KAAIE,EAASzJ,CAAA8E,QAAA,CAAa,CAAb,CAAb,CAQI4E,EAAU1J,CAAA8E,QAAA,CAAa,EAAb,CAYd9E,EAAA2B,WAAA,CAAkBgI,QAAQ,CAAC3E,CAAD,CAAQzE,CAAR,CAAkBqJ,CAAlB,CAAyB,CACvB,QAAxB,GAAI,MAAOrJ,EAAX,GACIqJ,CACI,CADIrJ,CACJ,CAAAA,CAAA,CAAW,CAAA,CAFnB,CAGAyE,EAAA,CAAQ6E,CAAC7E,CAAD6E,CAAO,EAAPA,aAAA,EACRD,EAAA,CAAQA,CAAR,EAAiB,EACjB,IAAY,CAAZ,CAAIA,CAAJ,EAAyB,EAAzB,CAAiBA,CAAjB,CACI,KAAME,WAAA,CAAW,sBAAX,CAAkCF,CAAlC,CAAwC,SAAxC,CAAN,CACJ,GAAwB,GAAxB,GAAI5E,CAAA+E,OAAA,CAAa,CAAb,CAAJ,CACI,MAAO/J,EAAA2B,WAAA,CAAgBqD,CAAAgF,UAAA,CAAgB,CAAhB,CAAhB,CAAoCzJ,CAApC,CAA8CqJ,CAA9C,CAAA1E,OAAA,EACa,IAAxB,GAAIF,CAAA+E,OAAA,CAAa,CAAb,CAAJ,GACI/E,CADJ,CACYA,CAAAgF,UAAA,CAAgB,CAAhB,CADZ,CAGA,IAAc,GAAd,GAAIhF,CAAJ,EAA+B,KAA/B,GAAqBA,CAArB,EAAkD,UAAlD,GAAwCA,CAAxC,CACI,MAAOzE,EAAA,CAAWP,CAAAuC,MAAX,CAAwBvC,CAAAsC,KAE/B+C,EAAAA,CAAS9E,CAAA,CAAWP,CAAAuC,MAAX,CAAwBvC,CAAAsC,KAIrC,KAJA,IACI2H,EAA0B,CAAX,GAACL,CAAD,CACT,QAAQ,CAAClJ,CAAD,CAAI,CAAE,MAAO,EAAP,EAAYA,CAAd,CADH,CAET4E,IAAA4E,IAAAC,KAAA,CAAc7E,IAAd,CAAoBsE,CAApB,CAHV,CAISlJ,EAAE,CAJX,CAIcC,EAAEqE,CAAApE,OAJhB,CAI8BwJ,CAJ9B,CAIkC3I,CAAlC,CAAuCf,CAAvC,CAAyCC,CAAzC,CAA4C,EAAED,CAA9C,CAAiD,CAC7C0J,CAAA;AAAKpF,CAAA+E,OAAA,CAAapJ,CAAb,CAAeD,CAAf,CAAiB,CAAjB,CACLe,EAAA,CA2FA4I,sCA3FMC,QAAA,CAAcF,CAAd,CACN,IAAU,CAAV,CAAI3I,CAAJ,EAAeA,CAAf,CAAqBmI,CAArB,CACI,KAAM/I,MAAA,CAAM,8BAAN,CAAqCuJ,CAArC,CAAN,CACJ/E,CAAA,CAASA,CAAAoC,IAAA,CAAWzH,CAAA8E,QAAA,CAAarD,CAAb,CAAA0G,SAAA,CAA2BnI,CAAA8E,QAAA,CAAamF,CAAA,CAAavJ,CAAb,CAAb,CAA3B,CAAX,CALoC,CAOjD,MAAO2E,EA3BwC,CAqCnDrF,EAAA+B,UAAAyH,SAAA,CAA0Be,QAAQ,CAACX,CAAD,CAAQ,CACtCA,CAAA,CAAQA,CAAR,EAAiB,EACZ5J,EAAAmB,OAAA,CAAYyI,CAAZ,CAAL,GACIA,CADJ,CACY5J,CAAAuB,QAAA,CAAaqI,CAAb,CADZ,CAEA,IAAIA,CAAAtF,SAAA,CAAemF,CAAf,CAAJ,EAA8BG,CAAAlF,YAAA,CAAkBgF,CAAlB,CAA9B,CACI,KAAMI,WAAA,CAAW,sBAAX,CAAkCF,CAAAzE,MAAA,EAAlC,CAAgD,SAAhD,CAAN,CACJ,IAAIqF,EAAO,IAAAjK,SAAA,CAAgBP,CAAAuC,MAAhB,CAA6BvC,CAAAsC,KACxC,IAAI,IAAAF,WAAA,EAAJ,CAAuB,CACnB,GAAI,IAAA8B,OAAA,CAAYlE,CAAA0C,UAAZ,CAAJ,CAAiC,CACzB+H,IAAAA,EAAMzK,CAAAuI,OAAA,CAAY,IAAZ,CAAkBqB,CAAlB,CAAA,SAANa,CACAC,EAAMD,CAAAtC,SAAA,CAAayB,CAAb,CAAA7B,SAAA,CAA6B,IAA7B,CACV,OAAO0C,EAAAjB,SAAA,CAAaI,CAAb,CAAP;AAA6Bc,CAAAvF,MAAA,EAAAqE,SAAA,CAAqBI,CAAAzE,MAAA,EAArB,CAHA,CAKjC,MAAO,GAAP,CAAW,IAAAD,OAAA,EAAAsE,SAAA,CAAuBI,CAAvB,CANQ,CASnBvE,IAAAA,EAAS,IAATA,CACAsF,EAAS,EADTtF,CAEAuF,CACJ,GACIA,EAEA,CAFMvF,CAAA4D,OAAA,CAAcW,CAAd,CAEN,CADAe,CAAAE,QAAA,CAuDAR,sCAvDeN,OAAA,CAAaa,CAAAzF,MAAA,EAAb,CAAf,CACA,CAAAE,CAAA,CAASrF,CAAAuI,OAAA,CAAYlD,CAAZ,CAAoBuE,CAApB,CAAA,SAHb,OAIQ,CAAAvE,CAAAnB,OAAA,CAAcsG,CAAd,CAJR,CAKA,OAAOG,EAAAG,KAAA,CAAY,EAAZ,CAxB+B,CA4B1C9K,EAAA,CAAK,OAAL,CAAaK,CAAb,CAAA,CAAsBL,CAAAmB,OACtB,KAAS4J,IAAAA,CAAT,GAAgB5K,EAAhB,CACI,GAAIA,CAAA6K,eAAA,CAAuBD,CAAvB,CAAJ,CACI,IAAKrK,CAAL,CAAO,CAAP,CAAUA,CAAV,CAAYP,CAAA,CAAQ4K,CAAR,CAAAnK,OAAZ,CAAiC,EAAEF,CAAnC,CACIV,CAAA+B,UAAA,CAAe5B,CAAA,CAAQ4K,CAAR,CAAA,CAAarK,CAAb,CAAf,CAAA,CAAkCV,CAAA+B,UAAA,CAAegJ,CAAf,CAE9C,OAAO9K,EAAA,CAAQI,CAAR,CAAP,CAAwBL,CAx2BH,CATN,CAAZ,EAg8B0B,YAAtB,GAAI,MAAOiL,OAAX,EAAqCA,MAAA,QAArC,CACXA,MAAA,QADW,CACSjL,CADT,CAEsB,UAAtB,GAAI,MAAOkL,OAAX,EAAoCA,MAAA,IAApC,CACXA,MAAA,CAAO,QAAQ,EAAG,CAAE,MAAOlL,EAAT,CAAlB,CADW;AAGX,CAACD,CAAA,QAAD,CAAqBA,CAAA,QAArB,EAA0C,EAA1C,MAHW,CAG6CC,CAv8B9C,CAAjB,CAAD,CAy8BG,IAz8BH;", | ||
| "mappings":"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", | ||
| "sources":["dist/IntN.js"], | ||
| "names":["global","IntN","classes","double_256_pwr","aliases","makeIntN","nBits","bytes","unsigned","Array","nBytes","i","k","length","Error","maxIndex","zeroes","ones","BITS","BYTES","isIntN","IntN.isIntN","obj","isArray","valueOf","IntN.valueOf","val","fromNumber","fromString","low","high","fromInts","prototype","cast","IntN.prototype.cast","TargetIntN","retainMsb","isNegative","not","ZERO","UZERO","ONE","UONE","MIN_VALUE","slice","MAX_VALUE","MAX_UNSIGNED_VALUE","isSigned","IntN.prototype.isSigned","isUnsigned","IntN.prototype.isUnsigned","toSigned","IntN.prototype.toSigned","toUnsigned","IntN.prototype.toUnsigned","IntN.prototype.isNegative","isPositive","IntN.prototype.isPositive","isEven","IntN.prototype.isEven","isOdd","IntN.prototype.isOdd","isZero","IntN.prototype.isZero","compare","IntN.prototype.compare","other","equals","IntN.prototype.equals","notEquals","IntN.prototype.notEquals","lessThan","IntN.prototype.lessThan","lessThanEqual","IntN.prototype.lessThanEqual","greaterThan","IntN.prototype.greaterThan","greaterThanEqual","IntN.prototype.greaterThanEqual","fromInt","IntN.fromInt","value","int32_min_value","negate","toInt","IntN.prototype.toInt","result","Math","min","IntN.fromInts","ints","ceil","or","shiftLeft","toInts","IntN.prototype.toInts","numChunks","arr","offset","j","l","IntN.fromNumber","TypeError","isFinite","floor","toNumber","IntN.prototype.toNumber","IntN.prototype.not","and","IntN.prototype.and","IntN.prototype.or","xor","IntN.prototype.xor","IntN.prototype.shiftLeft","numBits","numBytes","idx","shiftRight","IntN.prototype.shiftRight","logical","shiftRightUnsigned","IntN.prototype.shiftRightUnsigned","add","IntN.prototype.add","carry","carryPwr2","IntN.prototype.negate","NEG_ONE","subtract","IntN.prototype.subtract","absolute","IntN.prototype.absolute","multiply","IntN.prototype.multiply","a","b","divide","IntN.divide","dividend","divisor","quotient","remainder","product","term","maxTerm","IntN.prototype.divide","modulo","IntN.prototype.modulo","toDebug","IntN.prototype.toDebug","spaces","byt","out","toString","IntN_2","IntN_36","IntN.fromString","radix","toLowerCase","RangeError","charAt","substring","radixToPower","pow","bind","ch","chars","indexOf","IntN.prototype.toString","zero","div","rem","digits","mod","unshift","join","key","hasOwnProperty","module","define"] | ||
| "names":["global","IntN","classes","double_256_pwr","aliases","makeIntN","nBits","bytes","unsigned","Array","nBytes","i","k","length","Error","maxIndex","zeroes","ones","BITS","BYTES","isIntN","IntN.isIntN","obj","isArray","valueOf","IntN.valueOf","val","fromNumber","fromString","low","high","fromInts","prototype","cast","IntN.prototype.cast","TargetIntN","retainMsb","isNegative","not","ZERO","UZERO","ONE","UONE","MIN_VALUE","slice","MAX_VALUE","MAX_UNSIGNED_VALUE","isSigned","IntN.prototype.isSigned","isUnsigned","IntN.prototype.isUnsigned","toSigned","IntN.prototype.toSigned","toUnsigned","IntN.prototype.toUnsigned","IntN.prototype.isNegative","isPositive","IntN.prototype.isPositive","isEven","IntN.prototype.isEven","isOdd","IntN.prototype.isOdd","isZero","IntN.prototype.isZero","compare","IntN.prototype.compare","other","equals","IntN.prototype.equals","notEquals","IntN.prototype.notEquals","lessThan","IntN.prototype.lessThan","lessThanEqual","IntN.prototype.lessThanEqual","greaterThan","IntN.prototype.greaterThan","greaterThanEqual","IntN.prototype.greaterThanEqual","fromInt","IntN.fromInt","value","int32_min_value","negate","toInt","IntN.prototype.toInt","result","Math","min","IntN.fromInts","ints","ceil","or","shiftLeft","toInts","IntN.prototype.toInts","numChunks","arr","offset","j","l","IntN.fromNumber","TypeError","isFinite","floor","toNumber","IntN.prototype.toNumber","IntN.prototype.not","and","IntN.prototype.and","IntN.prototype.or","xor","IntN.prototype.xor","IntN.prototype.shiftLeft","numBits","numBytes","idx","shiftRight","IntN.prototype.shiftRight","logical","shiftRightUnsigned","IntN.prototype.shiftRightUnsigned","add","IntN.add","a","b","carry","carryPwr2","IntN.prototype.add","IntN.prototype.negate","NEG_ONE","subtract","IntN.prototype.subtract","absolute","IntN.prototype.absolute","multiply","IntN.multiply","IntN.prototype.multiply","divide","IntN.divide","dividend","divisor","quotient","remainder","product","term","maxTerm","IntN.prototype.divide","modulo","IntN.prototype.modulo","toDebug","IntN.prototype.toDebug","spaces","byt","out","toString","IntN_2","IntN_36","IntN.fromString","radix","toLowerCase","RangeError","charAt","substring","radixToPower","pow","bind","ch","chars","indexOf","IntN.prototype.toString","zero","div","rem","digits","mod","unshift","join","key","hasOwnProperty","module","define"] | ||
| } |
+32
-12
@@ -108,6 +108,16 @@ ## Class IntN | ||
| #### IntN.add(a, b) | ||
| Adds the specified IntNs and returns the sum. Does not type check arguments. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | a | *!IntN* | | ||
| | b | *!IntN* | | ||
| | **@returns** | *!IntN* | | ||
| #### IntN.divide(dividend, divisor) | ||
| Divides the specified dividend by the specified divisor. This method is used internally by [IntN#divide](#intndivideother) | ||
| and [IntN#modulo](#intnmoduloother) and is exposed statically in case both the result and the remainder are required. | ||
| Divides the specified dividend by the specified divisor and returns both the quotient and the remainder. Does | ||
| not type check arguments. | ||
@@ -122,3 +132,3 @@ | Parameter | Type | Description | ||
| Constructs an IntN from a 32bit integer value. | ||
| Constructs an IntN from a 32 bit integer value. | ||
@@ -133,7 +143,7 @@ | Parameter | Type | Description | ||
| Reassembles an IntN from an array of 32bit integers, least significant first. | ||
| Reassembles an IntN from an array of 32 bit integers, least significant first. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | ints | *!Array.<number>* | Array of 32bit integers | ||
| | ints | *!Array.<number>* | Array of 32 bit integers | ||
| | unsigned | *boolean* | Whether unsigned or not, defaults to `false` for signed | ||
@@ -174,2 +184,12 @@ | **@returns** | *!IntN* | | ||
| #### IntN.multiply(a, b) | ||
| Multiplies the specified IntNs and returns the product. Does not type check arguments. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | a | *!IntN* | | ||
| | b | *!IntN* | | ||
| | **@returns** | *!IntN* | | ||
| #### IntN.valueOf(val) | ||
@@ -212,3 +232,3 @@ | ||
| Adds the specified to this IntN and returns the result. | ||
| Adds the specified to this IntN and returns the sum. | ||
@@ -250,3 +270,3 @@ | Parameter | Type | Description | ||
| Divides this IntN by the specified and returns the result. | ||
| Divides this IntN by the specified and returns the quotient. | ||
@@ -361,3 +381,3 @@ | Parameter | Type | Description | ||
| Returns the remainder of the division of this IntN by the specified. | ||
| Divides this IntN by the specified and returns the remainder. | ||
@@ -371,3 +391,3 @@ | Parameter | Type | Description | ||
| Multiplies this IntN with the specified and returns the result. | ||
| Multiplies this IntN with the specified and returns the product. | ||
@@ -443,3 +463,3 @@ | Parameter | Type | Description | ||
| Subtracts the specified from this IntN and returns the result. | ||
| Subtracts the specified from this IntN and returns the difference. | ||
@@ -463,3 +483,3 @@ | Parameter | Type | Description | ||
| Converts this IntN to a 32bit integer. | ||
| Converts this IntN to a 32 bit integer. | ||
@@ -473,3 +493,3 @@ | Parameter | Type | Description | ||
| Disassembles this IntN into an array of 32bit integers, least significant first. | ||
| Disassembles this IntN into an array of 32 bit integers, least significant first. | ||
@@ -476,0 +496,0 @@ | Parameter | Type | Description |
+1
-1
| { | ||
| "name": "intn", | ||
| "version": "0.9.2", | ||
| "version": "0.10.0", | ||
| "author": "Daniel Wirtz <dcode@dcode.io>", | ||
@@ -5,0 +5,0 @@ "description": "A library for representing and working with arbitrary byte size two's complement integers, signed and unsigned.", |
+33
-13
@@ -134,6 +134,16 @@  | ||
| #### IntN.add(a, b) | ||
| Adds the specified IntNs and returns the sum. Does not type check arguments. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | a | *!IntN* | | ||
| | b | *!IntN* | | ||
| | **@returns** | *!IntN* | | ||
| #### IntN.divide(dividend, divisor) | ||
| Divides the specified dividend by the specified divisor. This method is used internally by [IntN#divide](#intndivideother) | ||
| and [IntN#modulo](#intnmoduloother) and is exposed statically in case both the result and the remainder are required. | ||
| Divides the specified dividend by the specified divisor and returns both the quotient and the remainder. Does | ||
| not type check arguments. | ||
@@ -148,3 +158,3 @@ | Parameter | Type | Description | ||
| Constructs an IntN from a 32bit integer value. | ||
| Constructs an IntN from a 32 bit integer value. | ||
@@ -159,7 +169,7 @@ | Parameter | Type | Description | ||
| Reassembles an IntN from an array of 32bit integers, least significant first. | ||
| Reassembles an IntN from an array of 32 bit integers, least significant first. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | ints | *!Array.<number>* | Array of 32bit integers | ||
| | ints | *!Array.<number>* | Array of 32 bit integers | ||
| | unsigned | *boolean* | Whether unsigned or not, defaults to `false` for signed | ||
@@ -200,2 +210,12 @@ | **@returns** | *!IntN* | | ||
| #### IntN.multiply(a, b) | ||
| Multiplies the specified IntNs and returns the product. Does not type check arguments. | ||
| | Parameter | Type | Description | ||
| |-----------------|-----------------|--------------- | ||
| | a | *!IntN* | | ||
| | b | *!IntN* | | ||
| | **@returns** | *!IntN* | | ||
| #### IntN.valueOf(val) | ||
@@ -207,3 +227,3 @@ | ||
| |-----------------|-----------------|--------------- | ||
| | val | *number | string | !{bytes: !Array.<number>, unsigned: boolean} | {low: number, high: number, unsigned: boolean}* | Value | ||
| | val | *!IntN | number | string | !{bytes: !Array.<number>, unsigned: boolean} | {low: number, high: number, unsigned: boolean}* | Value | ||
| | **@returns** | *!IntN* | | ||
@@ -239,3 +259,3 @@ | ||
| Adds the specified to this IntN and returns the result. | ||
| Adds the specified to this IntN and returns the sum. | ||
@@ -277,3 +297,3 @@ | Parameter | Type | Description | ||
| Divides this IntN by the specified and returns the result. | ||
| Divides this IntN by the specified and returns the quotient. | ||
@@ -388,3 +408,3 @@ | Parameter | Type | Description | ||
| Returns the remainder of the division of this IntN by the specified. | ||
| Divides this IntN by the specified and returns the remainder. | ||
@@ -398,3 +418,3 @@ | Parameter | Type | Description | ||
| Multiplies this IntN with the specified and returns the result. | ||
| Multiplies this IntN with the specified and returns the product. | ||
@@ -470,3 +490,3 @@ | Parameter | Type | Description | ||
| Subtracts the specified from this IntN and returns the result. | ||
| Subtracts the specified from this IntN and returns the difference. | ||
@@ -490,3 +510,3 @@ | Parameter | Type | Description | ||
| Converts this IntN to a 32bit integer. | ||
| Converts this IntN to a 32 bit integer. | ||
@@ -500,3 +520,3 @@ | Parameter | Type | Description | ||
| Disassembles this IntN into an array of 32bit integers, least significant first. | ||
| Disassembles this IntN into an array of 32 bit integers, least significant first. | ||
@@ -503,0 +523,0 @@ | Parameter | Type | Description |
+59
-33
@@ -124,3 +124,2 @@ var IntN = (function() { | ||
| return IntN.fromInts([val.low, val.high], val.unsigned); // for Long.js v1 compatibility | ||
| // Throws for not an object (undefined, null) bytes not an array (in constructor), | ||
@@ -625,12 +624,11 @@ // fills smaller, truncates larger N (does not respect sign if differing): | ||
| /** | ||
| * Adds the specified to this IntN and returns the result. | ||
| * @param {!IntN|number|string} other Other number | ||
| * Adds the specified IntNs and returns the sum. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| var carry = this.and(other), | ||
| result = this.xor(other), | ||
| IntN.add = function(a, b) { | ||
| var carry = a.and(b), | ||
| result = a.xor(b), | ||
| carryPwr2; | ||
@@ -647,2 +645,14 @@ // There seem to be no performance benefits testing against == 0 or == 1 (test probably too costly in avg). | ||
| /** | ||
| * Adds the specified to this IntN and returns the sum. | ||
| * @param {!IntN|number|string} other Other number | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.prototype.add = function(other) { | ||
| if (!IntN.isIntN(other)) | ||
| other = IntN.valueOf(other); | ||
| return IntN.add(this, other); | ||
| }; | ||
| /** | ||
| * Negates this IntN (*-1) and returns the result. | ||
@@ -653,3 +663,3 @@ * @returns {!IntN} | ||
| IntN.prototype.negate = function() { | ||
| return this.not().add(IntN.ONE); | ||
| return IntN.add(this.not(), IntN.ONE); | ||
| }; | ||
@@ -666,3 +676,3 @@ | ||
| /** | ||
| * Subtracts the specified from this IntN and returns the result. | ||
| * Subtracts the specified from this IntN and returns the difference. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -675,3 +685,3 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| return this.add(other.negate()); | ||
| return IntN.add(this, other.negate()); | ||
| }; | ||
@@ -691,3 +701,22 @@ | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the result. | ||
| * Multiplies the specified IntNs and returns the product. Does not type check arguments. | ||
| * @param {!IntN} a | ||
| * @param {!IntN} b | ||
| * @returns {!IntN} | ||
| * @expose | ||
| */ | ||
| IntN.multiply = function(a, b) { | ||
| // See comment in add above | ||
| var isNegative = a.isNegative() !== b.isNegative(), | ||
| result = a.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| a = a.absolute(); | ||
| b = b.absolute(); | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = IntN.add(result, a); | ||
| return isNegative ? result.negate() : result; | ||
| }; | ||
| /** | ||
| * Multiplies this IntN with the specified and returns the product. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -700,16 +729,8 @@ * @returns {!IntN} | ||
| other = IntN.valueOf(other); | ||
| // See comment in #add above | ||
| var isNegative = this.isNegative() !== other.isNegative(), | ||
| a = this.absolute(), | ||
| b = other.absolute(), | ||
| result = this.unsigned ? IntN.UZERO : IntN.ZERO; | ||
| for(;!b.isZero(); a=a.shiftLeft(1), b=b.shiftRight(1, true)) | ||
| if ((b.bytes[0] & 1) === 1) | ||
| result = result.add(a); | ||
| return isNegative ? result.negate() : result; | ||
| return IntN.multiply(this, other); | ||
| }; | ||
| /** | ||
| * Divides the specified dividend by the specified divisor. This method is used internally by {@link IntN#divide} | ||
| * and {@link IntN#modulo} and is exposed statically in case both the result and the remainder are required. | ||
| * Divides the specified dividend by the specified divisor and returns both the quotient and the remainder. Does | ||
| * not type check arguments. | ||
| * @param {!IntN} dividend | ||
@@ -723,3 +744,3 @@ * @param {!IntN} divisor | ||
| throw Error("division by zero"); | ||
| // See comment in #add multiply | ||
| // See comment in #add above | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
@@ -736,4 +757,4 @@ quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| if (product.lessThanEqual(remainder)) | ||
| quotient = quotient.add(term), | ||
| remainder = remainder.subtract(product); | ||
| quotient = IntN.add(quotient, term), | ||
| remainder = IntN.add(remainder, product.negate()); | ||
| product = product.shiftRight(1, true); | ||
@@ -749,3 +770,3 @@ term = term.shiftRight(1, true); | ||
| /** | ||
| * Divides this IntN by the specified and returns the result. | ||
| * Divides this IntN by the specified and returns the quotient. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -762,3 +783,3 @@ * @returns {!IntN} | ||
| /** | ||
| * Returns the remainder of the division of this IntN by the specified. | ||
| * Divides this IntN by the specified and returns the remainder. | ||
| * @param {!IntN|number|string} other Other number | ||
@@ -848,3 +869,3 @@ * @returns {!IntN} | ||
| throw Error("illegal interior character: "+ch); | ||
| result = result.add(IntN.fromInt(val).multiply(IntN.fromInt(radixToPower(i)))); | ||
| result = IntN.add(result, IntN.multiply(IntN.fromInt(val), IntN.fromInt(radixToPower(i)))); | ||
| } | ||
@@ -871,3 +892,3 @@ return result; | ||
| var div = IntN.divide(this, radix)['quotient'], | ||
| rem = div.multiply(radix).subtract(this); | ||
| rem = IntN.add(IntN.multiply(div, radix), this.negate()); | ||
| return div.toString(radix) + rem.toInt().toString(radix.toInt()); | ||
@@ -882,3 +903,3 @@ } | ||
| do | ||
| mod = result.modulo(radix), | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
@@ -893,5 +914,10 @@ result = IntN.divide(result, radix)['quotient']; | ||
| for (var key in aliases) | ||
| if (aliases.hasOwnProperty(key)) | ||
| if (aliases.hasOwnProperty(key)) { | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| if (IntN[key]) | ||
| IntN[aliases[key][i]] = IntN[key]; | ||
| for (i=0; i<aliases[key].length; ++i) | ||
| if (IntN.prototype[key]) | ||
| IntN.prototype[aliases[key][i]] = IntN.prototype[key]; | ||
| } | ||
@@ -898,0 +924,0 @@ return classes[nBits] = IntN; |
+1
-1
@@ -644,3 +644,3 @@ var IntN = require("../dist/IntN.min.js"), | ||
| } | ||
| }, | ||
| } | ||
@@ -647,0 +647,0 @@ /* "analysis": { |
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
227176
2.06%3399
2.29%615
3.36%