From c3bd48c282b7b6b0a0341b32d18e8f4b1ffc8e1b Mon Sep 17 00:00:00 2001 From: Jack Peterson Date: Sun, 13 Dec 2015 18:51:05 -0800 Subject: [PATCH] Added function check, browser property, json return for in-browser exportToFile --- dist/keythereum.js | 127 ++++++++++++++++++----------------------- dist/keythereum.min.js | 22 +++---- index.js | 123 ++++++++++++++++++--------------------- package.json | 2 +- test/keys.js | 34 +++++++---- 5 files changed, 146 insertions(+), 162 deletions(-) diff --git a/dist/keythereum.js b/dist/keythereum.js index 445585a..e17ad66 100644 --- a/dist/keythereum.js +++ b/dist/keythereum.js @@ -52,8 +52,14 @@ function hex2utf16le(input) { return JSON.parse('"' + output + '"'); } +function isFunction(f) { + return Object.prototype.toString.call(f) === "[object Function]"; +} + module.exports = { + browser: !NODE_JS, + constants: { // Suppress logging @@ -192,7 +198,7 @@ module.exports = { try { - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { setTimeout(function () { cb(new Buffer( @@ -223,7 +229,7 @@ module.exports = { } } catch (ex) { - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { cb(ex); } else { return ex; @@ -236,7 +242,7 @@ module.exports = { var prf = options.kdfparams.prf || this.constants.pbkdf2.prf; if (prf === "hmac-sha256") prf = "sha256"; - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { crypto.pbkdf2( password, @@ -284,7 +290,7 @@ module.exports = { var ivBytes = params.ivBytes || this.constants.ivBytes; // asynchronous key generation if callback is provided - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { // generate private key crypto.randomBytes(keyBytes, function (ex, privateKey) { @@ -413,7 +419,7 @@ module.exports = { if (privateKey.constructor === String) privateKey = str2buf(privateKey); // asynchronous if callback provided - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { this.deriveKey( password, @@ -494,7 +500,7 @@ module.exports = { } // derive secret key from password - if (cb && cb.constructor === Function) { + if (isFunction(cb)) { this.deriveKey(password, salt, keyObject.Crypto, function (derivedKey) { cb(verifyAndDecrypt(derivedKey, salt, iv, ciphertext)); }); @@ -510,53 +516,44 @@ module.exports = { /** * Export formatted JSON to keystore file. - * (Note: Node.js only!) * @param {Object} keyObject Keystore object. * @param {string=} keystore Path to keystore folder (default: "keystore"). * @param {function=} cb Callback function (optional). - * @return {string} JSON filename. + * @return {string} JSON filename (Node.js) or JSON string (browser). */ exportToFile: function (keyObject, keystore, cb) { - keystore = keystore || "keystore"; + var self = this; + var outfile, outpath, json; - var instructions = function (outpath) { - if (!this.constants.quiet) { + function instructions(outpath) { + if (!self.constants.quiet) { console.log( "Saved to file:\n" + outpath + "\n"+ "To use with geth, copy this file to your Ethereum "+ "keystore folder (usually ~/.ethereum/keystore)." ); } - }.bind(this); - - var outfile = "UTC--" + new Date().toISOString() + "--" + keyObject.address; - var outpath = path.join(keystore, outfile); - var json = JSON.stringify(keyObject); - - if (NODE_JS) { - - if (cb && cb.constructor === Function) { - - fs.writeFile(outpath, json, function (ex) { - if (ex) throw ex; - instructions(outpath); - cb(outpath); - }); - - } else { - - fs.writeFileSync(outpath, json); - instructions(outpath); - return outpath; - } - - } else { - if (cb && cb.constructor === Function) { - cb(outfile); - } else { - return outfile; - } } + + keystore = keystore || "keystore"; + outfile = "UTC--" + new Date().toISOString() + "--" + keyObject.address; + outpath = path.join(keystore, outfile); + json = JSON.stringify(keyObject); + + if (this.browser) { + if (!isFunction(cb)) return json; + return cb(json); + } + if (!isFunction(cb)) { + fs.writeFileSync(outpath, json); + instructions(outpath); + return outpath; + } + return fs.writeFile(outpath, json, function (ex) { + if (ex) throw ex; + instructions(outpath); + cb(outpath); + }); }, /** @@ -584,39 +581,29 @@ module.exports = { return filepath; } - if (NODE_JS) { - - datadir = datadir || path.join(process.env.HOME, ".ethereum"); - var keystore = path.join(datadir, "keystore"); - - if (cb && cb.constructor === Function) { - fs.readdir(keystore, function (ex, files) { - if (ex) throw ex; - var filepath = findKeyfile(keystore, address, files); - if (filepath) { - cb(JSON.parse(fs.readFileSync(filepath))); - } else { - throw new Error( - "could not find key file for address " + address - ); - } - }); - + if (this.browser) { + throw new Error("method only available in Node.js"); + } + datadir = datadir || path.join(process.env.HOME, ".ethereum"); + var keystore = path.join(datadir, "keystore"); + if (!isFunction(cb)) { + var filepath = findKeyfile(keystore, address, fs.readdirSync(keystore)); + if (filepath) { + return JSON.parse(fs.readFileSync(filepath)); } else { - - var filepath = findKeyfile(keystore, address, fs.readdirSync(keystore)); - if (filepath) { - return JSON.parse(fs.readFileSync(filepath)); - } else { - throw new Error( - "could not find key file for address " + address - ); - } + throw new Error( + "could not find key file for address " + address + ); } - - } else { - throw new Error("method only available in Node.js"); } + fs.readdir(keystore, function (ex, files) { + if (ex) return cb(ex); + var filepath = findKeyfile(keystore, address, files); + if (filepath) return cb(JSON.parse(fs.readFileSync(filepath))); + return new Error( + "could not find key file for address " + address + ); + }); } }; diff --git a/dist/keythereum.min.js b/dist/keythereum.min.js index b375933..76f814f 100644 --- a/dist/keythereum.min.js +++ b/dist/keythereum.min.js @@ -1,14 +1,14 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o-1){filepath=path.join(keystore,files[i]);if(fs.lstatSync(filepath).isDirectory()){filepath=path.join(filepath,files[i])}break}}return filepath}if(NODE_JS){datadir=datadir||path.join(process.env.HOME,".ethereum");var keystore=path.join(datadir,"keystore");if(cb&&cb.constructor===Function){fs.readdir(keystore,function(ex,files){if(ex)throw ex;var filepath=findKeyfile(keystore,address,files);if(filepath){cb(JSON.parse(fs.readFileSync(filepath)))}else{throw new Error("could not find key file for address "+address)}})}else{var filepath=findKeyfile(keystore,address,fs.readdirSync(keystore));if(filepath){return JSON.parse(fs.readFileSync(filepath))}else{throw new Error("could not find key file for address "+address)}}}else{throw new Error("method only available in Node.js")}}}}).call(this,require("_process"),require("buffer").Buffer)},{"./lib/keccak":3,"./lib/scrypt":4,_process:17,buffer:8,crypto:35,"crypto-browserify":35,elliptic:228,"ethereumjs-util":254,fs:5,"node-uuid":259,path:16,validator:260}],3:[function(require,module,exports){"use strict";module.exports=function(){var state,State,L,permute,zeros,RC,r,keccak_f;L=function(lo,hi){this.lo=lo?lo:0;this.hi=hi?hi:0};L.clone=function(a){return new L(a.lo,a.hi)};L.prototype={xor:function(that){this.lo^=that.lo;this.hi^=that.hi;return this},not:function(){return new L(~this.lo,~this.hi)},and:function(that){this.lo&=that.lo;this.hi&=that.hi;return this},circ:function(n){var tmp,m;if(n>=32){tmp=this.lo;this.lo=this.hi;this.hi=tmp;n-=32}if(n===0){return this}m=32-n;tmp=(this.hi<>>m);this.lo=(this.lo<>>m);this.hi=tmp;return this},toString:function(){var hex,o;hex=function(n){return("00"+n.toString(16)).slice(-2)};o=function(n){return hex(n&255)+hex(n>>>8)+hex(n>>>16)+hex(n>>>24)};return function(){return o(this.lo)+o(this.hi)}}()};zeros=function(k){var i,z=[];for(i=0;ic){return String.fromCharCode(c)}a.push(c);b=191c?1:2;return""}if(0c?String.fromCharCode((c&31)<<6|d&63):String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);a.length=0;return c};this.yb=function(a){for(var a=unescape(encodeURIComponent(a)),b=[],e=0;e>3<<3;return b}function ra(a){var b=sa;sa=sa+a|0;sa=sa+7>>3<<3;return b}function ua(a){var b=z;z=z+a|0;z=z+7>>3<<3;z>=va&&wa("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value, or (2) set Module.TOTAL_MEMORY before the program runs.");return b}function xa(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)}var ma=4,ya={},za=p,Aa;function w(a,b){a||wa("Assertion failed: "+b)}s.ccall=function(a,b,c,d){return Ba(Ca(a),b,c,d)};function Ca(a){try{var b=s["_"+a];b||(b=eval("_"+a))}catch(c){}w(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}function Ba(a,b,c,d){function e(a,b){if("string"==b){if(a===m||a===k||0===a){return 0}f||(f=ja());var c=qa(a.length+1);Da(a,c);return c}return"array"==b?(f||(f=ja()),c=qa(a.length),Ea(a,c),c):a}var f=0,h=0,d=d?d.map(function(a){return e(a,c[h++])}):[];a=a.apply(m,d);"string"==b?b=Fa(a):(w("array"!=b),b=a);f&&ka(f);return b}s.cwrap=function(a,b,c){var d=Ca(a);return function(){return Ba(d,b,c,Array.prototype.slice.call(arguments))}};function Ga(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case"i1":A[a]=b;break;case"i8":A[a]=b;break;case"i16":Ha[a>>1]=b;break;case"i32":B[a>>2]=b;break;case"i64":Aa=[b>>>0,(Math.min(+Math.floor(b/4294967296),4294967295)|0)>>>0];B[a>>2]=Aa[0];B[a+4>>2]=Aa[1];break;case"float":Ia[a>>2]=b;break;case"double":Ja[a>>3]=b;break;default:wa("invalid type for setValue: "+c)}}s.setValue=Ga;s.getValue=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case"i1":return A[a];case"i8":return A[a];case"i16":return Ha[a>>1];case"i32":return B[a>>2];case"i64":return B[a>>2];case"float":return Ia[a>>2];case"double":return Ja[a>>3];default:wa("invalid type for setValue: "+b)}return m};var Ka=0,La=1,E=2,Na=4;s.ALLOC_NORMAL=Ka;s.ALLOC_STACK=La;s.ALLOC_STATIC=E;s.ALLOC_DYNAMIC=3;s.ALLOC_NONE=Na;function F(a,b,c,d){var e,f;"number"===typeof a?(e=l,f=a):(e=p,f=a.length);var h="string"===typeof b?b:m,c=c==Na?d:[Oa,qa,ra,ua][c===k?E:c](Math.max(f,h?1:b.length));if(e){d=c;w(0==(c&3));for(a=c+(f&-4);d>2]=0}for(a=c+f;d=b?2*Math.abs(1<=a){return a}var c=32>=b?Math.abs(1<=c&&(32>=b||a>c)){a=-2*c+a}return a}Math.imul||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.ie=Math.imul;var L=0,fb={},gb=p,hb=m;function ib(a){L++;s.monitorRunDependencies&&s.monitorRunDependencies(L);a?(w(!fb[a]),fb[a]=1):s.P("warning: run dependency added without ID")}s.addRunDependency=ib;function jb(a){L--;s.monitorRunDependencies&&s.monitorRunDependencies(L);a?(w(fb[a]),delete fb[a]):s.P("warning: run dependency removed without ID");0==L&&(hb!==m&&(clearInterval(hb),hb=m),!gb&&kb&&lb())}s.removeRunDependency=jb;s.preloadedImages={};s.preloadedAudios={};Ra=8;sa=Ra+1312;Xa.push({V:function(){mb()}});var nb,ob,pb;nb=nb=F([0,0,0,0,0,0,0,0],"i8",E);ob=ob=F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",E);pb=pb=F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",E);F([111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,115,0,0,0,0,0,0,0,111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,99,0,0,0,0,0,0,0,0,0,0,0,0,0,36,64,0,0,0,0,0,0,89,64,0,0,0,0,0,136,195,64,0,0,0,0,132,215,151,65,0,128,224,55,121,195,65,67,23,110,5,181,181,184,147,70,245,249,63,233,3,79,56,77,50,29,48,249,72,119,130,90,60,191,115,127,221,79,21,117,56,3,0,0,0,0,0,0,63,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,111,112,116,105,111,110,32,100,111,101,115,110,39,116,32,116,97,107,101,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,46,42,115,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,115,0,0,0,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,99,0,0,0,0,255,255,255,255,0,0,0,0,97,109,98,105,103,117,111,117,115,32,111,112,116,105,111,110,32,45,45,32,37,46,42,115,0,0,0,0,0,0,0,0,37,115,58,32,0,0,0,0,80,79,83,73,88,76,89,95,67,79,82,82,69,67,84,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,37,115,58,32,0,0,0,0,37,115,10,0,0,0,0,0,37,115,10,0,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,37,115,58,32,0,0,0,0,37,115,58,32,0,0,0,0,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,58,32,0,0,0,0,0,0,58,32,0,0,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,0,0,0,0,176,2,0,0,6,0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,2,0,0,6,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,83,116,50,48,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,0,0,0,0,120,2,0,0,168,2,0,0,0,0,0,0,0,0,0,0,136,2,0,0,176,2,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Na,8);var qb=xa(F(12,"i8",E),8);w(0==qb%8);var rb=0;function M(a){return B[rb>>2]=a}s._memcpy=sb;s._memset=tb;var N={L:1,ca:2,Bd:3,sc:4,I:5,za:6,Jb:7,Sc:8,$:9,Zb:10,ua:11,Ld:11,$a:12,Ya:13,kc:14,ed:15,Wb:16,va:17,Md:18,wa:19,gd:20,aa:21,A:22,Mc:23,Za:24,ld:25,Id:26,lc:27,ad:28,da:29,yd:30,Fc:31,rd:32,hc:33,ab:34,Wc:35,pc:36,$b:37,vc:38,wc:39,xc:40,Ec:41,Jd:42,Qc:43,uc:44,ec:45,Tc:46,Pb:50,Sb:51,Nd:52,Oc:53,Tb:54,Ub:55,fc:56,Vb:57,cd:60,Rc:61,Fd:62,bd:63,Xc:64,Yc:65,xd:66,Uc:67,Mb:68,Cd:69,ac:70,td:71,Hc:74,yc:75,ic:76,Rb:77,mc:79,md:80,Qb:81,wd:82,zc:83,Ac:84,Dc:85,Cc:86,Bc:87,dd:88,Nc:89,ya:90,Ic:91,ba:92,nd:95,qd:96,dc:104,Pc:105,Nb:106,vd:107,jd:108,Zc:109,zd:110,cc:111,Kb:112,bc:113,Lc:114,Jc:115,Gd:116,nc:117,oc:118,rc:119,Ob:120,gc:121,Gc:122,ud:123,Ad:124,Lb:125,Kc:126,tc:127,fd:128,Hd:129,sd:130,Kd:131,jc:132,Dd:133,kd:134,Vc:135,$c:136,Yb:137,qc:138,od:139,Xb:140,hd:141,pd:142,Ed:143},ub={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"No message of desired type",36:"Identifier removed",37:"Channel number out of range",38:"Level 2 not synchronized",39:"Level 3 halted",40:"Level 3 reset",41:"Link number out of range",42:"Protocol driver not attached",43:"No CSI structure available",44:"Level 2 halted",45:"Deadlock condition",46:"No record locks available",50:"Invalid exchange",51:"Invalid request descriptor",52:"Exchange full",53:"No anode",54:"Invalid request code",55:"Invalid slot",56:"File locking deadlock error",57:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",74:"Multihop attempted",75:"Inode is remote (not really error)",76:"Cross mount point (not really error)",77:"Trying to read unreadable message",79:"Inappropriate file type or format",80:"Given log. name not unique",81:"f.d. invalid for this operation",82:"Remote address changed",83:"Can access a needed shared lib",84:"Accessing a corrupted shared lib",85:".lib section in a.out corrupted",86:"Attempting to link in too many libs",87:"Attempting to exec a shared library",88:"Function not implemented",89:"No more files",90:"Directory not empty",91:"File or path name too long",92:"Too many symbolic links",95:"Operation not supported on transport endpoint",96:"Protocol family not supported",104:"Connection reset by peer",105:"No buffer space available",106:"Address family not supported by protocol family",107:"Protocol wrong type for socket",108:"Socket operation on non-socket",109:"Protocol not available",110:"Can't send after socket shutdown",111:"Connection refused",112:"Address already in use",113:"Connection aborted",114:"Network is unreachable",115:"Network interface is not configured",116:"Connection timed out",117:"Host is down",118:"Host is unreachable",119:"Connection already in progress",120:"Socket already connected",121:"Destination address required",122:"Message too long",123:"Unknown protocol",124:"Socket type not supported",125:"Address not available",126:"ENETRESET",127:"Socket is already connected",128:"Socket is not connected",129:"TOOMANYREFS",130:"EPROCLIM",131:"EUSERS",132:"EDQUOT",133:"ESTALE",134:"Not supported",135:"No medium (in tape drive)",136:"No such host or network path",137:"Filename exists with different case",138:"EILSEQ",139:"Value too large for defined data type",140:"Operation canceled",141:"State not recoverable",142:"Previous owner died",143:"Streams pipe error"};function vb(a,b,c){var d=O(a,{parent:l}).d,a="/"===a?"/":wb(a)[2],e=xb(d,a);e&&g(new Q(e));d.l.Ta||g(new Q(N.L));return d.l.Ta(d,a,b,c)}function yb(a,b){b=b&4095|32768;return vb(a,b,0)}function zb(a,b){b=b&1023|16384;return vb(a,b,0)}function Ab(a,b,c){return vb(a,b|8192,c)}function Bb(a,b){var c=O(b,{parent:l}).d,d="/"===b?"/":wb(b)[2],e=xb(c,d);e&&g(new Q(e));c.l.Wa||g(new Q(N.L));return c.l.Wa(c,d,a)}function Cb(a,b){var c;c="string"===typeof a?O(a,{N:l}).d:a;c.l.Y||g(new Q(N.L));c.l.Y(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}function Db(a,b){var c,a=Eb(a),d;"string"===typeof b?(d=Fb[b],"undefined"===typeof d&&g(Error("Unknown file open mode: "+b))):d=b;b=d;c=b&512?c&4095|32768:0;var e;try{var f=O(a,{N:!(b&65536)});e=f.d;a=f.path}catch(h){}b&512&&(e?b&2048&&g(new Q(N.va)):e=vb(a,c,0));e||g(new Q(N.ca));8192===(e.mode&61440)&&(b&=-1025);e?40960===(e.mode&61440)?c=N.ba:16384===(e.mode&61440)&&(0!==(b&3)||b&1024)?c=N.aa:(c=["r","w","rw"][b&3],b&1024&&(c+="w"),c=Gb(e,c)):c=N.ca;c&&g(new Q(c));b&1024&&(c=e,c="string"===typeof c?O(c,{N:l}).d:c,c.l.Y||g(new Q(N.L)),16384===(c.mode&61440)&&g(new Q(N.aa)),32768!==(c.mode&61440)&&g(new Q(N.A)),(f=Gb(c,"w"))&&g(new Q(f)),c.l.Y(c,{size:0,timestamp:Date.now()}));var i={path:a,d:e,M:b,seekable:l,position:0,e:e.e,Gb:[],error:p},j;a:{e=k||4096;for(c=k||1;c<=e;c++){if(!R[c]){j=c;break a}}g(new Q(N.Za))}i.s=j;Object.defineProperty(i,"object",{get:function(){return i.d},set:function(a){i.d=a}});Object.defineProperty(i,"isRead",{get:function(){return 1!==(i.M&3)}});Object.defineProperty(i,"isWrite",{get:function(){return 0!==(i.M&3)}});Object.defineProperty(i,"isAppend",{get:function(){return i.M&8}});R[j]=i;i.e.open&&i.e.open(i);return i}function Hb(a){try{a.e.close&&a.e.close(a)}catch(b){g(b)}finally{R[a.s]=m}}function Ib(a,b,c,d,e){(0>d||0>e)&&g(new Q(N.A));0===(a.M&3)&&g(new Q(N.$));16384===(a.d.mode&61440)&&g(new Q(N.aa));a.e.write||g(new Q(N.A));var f=l;"undefined"===typeof e?(e=a.position,f=p):a.seekable||g(new Q(N.da));a.M&8&&((!a.seekable||!a.e.na)&&g(new Q(N.da)),a.e.na(a,0,2));b=a.e.write(a,b,c,d,e);f||(a.position+=b);return b}function wb(a){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1)}function Jb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b){for(;c--;c){a.unshift("..")}}return a}function Eb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=Jb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function S(){var a=Array.prototype.slice.call(arguments,0);return Eb(a.filter(function(a){"string"!==typeof a&&g(new TypeError("Arguments to path.join must be strings"));return a}).join("/"))}function Kb(){for(var a="",b=p,c=arguments.length-1;-1<=c&&!b;c--){var d=0<=c?arguments[c]:"/";"string"!==typeof d&&g(new TypeError("Arguments to path.resolve must be strings"));d&&(a=d+"/"+a,b="/"===d.charAt(0))}a=Jb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var Lb=[];function Mb(a,b){Lb[a]={input:[],H:[],O:b};Nb[a]={e:Ob}}var Ob={open:function(a){Pb||(Pb=new pa);var b=Lb[a.d.X];b||g(new Q(N.wa));a.q=b;a.seekable=p},close:function(a){a.q.H.length&&a.q.O.W(a.q,10)},Q:function(a,b,c,d){(!a.q||!a.q.O.Na)&&g(new Q(N.za));for(var e=0,f=0;fc.length;){c.push(0)}}}},tb:function(){g(new Q(N.ca))},Ta:function(a,b,c,d){return T.ka(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){var d;try{d=Sb(b,c)}catch(e){}if(d){for(var f in d.g){g(new Q(N.ya))}}}delete a.parent.g[a.name];a.name=c;b.g[c]=a},ze:function(a,b){delete a.g[b]},ve:function(a,b){var c=Sb(a,b),d;for(d in c.g){g(new Q(N.ya))}delete a.g[b]},Wa:function(a,b,c){a=T.ka(a,b,41471,0);a.link=c;return a},Va:function(a){40960!==(a.mode&61440)&&g(new Q(N.A));return a.link} -},e:{open:function(a){if(16384===(a.d.mode&61440)){var b=[".",".."],c;for(c in a.d.g){a.d.g.hasOwnProperty(c)&&b.push(c)}a.lb=b}},Q:function(a,b,c,d,e){a=a.d.g;d=Math.min(a.length-e,d);if(a.subarray){b.set(a.subarray(e,e+d),c)}else{for(var f=0;fb&&g(new Q(N.A));a.Gb=[];return a.position=b},ue:function(a){return a.lb},Wd:function(a,b,c){a=a.d.g;for(b+=c;b>a.length;){a.push(0)}},ne:function(a,b,c,d,e,f,h){32768!==(a.d.mode&61440)&&g(new Q(N.wa));a=a.d.g;if(h&2){if(0a||0===a&&-Infinity===1/a}function kc(a,b){function c(a){var c;"double"===a?c=Ja[b+e>>3]:"i64"==a?(c=[B[b+e>>2],B[b+(e+8)>>2]],e+=8):(a="i32",c=B[b+e>>2]);e+=Math.max(Math.max(la(a),ma),8);return c}for(var d=a,e=0,f=[],h,i;;){var j=d;h=A[d];if(0===h){break}i=A[d+1|0];if(37==h){var n=p,y=p,v=p,C=p;a:for(;;){switch(i){case 43:n=l;break;case 45:y=l;break;case 35:v=l;break;case 48:if(C){break a}else{C=l;break};default:break a}d++;i=A[d+1|0]}var D=0;if(42==i){D=c("i32"),d++,i=A[d+1|0]}else{for(;48<=i&&57>=i;){D=10*D+(i-48),d++,i=A[d+1|0]}}var K=p;if(46==i){var H=0,K=l;d++;i=A[d+1|0];if(42==i){H=c("i32"),d++}else{for(;;){i=A[d+1|0];if(48>i||57>>0)+4294967296*+(h[1]>>>0):+(h[0]>>>0)+4294967296*+(h[1]|0));4>=x&&(h=(j?eb:db)(h&Math.pow(256,x)-1,8*x));var ta=Math.abs(h),j="";if(100==i||105==i){r=8==x&&lc?lc.stringify(P[0],P[1],m):eb(h,8*x).toString(10)}else{if(117==i){r=8==x&&lc?lc.stringify(P[0],P[1],l):db(h,8*x).toString(10),h=Math.abs(h)}else{if(111==i){r=(v?"0":"")+ta.toString(8)}else{if(120==i||88==i){j=v&&0!=h?"0x":"";if(8==x&&lc){if(P[1]){r=(P[1]>>>0).toString(16);for(v=(P[0]>>>0).toString(16);8>v.length;){v="0"+v}r+=v}else{r=(P[0]>>>0).toString(16)}}else{if(0>h){h=-h;r=(ta-1).toString(16);P=[];for(v=0;vh?"-"+j:"+"+j);j.length+r.lengthx&&-4<=x?(i=(103==i?"f":"F").charCodeAt(0),H-=x+1):(i=(103==i?"e":"E").charCodeAt(0),H--),x=Math.min(H,20)}if(101==i||69==i){r=h.toExponential(x),/[eE][-+]\d$/.test(r)&&(r=r.slice(0,-1)+"0"+r.slice(-1))}else{if(102==i||70==i){r=h.toFixed(x),0===h&&jc(h)&&(r="-"+r)}}j=r.split("e");if(K&&!v){for(;1x++;){j[0]+="0"}}r=j[0]+(1h?"-":"")+"inf",C=p}}for(;r.lengthi&&(r=r.toUpperCase());r.split("").forEach(function(a){f.push(a.charCodeAt(0))});break;case"s":C=(n=c("i8*"))?ic(n):6;K&&(C=Math.min(C,H));if(!y){for(;C>2]=f.length;break;case"%":f.push(h);break;default:for(v=j;v>12<<12,nc.ia=l,w(ua),nc.hb=ua,ua=function(){wa("cannot dynamically allocate, sbrk now has control")});var b=z;0!=a&&nc.hb(a);return b}function U(){return B[U.m>>2]}function oc(){return!!oc.ta}function pc(a){var b=p;try{a==__ZTIi&&(b=l)}catch(c){}try{a==__ZTIj&&(b=l)}catch(d){}try{a==__ZTIl&&(b=l)}catch(e){}try{a==__ZTIm&&(b=l)}catch(f){}try{a==__ZTIx&&(b=l)}catch(h){}try{a==__ZTIy&&(b=l)}catch(i){}try{a==__ZTIf&&(b=l)}catch(j){}try{a==__ZTId&&(b=l)}catch(n){}try{a==__ZTIe&&(b=l)}catch(y){}try{a==__ZTIc&&(b=l)}catch(v){}try{a==__ZTIa&&(b=l)}catch(C){}try{a==__ZTIh&&(b=l)}catch(D){}try{a==__ZTIs&&(b=l)}catch(K){}try{a==__ZTIt&&(b=l)}catch(H){}return b}function qc(a,b,c){if(0==c){return p}if(0==b||b==a){return l}switch(pc(b)?b:B[B[b>>2]-8>>2]){case 0:return 0==B[B[a>>2]-8>>2]?qc(B[a+8>>2],B[b+8>>2],c):p;case 1:return p;case 2:return qc(a,B[b+8>>2],c);default:return p}}function rc(a,b,c){if(!rc.sb){try{B[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(d){}try{B[pb>>2]=1}catch(e){}try{B[ob>>2]=2}catch(f){}rc.sb=l}B[U.m>>2]=a;B[U.m+4>>2]=b;B[U.m+8>>2]=c;"uncaught_exception"in oc?oc.ta++:oc.ta=1;g(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")}function sc(a){try{return tc(a)}catch(b){}}function uc(){if(uc.Bb){uc.Bb=p}else{V.setThrew(0);B[U.m+4>>2]=0;var a=B[U.m>>2],b=B[U.m+8>>2];b&&(na("vi",b,[a]),B[U.m+8>>2]=0);a&&(sc(a),B[U.m>>2]=0)}}var vc=F(1,"i32*",E);function wc(a){var b,c;wc.ia?(c=B[vc>>2],b=B[c>>2]):(wc.ia=l,W.USER="root",W.PATH="/",W.PWD="/",W.HOME="/home/emscripten",W.LANG="en_US.UTF-8",W._="./this.program",b=F(1024,"i8",E),c=F(256,"i8*",E),B[c>>2]=b,B[vc>>2]=c);var d=[],e=0,f;for(f in a){if("string"===typeof a[f]){var h=f+"="+a[f];d.push(h);e+=h.length}}1024>2]=b;b+=h.length+1}B[c+4*d.length>>2]=0}var W={};function xc(a){if(0===a){return 0}a=Fa(a);if(!W.hasOwnProperty(a)){return 0}xc.J&&tc(xc.J);xc.J=F(J(W[a]),"i8",Ka);return xc.J}function yc(a,b,c){if(a in ub){if(ub[a].length>c-1){return M(N.ab)}a=ub[a];for(c=0;c>2],B[SDL.screen+0*ma>>2]=a|8388608);Kc()}function Mc(){var a=s.canvas;a.width=this.Ib;a.height=this.Hb;"undefined"!=typeof SDL&&(a=Qa[SDL.screen+0*ma>>2],B[SDL.screen+0*ma>>2]=a&-8388609);Kc()}var Nc,Oc,Pc,Qc,rb=ra(4);B[rb>>2]=0;var Vb=Qb(m,"/",16895,0),Rc=T,Sc={type:Rc,se:{},Ua:"/",root:m},Tc;Tc=O("/",{N:p});var Uc=Rc.z(Sc);Uc.z=Sc;Sc.root=Uc;Tc&&(Tc.d.z=Sc,Tc.d.ub=l,Vb=Sc.root);zb("/tmp",511);zb("/dev",511);Nb[259]={e:{Q:function(){return 0},write:function(){return 0}}};Ab("/dev/null",438,259);Mb(1280,{Na:function(a){if(!a.input.length){var b=m;if(ca){if(process.Eb.be){return}b=process.Eb.Q()}else{"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==m&&(b+="\n")):"function"==typeof readline&&(b=readline(),b!==m&&(b+="\n"))}if(!b){return m}a.input=J(b,l)}return a.input.shift()},W:function(a,b){b===m||10===b?(s.print(a.H.join("")),a.H=[]):a.H.push(Pb.oa(b))}});Mb(1536,{W:function(a,b){b===m||10===b?(s.printErr(a.H.join("")),a.H=[]):a.H.push(Pb.oa(b))}});Ab("/dev/tty",438,1280);Ab("/dev/tty1",438,1536);zb("/dev/shm",511);zb("/dev/shm/tmp",511);Xa.unshift({V:function(){if(!s.noFSInit&&!bc){w(!bc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");bc=l;s.stdin=s.stdin;s.stdout=s.stdout;s.stderr=s.stderr;s.stdin?ec("/dev","stdin",s.stdin):Bb("/dev/tty","/dev/stdin");s.stdout?ec("/dev","stdout",m,s.stdout):Bb("/dev/tty","/dev/stdout");s.stderr?ec("/dev","stderr",m,s.stderr):Bb("/dev/tty1","/dev/stderr");var a=Db("/dev/stdin","r");B[Tb>>2]=a.s;w(1===a.s,"invalid handle for stdin ("+a.s+")");a=Db("/dev/stdout","w");B[Ub>>2]=a.s;w(2===a.s,"invalid handle for stdout ("+a.s+")");a=Db("/dev/stderr","w");B[nb>>2]=a.s;w(3===a.s,"invalid handle for stderr ("+a.s+")")}}});Ya.push({V:function(){Yb=p}});Za.push({V:function(){bc=p;for(var a=0;a>f-6&63,f=f-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[j]}}2==f?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==f&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&15)<<2],c+="=");n.src="data:audio/x-"+b.substr(-3)+";base64,"+c;e(n)}};n.src=i;setTimeout(function(){za||e(n)},1e4)}else{return f()}}});var v=s.canvas;v.qa=v.requestPointerLock||v.mozRequestPointerLock||v.webkitRequestPointerLock;v.La=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||aa();v.La=v.La.bind(document);document.addEventListener("pointerlockchange",j,p);document.addEventListener("mozpointerlockchange",j,p);document.addEventListener("webkitpointerlockchange",j,p);s.elementPointerLock&&v.addEventListener("click",function(a){!Ec&&v.qa&&(v.qa(),a.preventDefault())},p)}var C,D=S.apply(m,[a,b]);"/"==D[0]&&(D=D.substr(1));C=D;ib("cp "+C);if("string"==typeof c){var K=h,H=function(){K?K():g('Loading data file "'+c+'" failed.')},x=new XMLHttpRequest;x.open("GET",c,l);x.responseType="arraybuffer";x.onload=function(){if(200==x.status||0==x.status&&x.response){var a=x.response;w(a,'Loading data file "'+c+'" failed (no arrayBuffer).');a=new Uint8Array(a);n(a);jb("al "+c)}else{H()}};x.onerror=H;x.send(m);ib("al "+c)}else{n(c)}};s.FS_createLazyFile=function(a,b,c,d,e){var f,h;"undefined"!==typeof XMLHttpRequest?(ea||g("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"),f=function(){this.ma=p;this.T=[]},f.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.S;return this.pb(Math.floor(a/this.S))[b]}},f.prototype.Cb=function(a){this.pb=a},f.prototype.Fa=function(){var a=new XMLHttpRequest;a.open("HEAD",c,p);a.send(m);200<=a.status&&300>a.status||304===a.status||g(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,e=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d)){e=b}var f=this;f.Cb(function(a){var d=a*e,h=(a+1)*e-1,h=Math.min(h,b-1);if("undefined"===typeof f.T[a]){var i=f.T;d>h&&g(Error("invalid range ("+d+", "+h+") or no bytes requested!"));h>b-1&&g(Error("only "+b+" bytes available! programmer error!"));var j=new XMLHttpRequest;j.open("GET",c,p);b!==e&&j.setRequestHeader("Range","bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(j.responseType="arraybuffer");j.overrideMimeType&&j.overrideMimeType("text/plain; charset=x-user-defined");j.send(m);200<=j.status&&300>j.status||304===j.status||g(Error("Couldn't load "+c+". Status: "+j.status));d=j.response!==k?new Uint8Array(j.response||[]):J(j.responseText||"",l);i[a]=d}"undefined"===typeof f.T[a]&&g(Error("doXHR failed!"));return f.T[a]});this.gb=b;this.fb=e;this.ma=l},f=new f,Object.defineProperty(f,"length",{get:function(){this.ma||this.Fa();return this.gb}}),Object.defineProperty(f,"chunkSize",{get:function(){this.ma||this.Fa();return this.fb}}),h=k):(h=c,f=k);var i,a=S("string"===typeof a?a:ac(a),b);i=yb(a,cc(d,e));f?i.g=f:h&&(i.g=m,i.url=h);var j={};Object.keys(i.e).forEach(function(a){var b=i.e[a];j[a]=function(){var a;if(i.ke||i.le||i.link||i.g){a=l}else{a=l;"undefined"!==typeof XMLHttpRequest&&g(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."));if(s.read){try{i.g=J(s.read(i.url),l)}catch(c){a=p}}else{g(Error("Cannot load without read() or XMLHttpRequest."))}a||M(N.I)}a||g(new Q(N.I));return b.apply(m,arguments)}});j.Q=function(a,b,c,d,e){a=a.d.g;d=Math.min(a.length-e,d);if(a.slice){for(var f=0;f>3<<3;return b|0}function a8(){return i|0}function a9(a){a=a|0;i=a}function ba(a,b){a=a|0;b=b|0;if((u|0)==0){u=a;v=b}}function bb(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function bc(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function bd(a){a=a|0;H=a}function be(a){a=a|0;I=a}function bf(a){a=a|0;J=a}function bg(a){a=a|0;K=a}function bh(a){a=a|0;L=a}function bi(a){a=a|0;M=a}function bj(a){a=a|0;N=a}function bk(a){a=a|0;O=a}function bl(a){a=a|0;P=a}function bm(a){a=a|0;Q=a}function bn(){c[170]=q+8;c[172]=p+8;c[176]=p+8}function bo(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((d|0)==0){return}else{e=0}do{a[b+e|0]=a[c+e|0]|0;e=e+1|0}while(e>>>0>>0);return}function bp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((d|0)==0){return}else{e=0}do{f=b+e|0;a[f]=a[f]^a[c+e|0];e=e+1|0}while(e>>>0>>0);return}function bq(a){a=a|0;var b=0,c=0,e=0,f=0;b=d[a+1|0]|0;c=d[a+2|0]|0;e=d[a+3|0]|0;f=cN(b<<8|0>>>24|(d[a]|0)|(c<<16|0>>>16)|(e<<24|0>>>8)|(0<<8|0>>>24),0<<8|b>>>24|(0<<16|c>>>16)|(0<<24|e>>>8)|(d[a+4|0]|0)|((d[a+5|0]|0)<<8|0>>>24),0<<16|0>>>16,(d[a+6|0]|0)<<16|0>>>16)|0;e=cN(f,H,0<<24|0>>>8,(d[a+7|0]|0)<<24|0>>>8)|0;return(H=H,e)|0}function br(a){a=a|0;return(d[a+1|0]|0)<<8|(d[a]|0)|(d[a+2|0]|0)<<16|(d[a+3|0]|0)<<24|0}function bs(b,c){b=b|0;c=c|0;a[b]=c&255;a[b+1|0]=c>>>8&255;a[b+2|0]=c>>>16&255;a[b+3|0]=c>>>24&255;return}function bt(a){a=a|0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=1779033703;c[a+4>>2]=-1150833019;c[a+8>>2]=1013904242;c[a+12>>2]=-1521486534;c[a+16>>2]=1359893119;c[a+20>>2]=-1694144372;c[a+24>>2]=528734635;c[a+28>>2]=1541459225;return}function bu(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;l=cX(i,0,h,0)|0;m=H;n=0;if(m>>>0>n>>>0|m>>>0==n>>>0&l>>>0>1073741823>>>0){c[(aX()|0)>>2]=27;o=-1;return o|0}l=cN(f,g,-1,-1)|0;if((l&f|0)!=0|(H&g|0)!=0|(f|0)==0&(g|0)==0){c[(aX()|0)>>2]=22;o=-1;return o|0}do{if(!((33554431/(i>>>0)|0)>>>0>>0|h>>>0>16777215)){l=0;if(l>>>0>>0|l>>>0==g>>>0&(33554431/(h>>>0)|0)>>>0>>0){break}l=h<<7;n=bL(ad(l,i)|0)|0;if((n|0)==0){o=-1;return o|0}m=bL(h<<8)|0;do{if((m|0)!=0){p=cX(l,0,f,g)|0;q=bL(p)|0;if((q|0)==0){bM(m);break}p=ad(i<<7,h)|0;bJ(a,b,d,e,1,0,n,p);if((i|0)!=0){r=h<<7;s=0;do{bv(n+(ad(r,s)|0)|0,h,f,g,q,m);s=s+1|0}while(s>>>0>>0)}bJ(a,b,n,p,1,0,j,k);bM(q);bM(m);bM(n);o=0;return o|0}}while(0);bM(n);o=-1;return o|0}}while(0);c[(aX()|0)>>2]=12;o=-1;return o|0}function bv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=b<<7;h=f+g|0;bo(f,a,g);if((c|0)==0&(d|0)==0){bo(a,f,g);return}i=g;j=0;k=0;l=0;do{m=cX(l,k,i,j)|0;bo(e+m|0,f,g);bw(f,h,b);l=cN(l,k,1,0)|0;k=H}while(k>>>0>>0|k>>>0==d>>>0&l>>>0>>0);if((c|0)==0&(d|0)==0){bo(a,f,g);return}l=cN(c,d,-1,-1)|0;k=H;j=g;i=0;m=0;n=0;do{o=bx(f,b)|0;p=cX(o&l,H&k,j,i)|0;bp(f,e+p|0,g);bw(f,h,b);n=cN(n,m,1,0)|0;m=H}while(m>>>0>>0|m>>>0==d>>>0&n>>>0>>0);bo(a,f,g);return}function bw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+64|0;e=d|0;f=c<<1;bo(e,a+((c<<7)-64)|0,64);if((f|0)!=0){g=0;do{h=g<<6;bp(e,a+h|0,64);by(e);bo(b+h|0,e,64);g=g+1|0}while(g>>>0>>0)}if((c|0)==0){i=d;return}else{j=0}do{bo(a+(j<<6)|0,b+(j<<7)|0,64);j=j+1|0}while(j>>>0>>0);if((c|0)==0){i=d;return}else{k=0}do{bo(a+(k+c<<6)|0,b+(k<<7|64)|0,64);k=k+1|0}while(k>>>0>>0);i=d;return}function bx(a,b){a=a|0;b=b|0;var c=0;c=bq(a+((b<<7)-64)|0)|0;return(H=H,c)|0}function by(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0;b=i;i=i+128|0;d=b|0;e=b+64|0;f=0;do{c[d+(f<<2)>>2]=br(a+(f<<2)|0)|0;f=f+1|0}while(f>>>0<16);f=d;g=e;cK(g|0,f|0,64)|0;f=e|0;g=e+48|0;h=e+16|0;j=e+32|0;k=e+20|0;l=e+4|0;m=e+36|0;n=e+52|0;o=e+40|0;p=e+24|0;q=e+56|0;r=e+8|0;s=e+60|0;t=e+44|0;u=e+12|0;v=e+28|0; -w=0;x=c[f>>2]|0;y=c[g>>2]|0;z=c[h>>2]|0;A=c[j>>2]|0;B=c[k>>2]|0;C=c[l>>2]|0;D=c[m>>2]|0;E=c[n>>2]|0;F=c[o>>2]|0;G=c[p>>2]|0;H=c[q>>2]|0;I=c[r>>2]|0;J=c[s>>2]|0;K=c[t>>2]|0;L=c[u>>2]|0;M=c[v>>2]|0;do{N=y+x|0;O=(N<<7|N>>>25)^z;N=O+x|0;P=(N<<9|N>>>23)^A;N=P+O|0;Q=(N<<13|N>>>19)^y;N=Q+P|0;R=(N<<18|N>>>14)^x;N=C+B|0;S=(N<<7|N>>>25)^D;N=S+B|0;T=(N<<9|N>>>23)^E;N=T+S|0;U=(N<<13|N>>>19)^C;N=U+T|0;V=(N<<18|N>>>14)^B;N=G+F|0;W=(N<<7|N>>>25)^H;N=W+F|0;X=(N<<9|N>>>23)^I;N=X+W|0;Y=(N<<13|N>>>19)^G;N=Y+X|0;Z=(N<<18|N>>>14)^F;N=K+J|0;_=(N<<7|N>>>25)^L;N=_+J|0;$=(N<<9|N>>>23)^M;N=$+_|0;aa=(N<<13|N>>>19)^K;N=aa+$|0;ab=(N<<18|N>>>14)^J;N=_+R|0;C=(N<<7|N>>>25)^U;U=C+R|0;I=(U<<9|U>>>23)^X;X=I+C|0;L=(X<<13|X>>>19)^_;_=L+I|0;x=(_<<18|_>>>14)^R;R=O+V|0;G=(R<<7|R>>>25)^Y;Y=G+V|0;M=(Y<<9|Y>>>23)^$;$=M+G|0;z=($<<13|$>>>19)^O;O=z+M|0;B=(O<<18|O>>>14)^V;V=S+Z|0;K=(V<<7|V>>>25)^aa;aa=K+Z|0;A=(aa<<9|aa>>>23)^P;P=A+K|0;D=(P<<13|P>>>19)^S;S=D+A|0;F=(S<<18|S>>>14)^Z;Z=W+ab|0;y=(Z<<7|Z>>>25)^Q;Q=y+ab|0;E=(Q<<9|Q>>>23)^T;T=E+y|0;H=(T<<13|T>>>19)^W;W=H+E|0;J=(W<<18|W>>>14)^ab;w=w+2|0}while(w>>>0<8);c[f>>2]=x;c[g>>2]=y;c[h>>2]=z;c[j>>2]=A;c[k>>2]=B;c[l>>2]=C;c[m>>2]=D;c[n>>2]=E;c[o>>2]=F;c[p>>2]=G;c[q>>2]=H;c[r>>2]=I;c[s>>2]=J;c[t>>2]=K;c[u>>2]=L;c[v>>2]=M;M=d|0;c[M>>2]=(c[M>>2]|0)+(c[e>>2]|0);M=d+4|0;c[M>>2]=(c[M>>2]|0)+(c[e+4>>2]|0);M=d+8|0;c[M>>2]=(c[M>>2]|0)+(c[e+8>>2]|0);M=d+12|0;c[M>>2]=(c[M>>2]|0)+(c[e+12>>2]|0);M=d+16|0;c[M>>2]=(c[M>>2]|0)+(c[e+16>>2]|0);M=d+20|0;c[M>>2]=(c[M>>2]|0)+(c[e+20>>2]|0);M=d+24|0;c[M>>2]=(c[M>>2]|0)+(c[e+24>>2]|0);M=d+28|0;c[M>>2]=(c[M>>2]|0)+(c[e+28>>2]|0);M=d+32|0;c[M>>2]=(c[M>>2]|0)+(c[e+32>>2]|0);M=d+36|0;c[M>>2]=(c[M>>2]|0)+(c[e+36>>2]|0);M=d+40|0;c[M>>2]=(c[M>>2]|0)+(c[e+40>>2]|0);M=d+44|0;c[M>>2]=(c[M>>2]|0)+(c[e+44>>2]|0);M=d+48|0;c[M>>2]=(c[M>>2]|0)+(c[e+48>>2]|0);M=d+52|0;c[M>>2]=(c[M>>2]|0)+(c[e+52>>2]|0);M=d+56|0;c[M>>2]=(c[M>>2]|0)+(c[e+56>>2]|0);M=d+60|0;c[M>>2]=(c[M>>2]|0)+(c[e+60>>2]|0);e=0;do{bs(a+(e<<2)|0,c[d+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<16);i=b;return}function bz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+32|0;f=a+36|0;g=c[f>>2]|0;h=g>>>3&63;i=aN(g|0,d<<3|0)|0;c[f>>2]=i;if(H){i=e|0;c[i>>2]=(c[i>>2]|0)+1}i=e|0;c[i>>2]=(c[i>>2]|0)+(d>>>29);i=64-h|0;e=a+40+h|0;if(i>>>0>d>>>0){cK(e|0,b|0,d)|0;return}cK(e|0,b|0,i)|0;e=a|0;h=a+40|0;bA(e,h);a=b+i|0;b=d-i|0;if(b>>>0>63){i=b;d=a;while(1){bA(e,d);f=d+64|0;g=i-64|0;if(g>>>0>63){i=g;d=f}else{j=g;k=f;break}}}else{j=b;k=a}cK(h|0,k|0,j)|0;return}function bA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=i;i=i+288|0;e=d|0;f=d+256|0;g=e|0;bK(g,b);b=16;do{h=c[e+(b-2<<2)>>2]|0;j=c[e+(b-15<<2)>>2]|0;c[e+(b<<2)>>2]=(c[e+(b-16<<2)>>2]|0)+(c[e+(b-7<<2)>>2]|0)+((h>>>19|h<<13)^h>>>10^(h>>>17|h<<15))+((j>>>18|j<<14)^j>>>3^(j>>>7|j<<25));b=b+1|0}while((b|0)<64);b=f;j=a;cK(b|0,j|0,32)|0;j=f+28|0;b=f+16|0;h=c[b>>2]|0;k=f+20|0;l=f+24|0;m=c[l>>2]|0;n=(c[j>>2]|0)+1116352408+(c[g>>2]|0)+((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+((m^c[k>>2])&h^m)|0;m=f|0;h=c[m>>2]|0;g=f+4|0;o=c[g>>2]|0;p=f+8|0;q=c[p>>2]|0;r=f+12|0;c[r>>2]=(c[r>>2]|0)+n;s=((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+n+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)+1899447441+(c[e+4>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)-1245643825+(c[e+8>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)-373957723+(c[e+12>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)+961987163+(c[e+16>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)+1508970993+(c[e+20>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)-1841331548+(c[e+24>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)-1424204075+(c[e+28>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)-670586216+(c[e+32>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+310598401+(c[e+36>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)+607225278+(c[e+40>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)+1426881987+(c[e+44>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)+1925078388+(c[e+48>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)-2132889090+(c[e+52>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-1680079193+(c[e+56>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;o=c[k>>2]|0;q=c[j>>2]|0;n=(c[m>>2]|0)-1046744716+(c[e+60>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[m>>2]=s;q=c[b>>2]|0;o=c[l>>2]|0;h=(c[j>>2]|0)-459576895+(c[e+64>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[j>>2]=n;o=c[r>>2]|0;q=c[k>>2]|0;s=(c[l>>2]|0)-272742522+(c[e+68>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[l>>2]=h;q=c[p>>2]|0;o=c[b>>2]|0;n=(c[k>>2]|0)+264347078+(c[e+72>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[k>>2]=s;o=c[g>>2]|0;q=c[r>>2]|0;h=(c[b>>2]|0)+604807628+(c[e+76>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[b>>2]=n;q=c[m>>2]|0;o=c[p>>2]|0;s=(c[r>>2]|0)+770255983+(c[e+80>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[r>>2]=h;o=c[j>>2]|0;q=c[g>>2]|0;n=(c[p>>2]|0)+1249150122+(c[e+84>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[p>>2]=s;q=c[l>>2]|0;o=c[m>>2]|0;h=(c[g>>2]|0)+1555081692+(c[e+88>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[g>>2]=n;o=c[k>>2]|0;q=c[j>>2]|0;s=(c[m>>2]|0)+1996064986+(c[e+92>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[m>>2]=h;q=c[b>>2]|0;o=c[l>>2]|0;n=(c[j>>2]|0)-1740746414+(c[e+96>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)-1473132947+(c[e+100>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)-1341970488+(c[e+104>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)-1084653625+(c[e+108>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)-958395405+(c[e+112>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)-710438585+(c[e+116>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)+113926993+(c[e+120>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)+338241895+(c[e+124>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)+666307205+(c[e+128>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+773529912+(c[e+132>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)+1294757372+(c[e+136>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)+1396182291+(c[e+140>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)+1695183700+(c[e+144>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)+1986661051+(c[e+148>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-2117940946+(c[e+152>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;o=c[k>>2]|0;q=c[j>>2]|0;n=(c[m>>2]|0)-1838011259+(c[e+156>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[m>>2]=s;q=c[b>>2]|0;o=c[l>>2]|0;h=(c[j>>2]|0)-1564481375+(c[e+160>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[j>>2]=n;o=c[r>>2]|0;q=c[k>>2]|0;s=(c[l>>2]|0)-1474664885+(c[e+164>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[l>>2]=h;q=c[p>>2]|0;o=c[b>>2]|0;n=(c[k>>2]|0)-1035236496+(c[e+168>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[k>>2]=s;o=c[g>>2]|0;q=c[r>>2]|0;h=(c[b>>2]|0)-949202525+(c[e+172>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[b>>2]=n;q=c[m>>2]|0;o=c[p>>2]|0;s=(c[r>>2]|0)-778901479+(c[e+176>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[r>>2]=h;o=c[j>>2]|0;q=c[g>>2]|0;n=(c[p>>2]|0)-694614492+(c[e+180>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[p>>2]=s;q=c[l>>2]|0;o=c[m>>2]|0;h=(c[g>>2]|0)-200395387+(c[e+184>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[g>>2]=n;o=c[k>>2]|0;q=c[j>>2]|0;s=(c[m>>2]|0)+275423344+(c[e+188>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[m>>2]=h;q=c[b>>2]|0;o=c[l>>2]|0;n=(c[j>>2]|0)+430227734+(c[e+192>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)+506948616+(c[e+196>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)+659060556+(c[e+200>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)+883997877+(c[e+204>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)+958139571+(c[e+208>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)+1322822218+(c[e+212>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)+1537002063+(c[e+216>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)+1747873779+(c[e+220>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)+1955562222+(c[e+224>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+2024104815+(c[e+228>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)-2067236844+(c[e+232>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)-1933114872+(c[e+236>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)-1866530822+(c[e+240>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)-1538233109+(c[e+244>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-1090935817+(c[e+248>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;g=c[k>>2]|0;k=c[j>>2]|0;j=(c[m>>2]|0)-965641998+(c[e+252>>2]|0)+((g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+((k^c[l>>2])&g^k)|0;k=c[p>>2]|0;p=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+j;b=j+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((p|k)&h|p&k)|0;c[m>>2]=b;c[a>>2]=(c[a>>2]|0)+b;b=a+4|0;c[b>>2]=(c[b>>2]|0)+(c[f+4>>2]|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+(c[f+8>>2]|0);b=a+12|0;c[b>>2]=(c[b>>2]|0)+(c[f+12>>2]|0);b=a+16|0;c[b>>2]=(c[b>>2]|0)+(c[f+16>>2]|0);b=a+20|0;c[b>>2]=(c[b>>2]|0)+(c[f+20>>2]|0);b=a+24|0;c[b>>2]=(c[b>>2]|0)+(c[f+24>>2]|0);b=a+28|0;c[b>>2]=(c[b>>2]|0)+(c[f+28>>2]|0);i=d;return}function bB(b,c){b=b|0;c=c|0;a[b+3|0]=c&255;a[b+2|0]=c>>>8&255;a[b+1|0]=c>>>16&255;a[b]=c>>>24&255;return}function bC(a){a=a|0;return(d[a+2|0]|0)<<8|(d[a+3|0]|0)|(d[a+1|0]|0)<<16|(d[a]|0)<<24|0}function bD(a,b){a=a|0;b=b|0;bE(b);bF(a,b|0,32);cL(b|0,0,104);return}function bE(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+8|0;d=b|0;bF(d,a+32|0,8);e=(c[a+36>>2]|0)>>>3&63;bz(a,720,(e>>>0<56?56:120)-e|0);bz(a,d,8);i=b;return}function bF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=d>>>2;if((e|0)==0){return}else{f=0}do{bB(a+(f<<2)|0,c[b+(f<<2)>>2]|0);f=f+1|0}while(f>>>0>>0);return}function bG(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+96|0;f=e|0;if(d>>>0>64){g=b|0;bt(g);bz(g,c,d);h=e+64|0;bD(h,g);j=h;k=32}else{j=c;k=d}d=b|0;bt(d);c=f|0;cL(c|0,54,64);if((k|0)!=0){h=0;do{g=f+h|0;a[g]=a[g]^a[j+h|0];h=h+1|0}while(h>>>0>>0)}bz(d,c,64);d=b+104|0;bt(d);cL(c|0,92,64);if((k|0)==0){bz(d,c,64);i=e;return}else{l=0}do{b=f+l|0;a[b]=a[b]^a[j+l|0];l=l+1|0}while(l>>>0>>0);bz(d,c,64);i=e;return}function bH(a,b,c){a=a|0;b=b|0;c=c|0;bz(a|0,b,c);return}function bI(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+32|0;d=c|0;bD(d,b|0);e=b+104|0;bz(e,d,32);bD(a,e);i=c;return}function bJ(b,c,d,e,f,g,h,j){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;k=i;i=i+488|0;l=k|0;m=k+208|0;n=k+424|0;o=k+456|0;bG(l,b,c);bH(l,d,e);if((j|0)==0){i=k;return}e=k+416|0;d=m;p=l;l=n|0;q=o|0;r=0;s=g>>>0>>0|g>>>0==r>>>0&f>>>0<2>>>0;r=0;t=0;do{r=r+1|0;bB(e,r);cK(d|0,p|0,208)|0;bH(m,e,4);bI(l,m);cK(q|0,l|0,32)|0;if(!s){u=0;v=2;do{bG(m,b,c);bH(m,l,32);bI(l,m);w=0;do{x=o+w|0;a[x]=a[x]^a[n+w|0];w=w+1|0}while((w|0)<32);v=cN(v,u,1,0)|0;u=H}while(!(u>>>0>g>>>0|u>>>0==g>>>0&v>>>0>f>>>0))}v=j-t|0;u=v>>>0>32?32:v;v=h+t|0;cK(v|0,q|0,u)|0;t=r<<5}while(t>>>0>>0);i=k;return}function bK(a,b){a=a|0;b=b|0;var d=0;d=0;do{c[a+(d<<2)>>2]=bC(b+(d<<2)|0)|0;d=d+1|0}while(d>>>0<16);return}function bL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0,ac=0,ad=0,ae=0,af=0,ag=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,as=0,at=0,av=0,aw=0,ax=0,ay=0,az=0,aA=0,aB=0,aC=0,aD=0,aE=0,aF=0,aG=0,aH=0,aI=0;do{if(a>>>0<245){if(a>>>0<11){b=16}else{b=a+11&-8}d=b>>>3;e=c[208]|0;f=e>>>(d>>>0);if((f&3|0)!=0){g=(f&1^1)+d|0;h=g<<1;i=872+(h<<2)|0;j=872+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do{if((i|0)==(l|0)){c[208]=e&~(1<>>0<(c[212]|0)>>>0){au();return 0}m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else{au();return 0}}}while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}if(b>>>0<=(c[210]|0)>>>0){o=b;break}if((f|0)!=0){j=2<>>12&16;i=j>>>(l>>>0);j=i>>>5&8;m=i>>>(j>>>0);i=m>>>2&4;p=m>>>(i>>>0);m=p>>>1&2;q=p>>>(m>>>0);p=q>>>1&1;r=(j|l|i|m|p)+(q>>>(p>>>0))|0;p=r<<1;q=872+(p<<2)|0;m=872+(p+2<<2)|0;p=c[m>>2]|0;i=p+8|0;l=c[i>>2]|0;do{if((q|0)==(l|0)){c[208]=e&~(1<>>0<(c[212]|0)>>>0){au();return 0}j=l+12|0;if((c[j>>2]|0)==(p|0)){c[j>>2]=q;c[m>>2]=l;break}else{au();return 0}}}while(0);l=r<<3;m=l-b|0;c[p+4>>2]=b|3;q=p;e=q+b|0;c[q+(b|4)>>2]=m|1;c[q+l>>2]=m;l=c[210]|0;if((l|0)!=0){q=c[213]|0;d=l>>>3;l=d<<1;f=872+(l<<2)|0;k=c[208]|0;h=1<>2]|0;if(g>>>0>=(c[212]|0)>>>0){s=g;t=d;break}au();return 0}}while(0);c[t>>2]=q;c[s+12>>2]=q;c[q+8>>2]=s;c[q+12>>2]=f}c[210]=m;c[213]=e;n=i;return n|0}l=c[209]|0;if((l|0)==0){o=b;break}h=(l&-l)-1|0;l=h>>>12&16;k=h>>>(l>>>0);h=k>>>5&8;p=k>>>(h>>>0);k=p>>>2&4;r=p>>>(k>>>0);p=r>>>1&2;d=r>>>(p>>>0);r=d>>>1&1;g=c[1136+((h|l|k|p|r)+(d>>>(r>>>0))<<2)>>2]|0;r=g;d=g;p=(c[g+4>>2]&-8)-b|0;while(1){g=c[r+16>>2]|0;if((g|0)==0){k=c[r+20>>2]|0;if((k|0)==0){break}else{u=k}}else{u=g}g=(c[u+4>>2]&-8)-b|0;k=g>>>0

>>0;r=u;d=k?u:d;p=k?g:p}r=d;i=c[212]|0;if(r>>>0>>0){au();return 0}e=r+b|0;m=e;if(r>>>0>=e>>>0){au();return 0}e=c[d+24>>2]|0;f=c[d+12>>2]|0;do{if((f|0)==(d|0)){q=d+20|0;g=c[q>>2]|0;if((g|0)==0){k=d+16|0;l=c[k>>2]|0;if((l|0)==0){v=0;break}else{w=l;x=k}}else{w=g;x=q}while(1){q=w+20|0;g=c[q>>2]|0;if((g|0)!=0){w=g;x=q;continue}q=w+16|0;g=c[q>>2]|0;if((g|0)==0){break}else{w=g;x=q}}if(x>>>0>>0){au();return 0}else{c[x>>2]=0;v=w;break}}else{q=c[d+8>>2]|0;if(q>>>0>>0){au();return 0}g=q+12|0;if((c[g>>2]|0)!=(d|0)){au();return 0}k=f+8|0;if((c[k>>2]|0)==(d|0)){c[g>>2]=f;c[k>>2]=q;v=f;break}else{au();return 0}}}while(0);L223:do{if((e|0)!=0){f=d+28|0;i=1136+(c[f>>2]<<2)|0;do{if((d|0)==(c[i>>2]|0)){c[i>>2]=v;if((v|0)!=0){break}c[209]=c[209]&~(1<>2]);break L223}else{if(e>>>0<(c[212]|0)>>>0){au();return 0}q=e+16|0;if((c[q>>2]|0)==(d|0)){c[q>>2]=v}else{c[e+20>>2]=v}if((v|0)==0){break L223}}}while(0);if(v>>>0<(c[212]|0)>>>0){au();return 0}c[v+24>>2]=e;f=c[d+16>>2]|0;do{if((f|0)!=0){if(f>>>0<(c[212]|0)>>>0){au();return 0}else{c[v+16>>2]=f;c[f+24>>2]=v;break}}}while(0);f=c[d+20>>2]|0;if((f|0)==0){break}if(f>>>0<(c[212]|0)>>>0){au();return 0}else{c[v+20>>2]=f;c[f+24>>2]=v;break}}}while(0);if(p>>>0<16){e=p+b|0;c[d+4>>2]=e|3;f=r+(e+4)|0;c[f>>2]=c[f>>2]|1}else{c[d+4>>2]=b|3;c[r+(b|4)>>2]=p|1;c[r+(p+b)>>2]=p;f=c[210]|0;if((f|0)!=0){e=c[213]|0;i=f>>>3;f=i<<1;q=872+(f<<2)|0;k=c[208]|0;g=1<>2]|0;if(l>>>0>=(c[212]|0)>>>0){y=l;z=i;break}au();return 0}}while(0);c[z>>2]=e;c[y+12>>2]=e;c[e+8>>2]=y;c[e+12>>2]=q}c[210]=p;c[213]=m}f=d+8|0;if((f|0)==0){o=b;break}else{n=f}return n|0}else{if(a>>>0>4294967231){o=-1;break}f=a+11|0;g=f&-8;k=c[209]|0;if((k|0)==0){o=g;break}r=-g|0;i=f>>>8;do{if((i|0)==0){A=0}else{if(g>>>0>16777215){A=31;break}f=(i+1048320|0)>>>16&8;l=i<>>16&4;j=l<>>16&2;B=14-(h|f|l)+(j<>>15)|0;A=g>>>((B+7|0)>>>0)&1|B<<1}}while(0);i=c[1136+(A<<2)>>2]|0;L271:do{if((i|0)==0){C=0;D=r;E=0}else{if((A|0)==31){F=0}else{F=25-(A>>>1)|0}d=0;m=r;p=i;q=g<>2]&-8;l=B-g|0;if(l>>>0>>0){if((B|0)==(g|0)){C=p;D=l;E=p;break L271}else{G=p;H=l}}else{G=d;H=m}l=c[p+20>>2]|0;B=c[p+16+(q>>>31<<2)>>2]|0;j=(l|0)==0|(l|0)==(B|0)?e:l;if((B|0)==0){C=G;D=H;E=j;break}else{d=G;m=H;p=B;q=q<<1;e=j}}}}while(0);if((E|0)==0&(C|0)==0){i=2<>>12&16;e=i>>>(r>>>0);i=e>>>5&8;q=e>>>(i>>>0);e=q>>>2&4;p=q>>>(e>>>0);q=p>>>1&2;m=p>>>(q>>>0);p=m>>>1&1;I=c[1136+((i|r|e|q|p)+(m>>>(p>>>0))<<2)>>2]|0}else{I=E}if((I|0)==0){J=D;K=C}else{p=I;m=D;q=C;while(1){e=(c[p+4>>2]&-8)-g|0;r=e>>>0>>0;i=r?e:m;e=r?p:q;r=c[p+16>>2]|0;if((r|0)!=0){p=r;m=i;q=e;continue}r=c[p+20>>2]|0;if((r|0)==0){J=i;K=e;break}else{p=r;m=i;q=e}}}if((K|0)==0){o=g;break}if(J>>>0>=((c[210]|0)-g|0)>>>0){o=g;break}q=K;m=c[212]|0;if(q>>>0>>0){au();return 0}p=q+g|0;k=p;if(q>>>0>=p>>>0){au();return 0}e=c[K+24>>2]|0;i=c[K+12>>2]|0;do{if((i|0)==(K|0)){r=K+20|0;d=c[r>>2]|0;if((d|0)==0){j=K+16|0;B=c[j>>2]|0;if((B|0)==0){L=0;break}else{M=B;N=j}}else{M=d;N=r}while(1){r=M+20|0;d=c[r>>2]|0;if((d|0)!=0){M=d;N=r;continue}r=M+16|0;d=c[r>>2]|0;if((d|0)==0){break}else{M=d;N=r}}if(N>>>0>>0){au();return 0}else{c[N>>2]=0;L=M;break}}else{r=c[K+8>>2]|0;if(r>>>0>>0){au();return 0}d=r+12|0;if((c[d>>2]|0)!=(K|0)){au();return 0}j=i+8|0;if((c[j>>2]|0)==(K|0)){c[d>>2]=i;c[j>>2]=r;L=i;break}else{au();return 0}}}while(0);L321:do{if((e|0)!=0){i=K+28|0;m=1136+(c[i>>2]<<2)|0;do{if((K|0)==(c[m>>2]|0)){c[m>>2]=L;if((L|0)!=0){break}c[209]=c[209]&~(1<>2]);break L321}else{if(e>>>0<(c[212]|0)>>>0){au();return 0}r=e+16|0;if((c[r>>2]|0)==(K|0)){c[r>>2]=L}else{c[e+20>>2]=L}if((L|0)==0){break L321}}}while(0);if(L>>>0<(c[212]|0)>>>0){au();return 0}c[L+24>>2]=e;i=c[K+16>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[212]|0)>>>0){au();return 0}else{c[L+16>>2]=i;c[i+24>>2]=L;break}}}while(0);i=c[K+20>>2]|0;if((i|0)==0){break}if(i>>>0<(c[212]|0)>>>0){au();return 0}else{c[L+20>>2]=i;c[i+24>>2]=L;break}}}while(0);do{if(J>>>0<16){e=J+g|0;c[K+4>>2]=e|3;i=q+(e+4)|0;c[i>>2]=c[i>>2]|1}else{c[K+4>>2]=g|3;c[q+(g|4)>>2]=J|1;c[q+(J+g)>>2]=J;i=J>>>3;if(J>>>0<256){e=i<<1;m=872+(e<<2)|0;r=c[208]|0;j=1<>2]|0;if(d>>>0>=(c[212]|0)>>>0){O=d;P=i;break}au();return 0}}while(0);c[P>>2]=k;c[O+12>>2]=k;c[q+(g+8)>>2]=O;c[q+(g+12)>>2]=m;break}e=p;j=J>>>8;do{if((j|0)==0){Q=0}else{if(J>>>0>16777215){Q=31;break}r=(j+1048320|0)>>>16&8;i=j<>>16&4;B=i<>>16&2;l=14-(d|r|i)+(B<>>15)|0;Q=J>>>((l+7|0)>>>0)&1|l<<1}}while(0);j=1136+(Q<<2)|0;c[q+(g+28)>>2]=Q;c[q+(g+20)>>2]=0;c[q+(g+16)>>2]=0;m=c[209]|0;l=1<>2]=e;c[q+(g+24)>>2]=j;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}if((Q|0)==31){R=0}else{R=25-(Q>>>1)|0}l=J<>2]|0;while(1){if((c[m+4>>2]&-8|0)==(J|0)){break}S=m+16+(l>>>31<<2)|0;j=c[S>>2]|0;if((j|0)==0){T=262;break}else{l=l<<1;m=j}}if((T|0)==262){if(S>>>0<(c[212]|0)>>>0){au();return 0}else{c[S>>2]=e;c[q+(g+24)>>2]=m;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}}l=m+8|0;j=c[l>>2]|0;i=c[212]|0;if(m>>>0>>0){au();return 0}if(j>>>0>>0){au();return 0}else{c[j+12>>2]=e;c[l>>2]=e;c[q+(g+8)>>2]=j;c[q+(g+12)>>2]=m;c[q+(g+24)>>2]=0;break}}}while(0);q=K+8|0;if((q|0)==0){o=g;break}else{n=q}return n|0}}while(0);K=c[210]|0;if(o>>>0<=K>>>0){S=K-o|0;J=c[213]|0;if(S>>>0>15){R=J;c[213]=R+o;c[210]=S;c[R+(o+4)>>2]=S|1;c[R+K>>2]=S;c[J+4>>2]=o|3}else{c[210]=0;c[213]=0;c[J+4>>2]=K|3;S=J+(K+4)|0;c[S>>2]=c[S>>2]|1}n=J+8|0;return n|0}J=c[211]|0;if(o>>>0>>0){S=J-o|0;c[211]=S;J=c[214]|0;K=J;c[214]=K+o;c[K+(o+4)>>2]=S|1;c[J+4>>2]=o|3;n=J+8|0;return n|0}do{if((c[200]|0)==0){J=ar(8)|0;if((J-1&J|0)==0){c[202]=J;c[201]=J;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);J=o+48|0;S=c[202]|0;K=o+47|0;R=S+K|0;Q=-S|0;S=R&Q;if(S>>>0<=o>>>0){n=0;return n|0}O=c[318]|0;do{if((O|0)!=0){P=c[316]|0;L=P+S|0;if(L>>>0<=P>>>0|L>>>0>O>>>0){n=0}else{break}return n|0}}while(0);L413:do{if((c[319]&4|0)==0){O=c[214]|0;L415:do{if((O|0)==0){T=292}else{L=O;P=1280;while(1){U=P|0;M=c[U>>2]|0;if(M>>>0<=L>>>0){V=P+4|0;if((M+(c[V>>2]|0)|0)>>>0>L>>>0){break}}M=c[P+8>>2]|0;if((M|0)==0){T=292;break L415}else{P=M}}if((P|0)==0){T=292;break}L=R-(c[211]|0)&Q;if(L>>>0>=2147483647){W=0;break}m=aV(L|0)|0;e=(m|0)==((c[U>>2]|0)+(c[V>>2]|0)|0);X=e?m:-1;Y=e?L:0;Z=m;_=L;T=301}}while(0);do{if((T|0)==292){O=aV(0)|0;if((O|0)==-1){W=0;break}g=O;L=c[201]|0;m=L-1|0;if((m&g|0)==0){$=S}else{$=S-g+(m+g&-L)|0}L=c[316]|0;g=L+$|0;if(!($>>>0>o>>>0&$>>>0<2147483647)){W=0;break}m=c[318]|0;if((m|0)!=0){if(g>>>0<=L>>>0|g>>>0>m>>>0){W=0;break}}m=aV($|0)|0;g=(m|0)==(O|0);X=g?O:-1;Y=g?$:0;Z=m;_=$;T=301}}while(0);L435:do{if((T|0)==301){m=-_|0;if((X|0)!=-1){aa=Y;ab=X;T=312;break L413}do{if((Z|0)!=-1&_>>>0<2147483647&_>>>0>>0){g=c[202]|0;O=K-_+g&-g;if(O>>>0>=2147483647){ac=_;break}if((aV(O|0)|0)==-1){aV(m|0)|0;W=Y;break L435}else{ac=O+_|0;break}}else{ac=_}}while(0);if((Z|0)==-1){W=Y}else{aa=ac;ab=Z;T=312;break L413}}}while(0);c[319]=c[319]|4;ad=W;T=309}else{ad=0;T=309}}while(0);do{if((T|0)==309){if(S>>>0>=2147483647){break}W=aV(S|0)|0;Z=aV(0)|0;if(!((Z|0)!=-1&(W|0)!=-1&W>>>0>>0)){break}ac=Z-W|0;Z=ac>>>0>(o+40|0)>>>0;Y=Z?W:-1;if((Y|0)!=-1){aa=Z?ac:ad;ab=Y;T=312}}}while(0);do{if((T|0)==312){ad=(c[316]|0)+aa|0;c[316]=ad;if(ad>>>0>(c[317]|0)>>>0){c[317]=ad}ad=c[214]|0;L455:do{if((ad|0)==0){S=c[212]|0;if((S|0)==0|ab>>>0>>0){c[212]=ab}c[320]=ab;c[321]=aa;c[323]=0;c[217]=c[200];c[216]=-1;S=0;do{Y=S<<1;ac=872+(Y<<2)|0;c[872+(Y+3<<2)>>2]=ac;c[872+(Y+2<<2)>>2]=ac;S=S+1|0}while(S>>>0<32);S=ab+8|0;if((S&7|0)==0){ae=0}else{ae=-S&7}S=aa-40-ae|0;c[214]=ab+ae;c[211]=S;c[ab+(ae+4)>>2]=S|1;c[ab+(aa-36)>>2]=40;c[215]=c[204]}else{S=1280;while(1){af=c[S>>2]|0;ag=S+4|0;ah=c[ag>>2]|0;if((ab|0)==(af+ah|0)){T=324;break}ac=c[S+8>>2]|0;if((ac|0)==0){break}else{S=ac}}do{if((T|0)==324){if((c[S+12>>2]&8|0)!=0){break}ac=ad;if(!(ac>>>0>=af>>>0&ac>>>0>>0)){break}c[ag>>2]=ah+aa;ac=c[214]|0;Y=(c[211]|0)+aa|0;Z=ac;W=ac+8|0;if((W&7|0)==0){ai=0}else{ai=-W&7}W=Y-ai|0;c[214]=Z+ai;c[211]=W;c[Z+(ai+4)>>2]=W|1;c[Z+(Y+4)>>2]=40;c[215]=c[204];break L455}}while(0);if(ab>>>0<(c[212]|0)>>>0){c[212]=ab}S=ab+aa|0;Y=1280;while(1){aj=Y|0;if((c[aj>>2]|0)==(S|0)){T=334;break}Z=c[Y+8>>2]|0;if((Z|0)==0){break}else{Y=Z}}do{if((T|0)==334){if((c[Y+12>>2]&8|0)!=0){break}c[aj>>2]=ab;S=Y+4|0;c[S>>2]=(c[S>>2]|0)+aa;S=ab+8|0;if((S&7|0)==0){ak=0}else{ak=-S&7}S=ab+(aa+8)|0;if((S&7|0)==0){al=0}else{al=-S&7}S=ab+(al+aa)|0;Z=S;W=ak+o|0;ac=ab+W|0;_=ac;K=S-(ab+ak)-o|0;c[ab+(ak+4)>>2]=o|3;do{if((Z|0)==(c[214]|0)){J=(c[211]|0)+K|0;c[211]=J;c[214]=_;c[ab+(W+4)>>2]=J|1}else{if((Z|0)==(c[213]|0)){J=(c[210]|0)+K|0;c[210]=J; -c[213]=_;c[ab+(W+4)>>2]=J|1;c[ab+(J+W)>>2]=J;break}J=aa+4|0;X=c[ab+(J+al)>>2]|0;if((X&3|0)==1){$=X&-8;V=X>>>3;L500:do{if(X>>>0<256){U=c[ab+((al|8)+aa)>>2]|0;Q=c[ab+(aa+12+al)>>2]|0;R=872+(V<<1<<2)|0;do{if((U|0)!=(R|0)){if(U>>>0<(c[212]|0)>>>0){au();return 0}if((c[U+12>>2]|0)==(Z|0)){break}au();return 0}}while(0);if((Q|0)==(U|0)){c[208]=c[208]&~(1<>>0<(c[212]|0)>>>0){au();return 0}m=Q+8|0;if((c[m>>2]|0)==(Z|0)){am=m;break}au();return 0}}while(0);c[U+12>>2]=Q;c[am>>2]=U}else{R=S;m=c[ab+((al|24)+aa)>>2]|0;P=c[ab+(aa+12+al)>>2]|0;do{if((P|0)==(R|0)){O=al|16;g=ab+(J+O)|0;L=c[g>>2]|0;if((L|0)==0){e=ab+(O+aa)|0;O=c[e>>2]|0;if((O|0)==0){an=0;break}else{ao=O;ap=e}}else{ao=L;ap=g}while(1){g=ao+20|0;L=c[g>>2]|0;if((L|0)!=0){ao=L;ap=g;continue}g=ao+16|0;L=c[g>>2]|0;if((L|0)==0){break}else{ao=L;ap=g}}if(ap>>>0<(c[212]|0)>>>0){au();return 0}else{c[ap>>2]=0;an=ao;break}}else{g=c[ab+((al|8)+aa)>>2]|0;if(g>>>0<(c[212]|0)>>>0){au();return 0}L=g+12|0;if((c[L>>2]|0)!=(R|0)){au();return 0}e=P+8|0;if((c[e>>2]|0)==(R|0)){c[L>>2]=P;c[e>>2]=g;an=P;break}else{au();return 0}}}while(0);if((m|0)==0){break}P=ab+(aa+28+al)|0;U=1136+(c[P>>2]<<2)|0;do{if((R|0)==(c[U>>2]|0)){c[U>>2]=an;if((an|0)!=0){break}c[209]=c[209]&~(1<>2]);break L500}else{if(m>>>0<(c[212]|0)>>>0){au();return 0}Q=m+16|0;if((c[Q>>2]|0)==(R|0)){c[Q>>2]=an}else{c[m+20>>2]=an}if((an|0)==0){break L500}}}while(0);if(an>>>0<(c[212]|0)>>>0){au();return 0}c[an+24>>2]=m;R=al|16;P=c[ab+(R+aa)>>2]|0;do{if((P|0)!=0){if(P>>>0<(c[212]|0)>>>0){au();return 0}else{c[an+16>>2]=P;c[P+24>>2]=an;break}}}while(0);P=c[ab+(J+R)>>2]|0;if((P|0)==0){break}if(P>>>0<(c[212]|0)>>>0){au();return 0}else{c[an+20>>2]=P;c[P+24>>2]=an;break}}}while(0);aq=ab+(($|al)+aa)|0;as=$+K|0}else{aq=Z;as=K}J=aq+4|0;c[J>>2]=c[J>>2]&-2;c[ab+(W+4)>>2]=as|1;c[ab+(as+W)>>2]=as;J=as>>>3;if(as>>>0<256){V=J<<1;X=872+(V<<2)|0;P=c[208]|0;m=1<>2]|0;if(U>>>0>=(c[212]|0)>>>0){at=U;av=J;break}au();return 0}}while(0);c[av>>2]=_;c[at+12>>2]=_;c[ab+(W+8)>>2]=at;c[ab+(W+12)>>2]=X;break}V=ac;m=as>>>8;do{if((m|0)==0){aw=0}else{if(as>>>0>16777215){aw=31;break}P=(m+1048320|0)>>>16&8;$=m<>>16&4;U=$<>>16&2;Q=14-(J|P|$)+(U<<$>>>15)|0;aw=as>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=1136+(aw<<2)|0;c[ab+(W+28)>>2]=aw;c[ab+(W+20)>>2]=0;c[ab+(W+16)>>2]=0;X=c[209]|0;Q=1<>2]=V;c[ab+(W+24)>>2]=m;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}if((aw|0)==31){ax=0}else{ax=25-(aw>>>1)|0}Q=as<>2]|0;while(1){if((c[X+4>>2]&-8|0)==(as|0)){break}ay=X+16+(Q>>>31<<2)|0;m=c[ay>>2]|0;if((m|0)==0){T=407;break}else{Q=Q<<1;X=m}}if((T|0)==407){if(ay>>>0<(c[212]|0)>>>0){au();return 0}else{c[ay>>2]=V;c[ab+(W+24)>>2]=X;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}}Q=X+8|0;m=c[Q>>2]|0;$=c[212]|0;if(X>>>0<$>>>0){au();return 0}if(m>>>0<$>>>0){au();return 0}else{c[m+12>>2]=V;c[Q>>2]=V;c[ab+(W+8)>>2]=m;c[ab+(W+12)>>2]=X;c[ab+(W+24)>>2]=0;break}}}while(0);n=ab+(ak|8)|0;return n|0}}while(0);Y=ad;W=1280;while(1){az=c[W>>2]|0;if(az>>>0<=Y>>>0){aA=c[W+4>>2]|0;aB=az+aA|0;if(aB>>>0>Y>>>0){break}}W=c[W+8>>2]|0}W=az+(aA-39)|0;if((W&7|0)==0){aC=0}else{aC=-W&7}W=az+(aA-47+aC)|0;ac=W>>>0<(ad+16|0)>>>0?Y:W;W=ac+8|0;_=ab+8|0;if((_&7|0)==0){aD=0}else{aD=-_&7}_=aa-40-aD|0;c[214]=ab+aD;c[211]=_;c[ab+(aD+4)>>2]=_|1;c[ab+(aa-36)>>2]=40;c[215]=c[204];c[ac+4>>2]=27;c[W>>2]=c[320];c[W+4>>2]=c[1284>>2];c[W+8>>2]=c[1288>>2];c[W+12>>2]=c[1292>>2];c[320]=ab;c[321]=aa;c[323]=0;c[322]=W;W=ac+28|0;c[W>>2]=7;if((ac+32|0)>>>0>>0){_=W;while(1){W=_+4|0;c[W>>2]=7;if((_+8|0)>>>0>>0){_=W}else{break}}}if((ac|0)==(Y|0)){break}_=ac-ad|0;W=Y+(_+4)|0;c[W>>2]=c[W>>2]&-2;c[ad+4>>2]=_|1;c[Y+_>>2]=_;W=_>>>3;if(_>>>0<256){K=W<<1;Z=872+(K<<2)|0;S=c[208]|0;m=1<>2]|0;if(Q>>>0>=(c[212]|0)>>>0){aE=Q;aF=W;break}au();return 0}}while(0);c[aF>>2]=ad;c[aE+12>>2]=ad;c[ad+8>>2]=aE;c[ad+12>>2]=Z;break}K=ad;m=_>>>8;do{if((m|0)==0){aG=0}else{if(_>>>0>16777215){aG=31;break}S=(m+1048320|0)>>>16&8;Y=m<>>16&4;W=Y<>>16&2;Q=14-(ac|S|Y)+(W<>>15)|0;aG=_>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=1136+(aG<<2)|0;c[ad+28>>2]=aG;c[ad+20>>2]=0;c[ad+16>>2]=0;Z=c[209]|0;Q=1<>2]=K;c[ad+24>>2]=m;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}if((aG|0)==31){aH=0}else{aH=25-(aG>>>1)|0}Q=_<>2]|0;while(1){if((c[Z+4>>2]&-8|0)==(_|0)){break}aI=Z+16+(Q>>>31<<2)|0;m=c[aI>>2]|0;if((m|0)==0){T=442;break}else{Q=Q<<1;Z=m}}if((T|0)==442){if(aI>>>0<(c[212]|0)>>>0){au();return 0}else{c[aI>>2]=K;c[ad+24>>2]=Z;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}}Q=Z+8|0;_=c[Q>>2]|0;m=c[212]|0;if(Z>>>0>>0){au();return 0}if(_>>>0>>0){au();return 0}else{c[_+12>>2]=K;c[Q>>2]=K;c[ad+8>>2]=_;c[ad+12>>2]=Z;c[ad+24>>2]=0;break}}}while(0);ad=c[211]|0;if(ad>>>0<=o>>>0){break}_=ad-o|0;c[211]=_;ad=c[214]|0;Q=ad;c[214]=Q+o;c[Q+(o+4)>>2]=_|1;c[ad+4>>2]=o|3;n=ad+8|0;return n|0}}while(0);c[(aX()|0)>>2]=12;n=0;return n|0}function bM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;if((a|0)==0){return}b=a-8|0;d=b;e=c[212]|0;if(b>>>0>>0){au()}f=c[a-4>>2]|0;g=f&3;if((g|0)==1){au()}h=f&-8;i=a+(h-8)|0;j=i;L672:do{if((f&1|0)==0){k=c[b>>2]|0;if((g|0)==0){return}l=-8-k|0;m=a+l|0;n=m;o=k+h|0;if(m>>>0>>0){au()}if((n|0)==(c[213]|0)){p=a+(h-4)|0;if((c[p>>2]&3|0)!=3){q=n;r=o;break}c[210]=o;c[p>>2]=c[p>>2]&-2;c[a+(l+4)>>2]=o|1;c[i>>2]=o;return}p=k>>>3;if(k>>>0<256){k=c[a+(l+8)>>2]|0;s=c[a+(l+12)>>2]|0;t=872+(p<<1<<2)|0;do{if((k|0)!=(t|0)){if(k>>>0>>0){au()}if((c[k+12>>2]|0)==(n|0)){break}au()}}while(0);if((s|0)==(k|0)){c[208]=c[208]&~(1<>>0>>0){au()}v=s+8|0;if((c[v>>2]|0)==(n|0)){u=v;break}au()}}while(0);c[k+12>>2]=s;c[u>>2]=k;q=n;r=o;break}t=m;p=c[a+(l+24)>>2]|0;v=c[a+(l+12)>>2]|0;do{if((v|0)==(t|0)){w=a+(l+20)|0;x=c[w>>2]|0;if((x|0)==0){y=a+(l+16)|0;z=c[y>>2]|0;if((z|0)==0){A=0;break}else{B=z;C=y}}else{B=x;C=w}while(1){w=B+20|0;x=c[w>>2]|0;if((x|0)!=0){B=x;C=w;continue}w=B+16|0;x=c[w>>2]|0;if((x|0)==0){break}else{B=x;C=w}}if(C>>>0>>0){au()}else{c[C>>2]=0;A=B;break}}else{w=c[a+(l+8)>>2]|0;if(w>>>0>>0){au()}x=w+12|0;if((c[x>>2]|0)!=(t|0)){au()}y=v+8|0;if((c[y>>2]|0)==(t|0)){c[x>>2]=v;c[y>>2]=w;A=v;break}else{au()}}}while(0);if((p|0)==0){q=n;r=o;break}v=a+(l+28)|0;m=1136+(c[v>>2]<<2)|0;do{if((t|0)==(c[m>>2]|0)){c[m>>2]=A;if((A|0)!=0){break}c[209]=c[209]&~(1<>2]);q=n;r=o;break L672}else{if(p>>>0<(c[212]|0)>>>0){au()}k=p+16|0;if((c[k>>2]|0)==(t|0)){c[k>>2]=A}else{c[p+20>>2]=A}if((A|0)==0){q=n;r=o;break L672}}}while(0);if(A>>>0<(c[212]|0)>>>0){au()}c[A+24>>2]=p;t=c[a+(l+16)>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[212]|0)>>>0){au()}else{c[A+16>>2]=t;c[t+24>>2]=A;break}}}while(0);t=c[a+(l+20)>>2]|0;if((t|0)==0){q=n;r=o;break}if(t>>>0<(c[212]|0)>>>0){au()}else{c[A+20>>2]=t;c[t+24>>2]=A;q=n;r=o;break}}else{q=d;r=h}}while(0);d=q;if(d>>>0>=i>>>0){au()}A=a+(h-4)|0;e=c[A>>2]|0;if((e&1|0)==0){au()}do{if((e&2|0)==0){if((j|0)==(c[214]|0)){B=(c[211]|0)+r|0;c[211]=B;c[214]=q;c[q+4>>2]=B|1;if((q|0)==(c[213]|0)){c[213]=0;c[210]=0}if(B>>>0<=(c[215]|0)>>>0){return}bS(0)|0;return}if((j|0)==(c[213]|0)){B=(c[210]|0)+r|0;c[210]=B;c[213]=q;c[q+4>>2]=B|1;c[d+B>>2]=B;return}B=(e&-8)+r|0;C=e>>>3;L777:do{if(e>>>0<256){u=c[a+h>>2]|0;g=c[a+(h|4)>>2]|0;b=872+(C<<1<<2)|0;do{if((u|0)!=(b|0)){if(u>>>0<(c[212]|0)>>>0){au()}if((c[u+12>>2]|0)==(j|0)){break}au()}}while(0);if((g|0)==(u|0)){c[208]=c[208]&~(1<>>0<(c[212]|0)>>>0){au()}f=g+8|0;if((c[f>>2]|0)==(j|0)){D=f;break}au()}}while(0);c[u+12>>2]=g;c[D>>2]=u}else{b=i;f=c[a+(h+16)>>2]|0;t=c[a+(h|4)>>2]|0;do{if((t|0)==(b|0)){p=a+(h+12)|0;v=c[p>>2]|0;if((v|0)==0){m=a+(h+8)|0;k=c[m>>2]|0;if((k|0)==0){E=0;break}else{F=k;G=m}}else{F=v;G=p}while(1){p=F+20|0;v=c[p>>2]|0;if((v|0)!=0){F=v;G=p;continue}p=F+16|0;v=c[p>>2]|0;if((v|0)==0){break}else{F=v;G=p}}if(G>>>0<(c[212]|0)>>>0){au()}else{c[G>>2]=0;E=F;break}}else{p=c[a+h>>2]|0;if(p>>>0<(c[212]|0)>>>0){au()}v=p+12|0;if((c[v>>2]|0)!=(b|0)){au()}m=t+8|0;if((c[m>>2]|0)==(b|0)){c[v>>2]=t;c[m>>2]=p;E=t;break}else{au()}}}while(0);if((f|0)==0){break}t=a+(h+20)|0;u=1136+(c[t>>2]<<2)|0;do{if((b|0)==(c[u>>2]|0)){c[u>>2]=E;if((E|0)!=0){break}c[209]=c[209]&~(1<>2]);break L777}else{if(f>>>0<(c[212]|0)>>>0){au()}g=f+16|0;if((c[g>>2]|0)==(b|0)){c[g>>2]=E}else{c[f+20>>2]=E}if((E|0)==0){break L777}}}while(0);if(E>>>0<(c[212]|0)>>>0){au()}c[E+24>>2]=f;b=c[a+(h+8)>>2]|0;do{if((b|0)!=0){if(b>>>0<(c[212]|0)>>>0){au()}else{c[E+16>>2]=b;c[b+24>>2]=E;break}}}while(0);b=c[a+(h+12)>>2]|0;if((b|0)==0){break}if(b>>>0<(c[212]|0)>>>0){au()}else{c[E+20>>2]=b;c[b+24>>2]=E;break}}}while(0);c[q+4>>2]=B|1;c[d+B>>2]=B;if((q|0)!=(c[213]|0)){H=B;break}c[210]=B;return}else{c[A>>2]=e&-2;c[q+4>>2]=r|1;c[d+r>>2]=r;H=r}}while(0);r=H>>>3;if(H>>>0<256){d=r<<1;e=872+(d<<2)|0;A=c[208]|0;E=1<>2]|0;if(h>>>0>=(c[212]|0)>>>0){I=h;J=r;break}au()}}while(0);c[J>>2]=q;c[I+12>>2]=q;c[q+8>>2]=I;c[q+12>>2]=e;return}e=q;I=H>>>8;do{if((I|0)==0){K=0}else{if(H>>>0>16777215){K=31;break}J=(I+1048320|0)>>>16&8;d=I<>>16&4;A=d<>>16&2;r=14-(E|J|d)+(A<>>15)|0;K=H>>>((r+7|0)>>>0)&1|r<<1}}while(0);I=1136+(K<<2)|0;c[q+28>>2]=K;c[q+20>>2]=0;c[q+16>>2]=0;r=c[209]|0;d=1<>2]=e;c[q+24>>2]=I;c[q+12>>2]=q;c[q+8>>2]=q}else{if((K|0)==31){L=0}else{L=25-(K>>>1)|0}A=H<>2]|0;while(1){if((c[J+4>>2]&-8|0)==(H|0)){break}M=J+16+(A>>>31<<2)|0;E=c[M>>2]|0;if((E|0)==0){N=621;break}else{A=A<<1;J=E}}if((N|0)==621){if(M>>>0<(c[212]|0)>>>0){au()}else{c[M>>2]=e;c[q+24>>2]=J;c[q+12>>2]=q;c[q+8>>2]=q;break}}A=J+8|0;B=c[A>>2]|0;E=c[212]|0;if(J>>>0>>0){au()}if(B>>>0>>0){au()}else{c[B+12>>2]=e;c[A>>2]=e;c[q+8>>2]=B;c[q+12>>2]=J;c[q+24>>2]=0;break}}}while(0);q=(c[216]|0)-1|0;c[216]=q;if((q|0)==0){O=1288}else{return}while(1){q=c[O>>2]|0;if((q|0)==0){break}else{O=q+8|0}}c[216]=-1;return}function bN(a,b){a=a|0;b=b|0;var d=0,e=0;do{if((a|0)==0){d=0}else{e=ad(b,a)|0;if((b|a)>>>0<=65535){d=e;break}d=((e>>>0)/(a>>>0)|0|0)==(b|0)?e:-1}}while(0);b=bL(d)|0;if((b|0)==0){return b|0}if((c[b-4>>2]&3|0)==0){return b|0}cL(b|0,0,d|0);return b|0}function bO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((a|0)==0){d=bL(b)|0;return d|0}if(b>>>0>4294967231){c[(aX()|0)>>2]=12;d=0;return d|0}if(b>>>0<11){e=16}else{e=b+11&-8}f=bT(a-8|0,e)|0;if((f|0)!=0){d=f+8|0;return d|0}f=bL(b)|0;if((f|0)==0){d=0;return d|0}e=c[a-4>>2]|0;g=(e&-8)-((e&3|0)==0?8:4)|0;e=g>>>0>>0?g:b;cK(f|0,a|0,e)|0;bM(a);d=f;return d|0}function bP(a,b){a=a|0;b=b|0;var d=0;if((a|0)==0){return 0}if(b>>>0>4294967231){c[(aX()|0)>>2]=12;return 0}if(b>>>0<11){d=16}else{d=b+11&-8}b=a-8|0;return((bT(b,d)|0)==(b|0)?a:0)|0}function bQ(a,b){a=a|0;b=b|0;var c=0;if(a>>>0<9){c=bL(b)|0;return c|0}else{c=bR(a,b)|0;return c|0}return 0}function bR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a>>>0<16?16:a;if((d-1&d|0)==0){e=d}else{a=16;while(1){if(a>>>0>>0){a=a<<1}else{e=a;break}}}if((-64-e|0)>>>0<=b>>>0){c[(aX()|0)>>2]=12;f=0;return f|0}if(b>>>0<11){g=16}else{g=b+11&-8}b=bL(e+12+g|0)|0;if((b|0)==0){f=0;return f|0}a=b-8|0;d=a;h=e-1|0;do{if((b&h|0)==0){i=d}else{j=b+h&-e;k=j-8|0;l=a;if((k-l|0)>>>0>15){m=k}else{m=j+(e-8)|0}j=m;k=m-l|0;l=b-4|0;n=c[l>>2]|0;o=(n&-8)-k|0;if((n&3|0)==0){c[m>>2]=(c[a>>2]|0)+k;c[m+4>>2]=o;i=j;break}else{n=m+4|0;c[n>>2]=o|c[n>>2]&1|2;n=m+(o+4)|0;c[n>>2]=c[n>>2]|1;c[l>>2]=k|c[l>>2]&1|2;l=b+(k-4)|0;c[l>>2]=c[l>>2]|1;b9(d,k);i=j;break}}}while(0);d=i+4|0;b=c[d>>2]|0;do{if((b&3|0)!=0){m=b&-8;if(m>>>0<=(g+16|0)>>>0){break}a=m-g|0;e=i;c[d>>2]=g|b&1|2;c[e+(g|4)>>2]=a|3;h=e+(m|4)|0;c[h>>2]=c[h>>2]|1;b9(e+g|0,a)}}while(0);f=i+8|0;return f|0}function bS(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);if(a>>>0>=4294967232){d=0;return d|0}b=c[214]|0;if((b|0)==0){d=0;return d|0}e=c[211]|0;do{if(e>>>0>(a+40|0)>>>0){f=c[202]|0;g=ad((((-40-a-1+e+f|0)>>>0)/(f>>>0)|0)-1|0,f)|0;h=b;i=1280;while(1){j=c[i>>2]|0;if(j>>>0<=h>>>0){if((j+(c[i+4>>2]|0)|0)>>>0>h>>>0){k=i;break}}j=c[i+8>>2]|0;if((j|0)==0){k=0;break}else{i=j}}if((c[k+12>>2]&8|0)!=0){break}i=aV(0)|0;h=k+4|0;if((i|0)!=((c[k>>2]|0)+(c[h>>2]|0)|0)){break}j=aV(-(g>>>0>2147483646?-2147483648-f|0:g)|0)|0;l=aV(0)|0;if(!((j|0)!=-1&l>>>0>>0)){break}j=i-l|0;if((i|0)==(l|0)){break}c[h>>2]=(c[h>>2]|0)-j;c[316]=(c[316]|0)-j;h=c[214]|0;m=(c[211]|0)-j|0;j=h;n=h+8|0;if((n&7|0)==0){o=0}else{o=-n&7}n=m-o|0;c[214]=j+o;c[211]=n;c[j+(o+4)>>2]=n|1;c[j+(m+4)>>2]=40;c[215]=c[204];d=(i|0)!=(l|0)|0;return d|0}}while(0);if((c[211]|0)>>>0<=(c[215]|0)>>>0){d=0;return d|0}c[215]=-1;d=0;return d|0}function bT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a;h=g+f|0;i=h;j=c[212]|0;if(g>>>0>>0){au();return 0}k=e&3;if(!((k|0)!=1&g>>>0>>0)){au();return 0}l=g+(f|4)|0;m=c[l>>2]|0;if((m&1|0)==0){au();return 0}if((k|0)==0){if(b>>>0<256){n=0;return n|0}do{if(f>>>0>=(b+4|0)>>>0){if((f-b|0)>>>0>c[202]<<1>>>0){break}else{n=a}return n|0}}while(0);n=0;return n|0}if(f>>>0>=b>>>0){k=f-b|0;if(k>>>0<=15){n=a;return n|0}c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=k|3;c[l>>2]=c[l>>2]|1;b9(g+b|0,k);n=a;return n|0}if((i|0)==(c[214]|0)){k=(c[211]|0)+f|0;if(k>>>0<=b>>>0){n=0;return n|0}l=k-b|0;c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=l|1;c[214]=g+b;c[211]=l;n=a;return n|0}if((i|0)==(c[213]|0)){l=(c[210]|0)+f|0;if(l>>>0>>0){n=0;return n|0}k=l-b|0;if(k>>>0>15){c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=k|1;c[g+l>>2]=k;o=g+(l+4)|0;c[o>>2]=c[o>>2]&-2;p=g+b|0;q=k}else{c[d>>2]=e&1|l|2;e=g+(l+4)|0;c[e>>2]=c[e>>2]|1;p=0;q=0}c[210]=q;c[213]=p;n=a;return n|0}if((m&2|0)!=0){n=0;return n|0}p=(m&-8)+f|0;if(p>>>0>>0){n=0;return n|0}q=p-b|0;e=m>>>3;L1056:do{if(m>>>0<256){l=c[g+(f+8)>>2]|0;k=c[g+(f+12)>>2]|0;o=872+(e<<1<<2)|0;do{if((l|0)!=(o|0)){if(l>>>0>>0){au();return 0}if((c[l+12>>2]|0)==(i|0)){break}au();return 0}}while(0);if((k|0)==(l|0)){c[208]=c[208]&~(1<>>0>>0){au();return 0}s=k+8|0;if((c[s>>2]|0)==(i|0)){r=s;break}au();return 0}}while(0);c[l+12>>2]=k;c[r>>2]=l}else{o=h;s=c[g+(f+24)>>2]|0;t=c[g+(f+12)>>2]|0;do{if((t|0)==(o|0)){u=g+(f+20)|0;v=c[u>>2]|0;if((v|0)==0){w=g+(f+16)|0;x=c[w>>2]|0;if((x|0)==0){y=0;break}else{z=x;A=w}}else{z=v;A=u}while(1){u=z+20|0;v=c[u>>2]|0;if((v|0)!=0){z=v;A=u;continue}u=z+16|0;v=c[u>>2]|0;if((v|0)==0){break}else{z=v;A=u}}if(A>>>0>>0){au();return 0}else{c[A>>2]=0;y=z;break}}else{u=c[g+(f+8)>>2]|0;if(u>>>0>>0){au();return 0}v=u+12|0;if((c[v>>2]|0)!=(o|0)){au();return 0}w=t+8|0;if((c[w>>2]|0)==(o|0)){c[v>>2]=t;c[w>>2]=u;y=t;break}else{au();return 0}}}while(0);if((s|0)==0){break}t=g+(f+28)|0;l=1136+(c[t>>2]<<2)|0;do{if((o|0)==(c[l>>2]|0)){c[l>>2]=y;if((y|0)!=0){break}c[209]=c[209]&~(1<>2]);break L1056}else{if(s>>>0<(c[212]|0)>>>0){au();return 0}k=s+16|0;if((c[k>>2]|0)==(o|0)){c[k>>2]=y}else{c[s+20>>2]=y}if((y|0)==0){break L1056}}}while(0);if(y>>>0<(c[212]|0)>>>0){au();return 0}c[y+24>>2]=s;o=c[g+(f+16)>>2]|0;do{if((o|0)!=0){if(o>>>0<(c[212]|0)>>>0){au();return 0}else{c[y+16>>2]=o;c[o+24>>2]=y;break}}}while(0);o=c[g+(f+20)>>2]|0;if((o|0)==0){break}if(o>>>0<(c[212]|0)>>>0){au();return 0}else{c[y+20>>2]=o;c[o+24>>2]=y;break}}}while(0);if(q>>>0<16){c[d>>2]=p|c[d>>2]&1|2;y=g+(p|4)|0;c[y>>2]=c[y>>2]|1;n=a;return n|0}else{c[d>>2]=c[d>>2]&1|b|2;c[g+(b+4)>>2]=q|3;d=g+(p|4)|0;c[d>>2]=c[d>>2]|1;b9(g+b|0,q);n=a;return n|0}return 0}function bU(){return c[316]|0}function bV(){return c[317]|0}function bW(){var a=0;a=c[318]|0;return((a|0)==0?-1:a)|0}function bX(a){a=a|0;var b=0,d=0;if((a|0)==-1){b=0}else{d=c[202]|0;b=a-1+d&-d}c[318]=b;return b|0}function bY(a){a=a|0;var b=0,d=0,e=0;do{if((a|0)==0){b=0}else{d=c[a-4>>2]|0;e=d&3;if((e|0)==1){b=0;break}b=(d&-8)-((e|0)==0?8:4)|0}}while(0);return b|0}function bZ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;do{if((b|0)==8){e=bL(d)|0}else{f=b>>>2;if((b&3|0)!=0|(f|0)==0){g=22;return g|0}if((f+1073741823&f|0)!=0){g=22;return g|0}if((-64-b|0)>>>0>>0){g=12;return g|0}else{e=bR(b>>>0<16?16:b,d)|0;break}}}while(0);if((e|0)==0){g=12;return g|0}c[a>>2]=e;g=0;return g|0}function b_(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+8|0;f=e|0;c[f>>2]=b;b=b2(a,f,3,d)|0;i=e;return b|0}function b$(a,b,c){a=a|0;b=b|0;c=c|0;return b2(a,b,0,c)|0}function b0(a){a=a|0;var b=0,d=0,e=0;if((c[200]|0)!=0){b=c[201]|0;d=bQ(b,a)|0;return d|0}e=ar(8)|0;if((e-1&e|0)!=0){au();return 0}c[202]=e;c[201]=e;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;b=c[201]|0;d=bQ(b,a)|0;return d|0}function b1(a){a=a|0;var b=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);b=c[201]|0;return bQ(b,a-1+b&-b)|0}function b2(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;do{if((c[200]|0)==0){f=ar(8)|0;if((f-1&f|0)==0){c[202]=f;c[201]=f;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);f=(a|0)==0;do{if((e|0)==0){if(f){g=bL(0)|0;return g|0}else{h=a<<2;if(h>>>0<11){i=0;j=16;break}i=0;j=h+11&-8;break}}else{if(f){g=e}else{i=e;j=0;break}return g|0}}while(0);do{if((d&1|0)==0){if(f){k=0;l=0;break}else{m=0;n=0}while(1){e=c[b+(n<<2)>>2]|0;if(e>>>0<11){o=16}else{o=e+11&-8}e=o+m|0;h=n+1|0;if((h|0)==(a|0)){k=0;l=e;break}else{m=e;n=h}}}else{h=c[b>>2]|0;if(h>>>0<11){p=16}else{p=h+11&-8}k=p;l=ad(p,a)|0}}while(0);p=bL(j-4+l|0)|0;if((p|0)==0){g=0;return g|0}n=p-8|0;m=c[p-4>>2]&-8;if((d&2|0)!=0){cL(p|0,0,-4-j+m|0)}if((i|0)==0){c[p+(l-4)>>2]=m-l|3;q=p+l|0;r=l}else{q=i;r=m}c[q>>2]=p;p=a-1|0;L1216:do{if((p|0)==0){s=n;t=r}else{if((k|0)==0){u=n;v=r;w=0}else{a=n;m=r;i=0;while(1){l=m-k|0;c[a+4>>2]=k|3;j=a+k|0;d=i+1|0;c[q+(d<<2)>>2]=a+(k+8);if((d|0)==(p|0)){s=j;t=l;break L1216}else{a=j;m=l;i=d}}}while(1){i=c[b+(w<<2)>>2]|0;if(i>>>0<11){x=16}else{x=i+11&-8}i=v-x|0;c[u+4>>2]=x|3;m=u+x|0;a=w+1|0;c[q+(a<<2)>>2]=u+(x+8);if((a|0)==(p|0)){s=m;t=i;break}else{u=m;v=i;w=a}}}}while(0);c[s+4>>2]=t|3;g=q;return g|0}function b3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=a+(b<<2)|0;L1229:do{if((b|0)!=0){e=a;L1230:while(1){f=c[e>>2]|0;L1232:do{if((f|0)==0){g=e+4|0}else{h=f-8|0;i=h;j=f-4|0;k=c[j>>2]&-8;c[e>>2]=0;if(h>>>0<(c[212]|0)>>>0){l=935;break L1230}h=c[j>>2]|0;if((h&3|0)==1){l=936;break L1230}m=e+4|0;n=h-8&-8;do{if((m|0)!=(d|0)){if((c[m>>2]|0)!=(f+(n+8)|0)){break}o=(c[f+(n|4)>>2]&-8)+k|0;c[j>>2]=h&1|o|2;p=f+(o-4)|0;c[p>>2]=c[p>>2]|1;c[m>>2]=f;g=m;break L1232}}while(0);b9(i,k);g=m}}while(0);if((g|0)==(d|0)){break L1229}else{e=g}}if((l|0)==935){au();return 0}else if((l|0)==936){au();return 0}}}while(0);if((c[211]|0)>>>0<=(c[215]|0)>>>0){return 0}bS(0)|0;return 0}function b4(a){a=a|0;var b=0,d=0;if((c[200]|0)!=0){b=bS(a)|0;return b|0}d=ar(8)|0;if((d-1&d|0)!=0){au();return 0}c[202]=d;c[201]=d;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;b=bS(a)|0;return b|0}function b5(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au()}}}while(0);b=c[214]|0;if((b|0)==0){d=0;e=0;f=0;g=0;h=0;i=0;j=0}else{k=c[211]|0;l=k+40|0;m=1;n=l;o=l;l=1280;while(1){p=c[l>>2]|0;q=p+8|0;if((q&7|0)==0){r=0}else{r=-q&7}q=p+(c[l+4>>2]|0)|0;s=m;t=n;u=o;v=p+r|0;while(1){if(v>>>0>=q>>>0|(v|0)==(b|0)){w=s;x=t;y=u;break}z=c[v+4>>2]|0;if((z|0)==7){w=s;x=t;y=u;break}A=z&-8;B=A+u|0;if((z&3|0)==1){C=A+t|0;D=s+1|0}else{C=t;D=s}z=v+A|0;if(z>>>0

>>0){w=D;x=C;y=B;break}else{s=D;t=C;u=B;v=z}}v=c[l+8>>2]|0;if((v|0)==0){break}else{m=w;n=x;o=y;l=v}}l=c[316]|0;d=k;e=y;f=w;g=l-y|0;h=c[317]|0;i=l-x|0;j=x}c[a>>2]=e;c[a+4>>2]=f;f=a+8|0;c[f>>2]=0;c[f+4>>2]=0;c[a+16>>2]=g;c[a+20>>2]=h;c[a+24>>2]=0;c[a+28>>2]=i;c[a+32>>2]=j;c[a+36>>2]=d;return}function b6(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0;a=i;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au()}}}while(0);b=c[214]|0;if((b|0)==0){d=0;e=0;f=0}else{g=c[317]|0;h=c[316]|0;j=h-40-(c[211]|0)|0;k=1280;while(1){l=c[k>>2]|0;m=l+8|0;if((m&7|0)==0){n=0}else{n=-m&7}m=l+(c[k+4>>2]|0)|0;p=j;q=l+n|0;while(1){if(q>>>0>=m>>>0|(q|0)==(b|0)){r=p;break}s=c[q+4>>2]|0;if((s|0)==7){r=p;break}t=s&-8;u=p-((s&3|0)==1?t:0)|0;s=q+t|0;if(s>>>0>>0){r=u;break}else{p=u;q=s}}q=c[k+8>>2]|0;if((q|0)==0){d=r;e=h;f=g;break}else{j=r;k=q}}}av(c[o>>2]|0,520,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;av(c[o>>2]|0,488,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;av(c[o>>2]|0,400,(y=i,i=i+8|0,c[y>>2]=d,y)|0)|0;i=a;return}function b7(a,b){a=a|0;b=b|0;var d=0,e=0;do{if((c[200]|0)==0){d=ar(8)|0;if((d-1&d|0)==0){c[202]=d;c[201]=d;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);if((a|0)==(-1|0)){c[204]=b;e=1;return e|0}else if((a|0)==(-2|0)){if((c[201]|0)>>>0>b>>>0){e=0;return e|0}if((b-1&b|0)!=0){e=0;return e|0}c[202]=b;e=1;return e|0}else if((a|0)==(-3|0)){c[203]=b;e=1;return e|0}else{e=0;return e|0}return 0}function b8(){return(F=c[328]|0,c[328]=F+0,F)|0}function b9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;d=a;e=d+b|0;f=e;g=c[a+4>>2]|0;L1325:do{if((g&1|0)==0){h=c[a>>2]|0;if((g&3|0)==0){return}i=d+(-h|0)|0;j=i;k=h+b|0;l=c[212]|0;if(i>>>0>>0){au()}if((j|0)==(c[213]|0)){m=d+(b+4)|0;if((c[m>>2]&3|0)!=3){n=j;o=k;break}c[210]=k;c[m>>2]=c[m>>2]&-2;c[d+(4-h)>>2]=k|1;c[e>>2]=k;return}m=h>>>3;if(h>>>0<256){p=c[d+(8-h)>>2]|0;q=c[d+(12-h)>>2]|0;r=872+(m<<1<<2)|0;do{if((p|0)!=(r|0)){if(p>>>0>>0){au()}if((c[p+12>>2]|0)==(j|0)){break}au()}}while(0);if((q|0)==(p|0)){c[208]=c[208]&~(1<>>0>>0){au()}t=q+8|0;if((c[t>>2]|0)==(j|0)){s=t;break}au()}}while(0);c[p+12>>2]=q;c[s>>2]=p;n=j;o=k;break}r=i;m=c[d+(24-h)>>2]|0;t=c[d+(12-h)>>2]|0;do{if((t|0)==(r|0)){u=16-h|0;v=d+(u+4)|0;w=c[v>>2]|0;if((w|0)==0){x=d+u|0;u=c[x>>2]|0;if((u|0)==0){y=0;break}else{z=u;A=x}}else{z=w;A=v}while(1){v=z+20|0;w=c[v>>2]|0;if((w|0)!=0){z=w;A=v;continue}v=z+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{z=w;A=v}}if(A>>>0>>0){au()}else{c[A>>2]=0;y=z;break}}else{v=c[d+(8-h)>>2]|0;if(v>>>0>>0){au()}w=v+12|0;if((c[w>>2]|0)!=(r|0)){au()}x=t+8|0;if((c[x>>2]|0)==(r|0)){c[w>>2]=t;c[x>>2]=v;y=t;break}else{au()}}}while(0);if((m|0)==0){n=j;o=k;break}t=d+(28-h)|0;l=1136+(c[t>>2]<<2)|0;do{if((r|0)==(c[l>>2]|0)){c[l>>2]=y;if((y|0)!=0){break}c[209]=c[209]&~(1<>2]);n=j;o=k;break L1325}else{if(m>>>0<(c[212]|0)>>>0){au()}i=m+16|0;if((c[i>>2]|0)==(r|0)){c[i>>2]=y}else{c[m+20>>2]=y}if((y|0)==0){n=j;o=k;break L1325}}}while(0);if(y>>>0<(c[212]|0)>>>0){au()}c[y+24>>2]=m;r=16-h|0;t=c[d+r>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[212]|0)>>>0){au()}else{c[y+16>>2]=t;c[t+24>>2]=y;break}}}while(0);t=c[d+(r+4)>>2]|0;if((t|0)==0){n=j;o=k;break}if(t>>>0<(c[212]|0)>>>0){au()}else{c[y+20>>2]=t;c[t+24>>2]=y;n=j;o=k;break}}else{n=a;o=b}}while(0);a=c[212]|0;if(e>>>0>>0){au()}y=d+(b+4)|0;z=c[y>>2]|0;do{if((z&2|0)==0){if((f|0)==(c[214]|0)){A=(c[211]|0)+o|0;c[211]=A;c[214]=n;c[n+4>>2]=A|1;if((n|0)!=(c[213]|0)){return}c[213]=0;c[210]=0;return}if((f|0)==(c[213]|0)){A=(c[210]|0)+o|0;c[210]=A;c[213]=n;c[n+4>>2]=A|1;c[n+A>>2]=A;return}A=(z&-8)+o|0;s=z>>>3;L1424:do{if(z>>>0<256){g=c[d+(b+8)>>2]|0;t=c[d+(b+12)>>2]|0;h=872+(s<<1<<2)|0;do{if((g|0)!=(h|0)){if(g>>>0>>0){au()}if((c[g+12>>2]|0)==(f|0)){break}au()}}while(0);if((t|0)==(g|0)){c[208]=c[208]&~(1<>>0>>0){au()}m=t+8|0;if((c[m>>2]|0)==(f|0)){B=m;break}au()}}while(0);c[g+12>>2]=t;c[B>>2]=g}else{h=e;m=c[d+(b+24)>>2]|0;l=c[d+(b+12)>>2]|0;do{if((l|0)==(h|0)){i=d+(b+20)|0;p=c[i>>2]|0;if((p|0)==0){q=d+(b+16)|0;v=c[q>>2]|0;if((v|0)==0){C=0;break}else{D=v;E=q}}else{D=p;E=i}while(1){i=D+20|0;p=c[i>>2]|0;if((p|0)!=0){D=p;E=i;continue}i=D+16|0;p=c[i>>2]|0;if((p|0)==0){break}else{D=p;E=i}}if(E>>>0>>0){au()}else{c[E>>2]=0;C=D;break}}else{i=c[d+(b+8)>>2]|0;if(i>>>0>>0){au()}p=i+12|0;if((c[p>>2]|0)!=(h|0)){au()}q=l+8|0;if((c[q>>2]|0)==(h|0)){c[p>>2]=l;c[q>>2]=i;C=l;break}else{au()}}}while(0);if((m|0)==0){break}l=d+(b+28)|0;g=1136+(c[l>>2]<<2)|0;do{if((h|0)==(c[g>>2]|0)){c[g>>2]=C;if((C|0)!=0){break}c[209]=c[209]&~(1<>2]);break L1424}else{if(m>>>0<(c[212]|0)>>>0){au()}t=m+16|0;if((c[t>>2]|0)==(h|0)){c[t>>2]=C}else{c[m+20>>2]=C}if((C|0)==0){break L1424}}}while(0);if(C>>>0<(c[212]|0)>>>0){au()}c[C+24>>2]=m;h=c[d+(b+16)>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[212]|0)>>>0){au()}else{c[C+16>>2]=h;c[h+24>>2]=C;break}}}while(0);h=c[d+(b+20)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[212]|0)>>>0){au()}else{c[C+20>>2]=h;c[h+24>>2]=C;break}}}while(0);c[n+4>>2]=A|1;c[n+A>>2]=A;if((n|0)!=(c[213]|0)){F=A;break}c[210]=A;return}else{c[y>>2]=z&-2;c[n+4>>2]=o|1;c[n+o>>2]=o;F=o}}while(0);o=F>>>3;if(F>>>0<256){z=o<<1;y=872+(z<<2)|0;C=c[208]|0;b=1<>2]|0;if(d>>>0>=(c[212]|0)>>>0){G=d;H=o;break}au()}}while(0);c[H>>2]=n;c[G+12>>2]=n;c[n+8>>2]=G;c[n+12>>2]=y;return}y=n;G=F>>>8;do{if((G|0)==0){I=0}else{if(F>>>0>16777215){I=31;break}H=(G+1048320|0)>>>16&8;z=G<>>16&4;C=z<>>16&2;o=14-(b|H|z)+(C<>>15)|0;I=F>>>((o+7|0)>>>0)&1|o<<1}}while(0);G=1136+(I<<2)|0;c[n+28>>2]=I;c[n+20>>2]=0;c[n+16>>2]=0;o=c[209]|0;z=1<>2]=y;c[n+24>>2]=G;c[n+12>>2]=n;c[n+8>>2]=n;return}if((I|0)==31){J=0}else{J=25-(I>>>1)|0}I=F<>2]|0;while(1){if((c[J+4>>2]&-8|0)==(F|0)){break}K=J+16+(I>>>31<<2)|0;G=c[K>>2]|0;if((G|0)==0){L=1120;break}else{I=I<<1;J=G}}if((L|0)==1120){if(K>>>0<(c[212]|0)>>>0){au()}c[K>>2]=y;c[n+24>>2]=J;c[n+12>>2]=n;c[n+8>>2]=n;return}K=J+8|0;L=c[K>>2]|0;I=c[212]|0;if(J>>>0>>0){au()}if(L>>>0>>0){au()}c[L+12>>2]=y;c[K>>2]=y;c[n+8>>2]=L;c[n+12>>2]=J;c[n+24>>2]=0;return}function ca(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;while(1){d=bL(b)|0;if((d|0)!=0){e=1164;break}a=(F=c[328]|0,c[328]=F+0,F);if((a|0)==0){break}a5[a&1]()}if((e|0)==1164){return d|0}d=aJ(4)|0;c[d>>2]=560;as(d|0,688,6);return 0}function cb(a,b){a=a|0;b=b|0;return ca(a)|0}function cc(a){a=a|0;return}function cd(a){a=a|0;return 360|0}function ce(a){a=a|0;return 448|0}function cf(a){a=a|0;return(F=c[328]|0,c[328]=a,F)|0}function cg(a){a=a|0;c[a>>2]=560;return}function ch(a){a=a|0;c[a>>2]=592;return}function ci(a){a=a|0;if((a|0)!=0){bM(a)}return}function cj(a,b){a=a|0;b=b|0;ci(a);return}function ck(a){a=a|0;ci(a);return}function cl(a,b){a=a|0;b=b|0;ck(a);return}function cm(a){a=a|0;ci(a);return}function cn(a){a=a|0;ci(a);return}function co(a,b,c){a=a|0;b=b|0;c=c|0;return cp(a,b,c,0,0,0)|0}function cp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0,ac=0,ad=0;j=i;if((e|0)==0){k=-1;i=j;return k|0}l=c[44]|0;if((l|0)==0){c[196]=1;c[44]=1;m=1;n=1;o=1190}else{p=c[196]|0;q=c[74]|0;if((q|0)==-1|(p|0)!=0){m=p;n=l;o=1190}else{r=q;s=p;t=l}}if((o|0)==1190){l=(aP(344)|0)!=0|0;c[74]=l;r=l;s=m;t=n}n=a[e]|0;if(n<<24>>24==45){u=h|2;o=1194}else{m=(r|0)!=0|n<<24>>24==43?h&-2:h;if(n<<24>>24==43){u=m;o=1194}else{v=e;w=m}}if((o|0)==1194){v=e+1|0;w=u}c[198]=0;if((s|0)==0){x=t;o=1198}else{c[50]=-1;c[48]=-1;z=t;A=s;o=1197}while(1){if((o|0)==1197){o=0;if((A|0)==0){x=z;o=1198;continue}else{B=z}}else if((o|0)==1198){o=0;s=c[40]|0;if((a[s]|0)==0){B=x}else{C=s;D=x;break}}c[196]=0;if((B|0)>=(b|0)){o=1200;break}E=d+(B<<2)|0;F=c[E>>2]|0;c[40]=F;if((a[F]|0)==45){G=F+1|0;H=a[G]|0;if(H<<24>>24!=0){o=1232;break}if((aB(v|0,45)|0)!=0){o=1232;break}}c[40]=824;if((w&2|0)!=0){o=1217;break}if((w&1|0)==0){k=-1;o=1298;break}s=c[48]|0;do{if((s|0)==-1){c[48]=B;I=B;J=0}else{t=c[50]|0;if((t|0)==-1){I=B;J=0;break}u=t-s|0;e=B-t|0;m=(u|0)%(e|0)|0;if((m|0)==0){K=e}else{n=e;h=m;while(1){m=(n|0)%(h|0)|0;if((m|0)==0){K=h;break}else{n=h;h=m}}}h=(B-s|0)/(K|0)|0;do{if((K|0)>0){n=-u|0;if((h|0)>0){L=0}else{M=B;N=t;O=s;P=0;break}do{m=L+t|0;r=d+(m<<2)|0;l=0;p=m;m=c[r>>2]|0;while(1){q=((p|0)<(t|0)?e:n)+p|0;Q=d+(q<<2)|0;R=c[Q>>2]|0;c[Q>>2]=m;c[r>>2]=R;Q=l+1|0;if((Q|0)<(h|0)){l=Q;p=q;m=R}else{break}}L=L+1|0}while((L|0)<(K|0));M=c[44]|0;N=c[50]|0;O=c[48]|0;P=c[196]|0}else{M=B;N=t;O=s;P=0}}while(0);c[48]=M-N+O;c[50]=-1;I=M;J=P}}while(0);s=I+1|0;c[44]=s;z=s;A=J;o=1197}do{if((o|0)==1298){i=j;return k|0}else if((o|0)==1232){J=c[48]|0;A=c[50]|0;if((J|0)!=-1&(A|0)==-1){c[50]=B;S=a[G]|0;T=B}else{S=H;T=A}if(S<<24>>24==0){C=F;D=B;break}c[40]=G;if((a[G]|0)!=45){C=G;D=B;break}if((a[F+2|0]|0)!=0){C=G;D=B;break}A=B+1|0;c[44]=A;c[40]=824;if((T|0)!=-1){z=T-J|0;I=A-T|0;P=(z|0)%(I|0)|0;if((P|0)==0){U=I}else{M=I;O=P;while(1){P=(M|0)%(O|0)|0;if((P|0)==0){U=O;break}else{M=O;O=P}}}O=(A-J|0)/(U|0)|0;do{if((U|0)>0){M=-z|0;if((O|0)>0){V=0}else{W=T;X=J;Y=A;break}do{P=V+T|0;N=d+(P<<2)|0;K=0;L=P;P=c[N>>2]|0;while(1){x=((L|0)<(T|0)?I:M)+L|0;s=d+(x<<2)|0;t=c[s>>2]|0;c[s>>2]=P;c[N>>2]=t;s=K+1|0;if((s|0)<(O|0)){K=s;L=x;P=t}else{break}}V=V+1|0}while((V|0)<(U|0));W=c[50]|0;X=c[48]|0;Y=c[44]|0}else{W=T;X=J;Y=A}}while(0);c[44]=X-W+Y}c[50]=-1;c[48]=-1;k=-1;i=j;return k|0}else if((o|0)==1200){c[40]=824;A=c[50]|0;J=c[48]|0;do{if((A|0)==-1){if((J|0)==-1){break}c[44]=J}else{O=A-J|0;I=B-A|0;z=(O|0)%(I|0)|0;if((z|0)==0){Z=I}else{M=I;P=z;while(1){z=(M|0)%(P|0)|0;if((z|0)==0){Z=P;break}else{M=P;P=z}}}P=(B-J|0)/(Z|0)|0;do{if((Z|0)>0){M=-O|0;if((P|0)>0){_=0}else{$=A;aa=J;ab=B;break}do{z=_+A|0;L=d+(z<<2)|0;K=0;N=z;z=c[L>>2]|0;while(1){t=((N|0)<(A|0)?I:M)+N|0;x=d+(t<<2)|0;s=c[x>>2]|0;c[x>>2]=z;c[L>>2]=s;x=K+1|0;if((x|0)<(P|0)){K=x;N=t;z=s}else{break}}_=_+1|0}while((_|0)<(Z|0));$=c[50]|0;aa=c[48]|0;ab=c[44]|0}else{$=A;aa=J;ab=B}}while(0);c[44]=aa-$+ab}}while(0);c[50]=-1;c[48]=-1;k=-1;i=j;return k|0}else if((o|0)==1217){c[44]=B+1;c[198]=c[E>>2];k=1;i=j;return k|0}}while(0);E=(f|0)!=0;L1659:do{if(E){if((C|0)==(c[d+(D<<2)>>2]|0)){ac=C;break}B=a[C]|0;do{if(B<<24>>24==45){c[40]=C+1;ad=0}else{if((w&4|0)==0){ac=C;break L1659}if(B<<24>>24==58){ad=0;break}ad=(aB(v|0,B<<24>>24|0)|0)!=0|0}}while(0);B=cv(d,v,f,g,ad)|0;if((B|0)==-1){ac=c[40]|0;break}c[40]=824;k=B;i=j;return k|0}else{ac=C}}while(0);C=ac+1|0;c[40]=C;ad=a[ac]|0;ac=ad<<24>>24;if((ad<<24>>24|0)==45){if((a[C]|0)==0){o=1260}}else if((ad<<24>>24|0)==58){o=1263}else{o=1260}do{if((o|0)==1260){w=aB(v|0,ac|0)|0;if((w|0)==0){if(ad<<24>>24!=45){o=1263;break}if((a[C]|0)==0){k=-1}else{break}i=j;return k|0}D=a[w+1|0]|0;if(E&ad<<24>>24==87&D<<24>>24==59){do{if((a[C]|0)==0){B=(c[44]|0)+1|0;c[44]=B;if((B|0)<(b|0)){c[40]=c[d+(B<<2)>>2];break}c[40]=824;do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(48,(y=i,i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=(a[v]|0)==58?58:63;i=j;return k|0}}while(0);B=cv(d,v,f,g,0)|0;c[40]=824;k=B;i=j;return k|0}if(D<<24>>24!=58){if((a[C]|0)!=0){k=ac;i=j;return k|0}c[44]=(c[44]|0)+1;k=ac;i=j;return k|0}c[198]=0;do{if((a[C]|0)==0){if((a[w+2|0]|0)==58){break}B=(c[44]|0)+1|0;c[44]=B;if((B|0)<(b|0)){c[198]=c[d+(B<<2)>>2];break}c[40]=824;do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(48,(y=i,i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=(a[v]|0)==58?58:63;i=j;return k|0}else{c[198]=C}}while(0);c[40]=824;c[44]=(c[44]|0)+1;k=ac;i=j;return k|0}}while(0);do{if((o|0)==1263){if((a[C]|0)!=0){break}c[44]=(c[44]|0)+1}}while(0);do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(272,(y=i, -i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=63;i=j;return k|0}function cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return cp(a,b,c,d,e,1)|0}function cr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return cp(a,b,c,d,e,5)|0}function cs(a){a=a|0;return ca(a)|0}function ct(a,b){a=a|0;b=b|0;return cs(a)|0}function cu(){var a=0;a=aJ(4)|0;c[a>>2]=560;as(a|0,688,6)}function cv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;h=i;j=c[40]|0;k=c[44]|0;l=k+1|0;c[44]=l;m=aB(j|0,61)|0;if((m|0)==0){n=cM(j|0)|0;o=0}else{n=m-j|0;o=m+1|0}m=c[e>>2]|0;L1739:do{if((m|0)!=0){L1741:do{if((g|0)!=0&(n|0)==1){p=0;q=m;while(1){if((a[j]|0)==(a[q]|0)){if((cM(q|0)|0)==1){r=p;break L1741}}p=p+1|0;q=c[e+(p<<4)>>2]|0;if((q|0)==0){break L1739}}}else{q=0;p=-1;s=m;while(1){if((ap(j|0,s|0,n|0)|0)==0){if((cM(s|0)|0)==(n|0)){r=q;break L1741}if((p|0)==-1){t=q}else{break}}else{t=p}u=q+1|0;v=c[e+(u<<4)>>2]|0;if((v|0)==0){r=t;break L1741}else{q=u;p=t;s=v}}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(304,(y=i,i=i+16|0,c[y>>2]=n,c[y+8>>2]=j,y)|0)}}while(0);c[42]=0;w=63;i=h;return w|0}}while(0);if((r|0)==-1){break}s=e+(r<<4)+4|0;p=c[s>>2]|0;q=(o|0)==0;if(!((p|0)!=0|q)){do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(208,(y=i,i=i+16|0,c[y>>2]=n,c[y+8>>2]=j,y)|0)}}while(0);if((c[e+(r<<4)+8>>2]|0)==0){x=c[e+(r<<4)+12>>2]|0}else{x=0}c[42]=x;w=(a[d]|0)==58?58:63;i=h;return w|0}do{if((p-1|0)>>>0<2){if(!q){c[198]=o;break}if((p|0)!=1){break}c[44]=k+2;c[198]=c[b+(l<<2)>>2]}}while(0);if(!((c[s>>2]|0)==1&(c[198]|0)==0)){if((f|0)!=0){c[f>>2]=r}p=c[e+(r<<4)+8>>2]|0;q=c[e+(r<<4)+12>>2]|0;if((p|0)==0){w=q;i=h;return w|0}c[p>>2]=q;w=0;i=h;return w|0}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(8,(y=i,i=i+8|0,c[y>>2]=j,y)|0)}}while(0);if((c[e+(r<<4)+8>>2]|0)==0){z=c[e+(r<<4)+12>>2]|0}else{z=0}c[42]=z;c[44]=(c[44]|0)-1;w=(a[d]|0)==58?58:63;i=h;return w|0}}while(0);if((g|0)!=0){c[44]=k;w=-1;i=h;return w|0}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(248,(y=i,i=i+8|0,c[y>>2]=j,y)|0)}}while(0);c[42]=0;w=63;i=h;return w|0}function cw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d|0;f=e;c[f>>2]=b;c[f+4>>2]=0;cy(a,e|0);i=d;return}function cx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d|0;f=e;c[f>>2]=b;c[f+4>>2]=0;cz(a,e|0);i=d;return}function cy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=c[(aX()|0)>>2]|0;f=c[r>>2]|0;av(c[o>>2]|0,432,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;if((a|0)!=0){f=c[o>>2]|0;aQ(f|0,a|0,b|0)|0;b=c[o>>2]|0;aE(472,2,1,b|0)|0}b=c[o>>2]|0;a=at(e|0)|0;av(b|0,384,(y=i,i=i+8|0,c[y>>2]=a,y)|0)|0;i=d;return}function cz(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[r>>2]|0;av(c[o>>2]|0,376,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;if((a|0)!=0){e=c[o>>2]|0;aQ(e|0,a|0,b|0)|0}aC(10,c[o>>2]|0)|0;i=d;return}function cA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0.0,R=0.0,S=0.0;e=b;while(1){f=e+1|0;if((aK(a[e]|0)|0)==0){break}else{e=f}}g=a[e]|0;if((g<<24>>24|0)==45){i=f;j=1}else if((g<<24>>24|0)==43){i=f;j=0}else{i=e;j=0}e=-1;f=0;g=i;while(1){k=a[g]|0;if(((k<<24>>24)-48|0)>>>0<10){l=e}else{if(k<<24>>24!=46|(e|0)>-1){break}else{l=f}}e=l;f=f+1|0;g=g+1|0}l=g+(-f|0)|0;i=(e|0)<0;m=((i^1)<<31>>31)+f|0;n=(m|0)>18;o=(n?-18:-m|0)+(i?f:e)|0;e=n?18:m;do{if((e|0)==0){p=b;q=0.0}else{if((e|0)>9){m=l;n=e;f=0;while(1){i=a[m]|0;r=m+1|0;if(i<<24>>24==46){s=a[r]|0;t=m+2|0}else{s=i;t=r}u=(f*10|0)-48+(s<<24>>24)|0;r=n-1|0;if((r|0)>9){m=t;n=r;f=u}else{break}}v=+(u|0)*1.0e9;w=9;x=t;y=1393}else{if((e|0)>0){v=0.0;w=e;x=l;y=1393}else{z=0.0;A=0.0}}if((y|0)==1393){f=x;n=w;m=0;while(1){r=a[f]|0;i=f+1|0;if(r<<24>>24==46){B=a[i]|0;C=f+2|0}else{B=r;C=i}D=(m*10|0)-48+(B<<24>>24)|0;i=n-1|0;if((i|0)>0){f=C;n=i;m=D}else{break}}z=+(D|0);A=v}E=A+z;do{if((k<<24>>24|0)==69|(k<<24>>24|0)==101){m=g+1|0;n=a[m]|0;if((n<<24>>24|0)==43){F=g+2|0;G=0}else if((n<<24>>24|0)==45){F=g+2|0;G=1}else{F=m;G=0}m=a[F]|0;if(((m<<24>>24)-48|0)>>>0<10){H=F;I=0;J=m}else{K=0;L=F;M=G;break}while(1){m=(I*10|0)-48+(J<<24>>24)|0;n=H+1|0;f=a[n]|0;if(((f<<24>>24)-48|0)>>>0<10){H=n;I=m;J=f}else{K=m;L=n;M=G;break}}}else{K=0;L=g;M=0}}while(0);n=o+((M|0)==0?K:-K|0)|0;m=(n|0)<0?-n|0:n;if((m|0)>511){c[(aX()|0)>>2]=34;N=1.0;O=88;P=511;y=1410}else{if((m|0)==0){Q=1.0}else{N=1.0;O=88;P=m;y=1410}}if((y|0)==1410){while(1){y=0;if((P&1|0)==0){R=N}else{R=N*+h[O>>3]}m=P>>1;if((m|0)==0){Q=R;break}else{N=R;O=O+8|0;P=m;y=1410}}}if((n|0)>-1){p=L;q=E*Q;break}else{p=L;q=E/Q;break}}}while(0);if((d|0)!=0){c[d>>2]=p}if((j|0)==0){S=q;return+S}S=-0.0-q;return+S}function cB(a,b){a=a|0;b=b|0;return+ +cA(a,b)}function cC(a,b){a=a|0;b=b|0;return+ +cA(a,b)}function cD(a,b,c){a=a|0;b=b|0;c=c|0;return+ +cA(a,b)}function cE(a,b,c){a=a|0;b=b|0;c=c|0;return+ +cA(a,b)}function cF(a){a=a|0;return+ +cA(a,0)}function cG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e|0;e=f;c[e>>2]=d;c[e+4>>2]=0;cI(a,b,f|0)}function cH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e|0;e=f;c[e>>2]=d;c[e+4>>2]=0;cJ(a,b,f|0)}function cI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[(aX()|0)>>2]|0;f=c[r>>2]|0;av(c[o>>2]|0,336,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;if((b|0)!=0){f=c[o>>2]|0;aQ(f|0,b|0,d|0)|0;d=c[o>>2]|0;aE(480,2,1,d|0)|0}d=c[o>>2]|0;b=at(e|0)|0;av(d|0,392,(y=i,i=i+8|0,c[y>>2]=b,y)|0)|0;aH(a|0)}function cJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[r>>2]|0;av(c[o>>2]|0,440,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;if((b|0)!=0){e=c[o>>2]|0;aQ(e|0,b|0,d|0)|0}aC(10,c[o>>2]|0)|0;aH(a|0)}function cK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function cL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+e|0;if((e|0)>=20){d=d&255;e=b&3;g=d|d<<8|d<<16|d<<24;h=f&~3;if(e){e=b+4-e|0;while((b|0)<(e|0)){a[b]=d;b=b+1|0}}while((b|0)<(h|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b]=d;b=b+1|0}}function cM(b){b=b|0;var c=0;c=b;while(a[c]|0){c=c+1|0}return c-b|0}function cN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(H=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function cO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return(H=e,a-c>>>0|0)|0}function cP(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b<>>32-c;return a<>>c;return a>>>c|(b&(1<>>c-32|0}function cR(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b>>c;return a>>>c|(b&(1<>c-32|0}function cS(b){b=b|0;var c=0;c=a[n+(b>>>24)|0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)|0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)|0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)|0]|0)+24|0}function cT(b){b=b|0;var c=0;c=a[m+(b&255)|0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)|0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)|0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)|0]|0)+24|0}function cU(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=ad(d,c)|0;f=a>>>16;a=(e>>>16)+(ad(d,f)|0)|0;d=b>>>16;b=ad(d,c)|0;return(H=(a>>>16)+(ad(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function cV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=cO(e^a,f^b,e,f)|0;b=H;a=g^e;e=h^f;f=cO((c_(i,b,cO(g^c,h^d,g,h)|0,H,0)|0)^a,H^e,a,e)|0;return(H=H,f)|0}function cW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+8|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=cO(h^a,j^b,h,j)|0;b=H;a=cO(k^d,l^e,k,l)|0;c_(m,b,a,H,g)|0;a=cO(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=H;i=f;return(H=j,a)|0}function cX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=cU(e,a)|0;f=H;return(H=(ad(b,a)|0)+(ad(d,e)|0)+f|f&0,c|0|0)|0}function cY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=c_(a,b,c,d,0)|0;return(H=H,e)|0}function cZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+8|0;g=f|0;c_(a,b,d,e,g)|0;i=f;return(H=c[g+4>>2]|0,c[g>>2]|0)|0}function c_(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;g=a;h=b;i=h;j=d;k=e;l=k;if((i|0)==0){m=(f|0)!=0;if((l|0)==0){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return(H=n,o)|0}else{if(!m){n=0;o=0;return(H=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(H=n,o)|0}}m=(l|0)==0;do{if((j|0)==0){if(m){if((f|0)!=0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return(H=n,o)|0}if((g|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return(H=n,o)|0}p=l-1|0;if((p&l|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=p&i|b&0}n=0;o=i>>>((cT(l|0)|0)>>>0);return(H=n,o)|0}p=(cS(l|0)|0)-(cS(i|0)|0)|0;if(p>>>0<=30){q=p+1|0;r=31-p|0;s=q;t=i<>>(q>>>0);u=i>>>(q>>>0);v=0;w=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(H=n,o)|0}else{if(!m){r=(cS(l|0)|0)-(cS(i|0)|0)|0;if(r>>>0<=31){q=r+1|0;p=31-r|0;x=r-31>>31;s=q;t=g>>>(q>>>0)&x|i<>>(q>>>0)&x;v=0;w=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(H=n,o)|0}p=j-1|0;if((p&j|0)!=0){x=(cS(j|0)|0)+33-(cS(i|0)|0)|0;q=64-x|0;r=32-x|0;y=r>>31;z=x-32|0;A=z>>31;s=x;t=r-1>>31&i>>>(z>>>0)|(i<>>(x>>>0))&A;u=A&i>>>(x>>>0);v=g<>>(z>>>0))&y|g<>31;break}if((f|0)!=0){c[f>>2]=p&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return(H=n,o)|0}else{p=cT(j|0)|0;n=i>>>(p>>>0)|0;o=i<<32-p|g>>>(p>>>0)|0;return(H=n,o)|0}}}while(0);if((s|0)==0){B=w;C=v;D=u;E=t;F=0;G=0}else{g=d|0|0;d=k|e&0;e=cN(g,d,-1,-1)|0;k=H;i=w;w=v;v=u;u=t;t=s;s=0;while(1){I=w>>>31|i<<1;J=s|w<<1;j=u<<1|i>>>31|0;a=u>>>31|v<<1|0;cO(e,k,j,a)|0;b=H;h=b>>31|((b|0)<0?-1:0)<<1;K=h&1;L=cO(j,a,h&g,(((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1)&d)|0;M=H;b=t-1|0;if((b|0)==0){break}else{i=I;w=J;v=M;u=L;t=b;s=K}}B=I;C=J;D=M;E=L;F=0;G=K}K=C;C=0;if((f|0)!=0){c[f>>2]=E;c[f+4>>2]=D}n=(K|0)>>>31|(B|C)<<1|(C<<1|K>>>31)&0|F;o=(K<<1|0>>>31)&-2|G;return(H=n,o)|0}function c$(a,b){a=a|0;b=b|0;a1[a&15](b|0)}function c0(a,b,c){a=a|0;b=b|0;c=c|0;a2[a&15](b|0,c|0)}function c1(a,b){a=a|0;b=b|0;return a3[a&7](b|0)|0}function c2(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a4[a&15](b|0,c|0,d|0)}function c3(a){a=a|0;a5[a&1]()}function c4(a,b,c){a=a|0;b=b|0;c=c|0;return a6[a&1](b|0,c|0)|0}function c5(a){a=a|0;ae(0)}function c6(a,b){a=a|0;b=b|0;ae(1)}function c7(a){a=a|0;ae(2);return 0}function c8(a,b,c){a=a|0;b=b|0;c=c|0;ae(3)}function c9(){ae(4)}function da(a,b){a=a|0;b=b|0;ae(5);return 0}var a1=[c5,c5,ch,c5,cn,c5,cc,c5,cg,c5,cm,c5,c5,c5,c5,c5];var a2=[c6,c6,cw,c6,cy,c6,cx,c6,cz,c6,c6,c6,c6,c6,c6,c6];var a3=[c7,c7,cd,c7,ce,c7,c7,c7];var a4=[c8,c8,cJ,c8,cI,c8,cG,c8,cH,c8,c8,c8,c8,c8,c8,c8];var a5=[c9,c9];var a6=[da,da];return{_crypto_scrypt:bu,_strlen:cM,_free:bM,_realloc:bO,_memset:cL,_malloc:bL,_memcpy:cK,_calloc:bN,runPostSets:bn,stackAlloc:a7,stackSave:a8,stackRestore:a9,setThrew:ba,setTempRet0:bd,setTempRet1:be,setTempRet2:bf,setTempRet3:bg,setTempRet4:bh,setTempRet5:bi,setTempRet6:bj,setTempRet7:bk,setTempRet8:bl,setTempRet9:bm,dynCall_vi:c$,dynCall_vii:c0,dynCall_ii:c1,dynCall_viii:c2,dynCall_v:c3,dynCall_iii:c4}}({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:wa,assert:w,asmPrintInt:function(a,b){s.print("int "+a+","+b)},asmPrintFloat:function(a,b){s.print("float "+a+","+b)},min:Xc,invoke_vi:function(a,b){try{s.dynCall_vi(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&g(c),V.setThrew(1,0)}},invoke_vii:function(a,b,c){try{s.dynCall_vii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&g(d),V.setThrew(1,0)}},invoke_ii:function(a,b){try{return s.dynCall_ii(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&g(c),V.setThrew(1,0)}},invoke_viii:function(a,b,c,d){try{s.dynCall_viii(a,b,c,d)}catch(e){"number"!==typeof e&&"longjmp"!==e&&g(e),V.setThrew(1,0)}},invoke_v:function(a){try{s.dynCall_v(a)}catch(b){"number"!==typeof b&&"longjmp"!==b&&g(b),V.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return s.dynCall_iii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&g(d),V.setThrew(1,0)}},_strncmp:function(a,b,c){for(var d=0;df?1:-1}}return 0},_llvm_va_end:aa(),_sysconf:function(a){switch(a){case 8:return 4096;case 54:;case 56:;case 21:;case 61:;case 63:;case 22:;case 67:;case 23:;case 24:;case 25:;case 26:;case 27:;case 69:;case 28:;case 101:;case 70:;case 71:;case 29:;case 30:;case 199:;case 75:;case 76:;case 32:;case 43:;case 44:;case 80:;case 46:;case 47:;case 45:;case 48:;case 49:;case 42:;case 82:;case 33:;case 7:;case 108:;case 109:;case 107:;case 112:;case 119:;case 121:return 200809;case 13:;case 104:;case 94:;case 95:;case 34:;case 35:;case 77:;case 81:;case 83:;case 84:;case 85:;case 86:;case 87:;case 88:;case 89:;case 90:;case 91:;case 94:;case 95:;case 110:;case 111:;case 113:;case 114:;case 115:;case 116:;case 117:;case 118:;case 120:;case 40:;case 16:;case 79:;case 19:return-1;case 92:;case 93:;case 5:;case 72:;case 6:;case 74:;case 92:;case 93:;case 96:;case 97:;case 98:;case 99:;case 102:;case 103:;case 105:return 1;case 38:;case 66:;case 50:;case 51:;case 4:return 1024;case 15:;case 64:;case 41:return 32;case 55:;case 37:;case 17:return 2147483647;case 18:;case 1:return 47839;case 59:;case 57:return 99;case 68:;case 58:return 2048;case 0:return 2097152;case 3:return 65536;case 14:return 32768;case 73:return 32767;case 39:return 16384;case 60:return 1e3;case 106:return 700;case 52:return 256;case 62:return 255;case 2:return 100;case 65:return 64;case 36:return 20;case 100:return 16;case 20:return 6;case 53:return 4;case 10:return 1}M(N.A);return-1},___cxa_throw:rc,_strerror:zc,_abort:function(){s.abort()},_fprintf:mc,_llvm_eh_exception:U,___cxa_free_exception:sc,_fflush:aa(),___buildEnvironment:wc,__reallyNegative:jc,_strchr:function(a,b){a--;do{a++;var c=A[a];if(c==b){return a}}while(c);return 0},_fputc:Bc,___setErrNo:M,_fwrite:hc,_send:fc,_write:gc,_exit:function(a){Ac(a)},___cxa_find_matching_catch:function(a,b){-1==a&&(a=B[U.m>>2]);-1==b&&(b=B[U.m+4>>2]);var c=Array.prototype.slice.call(arguments,2);0!=b&&!pc(b)&&0==B[B[b>>2]-8>>2]&&(a=B[a>>2]);for(var d=0;d=a},__formatString:kc,___resumeException:function(a){0==B[U.m>>2]&&(B[U.m>>2]=a);g(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")},_llvm_uadd_with_overflow_i32:function(a,b){a>>>=0;b>>>=0;return(V.setTempRet0(4294967295>>0)|0},___cxa_does_inherit:qc,_getenv:xc,_vfprintf:function(a,b,c){return mc(a,b,B[c>>2])},___cxa_begin_catch:function(a){oc.ta--;return a},__ZSt18uncaught_exceptionv:oc,_pwrite:function(a,b,c,d){a=R[a];if(!a){return M(N.$),-1}try{return Ib(a,A,b,c,d)}catch(e){return Zb(e),-1}},___cxa_call_unexpected:function(a){s.P("Unexpected exception thrown, this is not properly supported - aborting");za=l;g(a)},_sbrk:nc,_strerror_r:yc,___errno_location:function(){return rb},___gxx_personality_v0:aa(),___cxa_is_number_type:pc,_time:function(a){var b=Math.floor(Date.now()/1e3);a&&(B[a>>2]=b);return b},__exit:Ac,___cxa_end_catch:uc,STACKTOP:u,STACK_MAX:Ta,tempDoublePtr:qb,ABORT:za,cttz_i8:Wc,ctlz_i8:Vc,NaN:NaN,Infinity:Infinity,_stderr:nb,__ZTVN10__cxxabiv120__si_class_type_infoE:ob,__ZTVN10__cxxabiv117__class_type_infoE:pb,___progname:k},I);s._crypto_scrypt=V._crypto_scrypt;var ic=s._strlen=V._strlen,tc=s._free=V._free;s._realloc=V._realloc;var tb=s._memset=V._memset,Oa=s._malloc=V._malloc,sb=s._memcpy=V._memcpy;s._calloc=V._calloc;var mb=s.runPostSets=V.runPostSets;s.dynCall_vi=V.dynCall_vi;s.dynCall_vii=V.dynCall_vii;s.dynCall_ii=V.dynCall_ii;s.dynCall_viii=V.dynCall_viii;s.dynCall_v=V.dynCall_v;s.dynCall_iii=V.dynCall_iii;var qa=function(a){return V.stackAlloc(a)},ja=function(){return V.stackSave()},ka=function(a){V.stackRestore(a)},lc;function X(a,b){a!=m&&("number"==typeof a?this.p(a):b==m&&"string"!=typeof a?this.k(a,256):this.k(a,b))}function Yc(){return new X(m)}function Zc(a,b){var c=$c[a.charCodeAt(b)];return c==m?-1:c}function ad(a){var b=Yc();b.D(a);return b}function Y(a,b){this.h=a|0;this.j=b|0}Y.Ca={};Y.D=function(a){if(-128<=a&&128>a){var b=Y.Ca[a];if(b){return b}}b=new Y(a|0,0>a?-1:0);-128<=a&&128>a&&(Y.Ca[a]=b);return b};Y.p=function(a){return isNaN(a)||!isFinite(a)?Y.ZERO:a<=-Y.Ea?Y.MIN_VALUE:a+1>=Y.Ea?Y.MAX_VALUE:0>a?Y.p(-a).i():new Y(a%Y.B|0,a/Y.B|0)};Y.v=function(a,b){return new Y(a,b)};Y.k=function(a,b){0==a.length&&g(Error("number format error: empty string"));var c=b||10;(2>c||36h?(h=Y.p(Math.pow(c,h)),e=e.multiply(h).add(Y.p(i))):(e=e.multiply(d),e=e.add(Y.p(i)))}return e};Y.ea=65536;Y.Od=16777216;Y.B=Y.ea*Y.ea;Y.Pd=Y.B/2;Y.Qd=Y.B*Y.ea;Y.eb=Y.B*Y.B;Y.Ea=Y.eb/2;Y.ZERO=Y.D(0);Y.ONE=Y.D(1);Y.Da=Y.D(-1);Y.MAX_VALUE=Y.v(-1,2147483647);Y.MIN_VALUE=Y.v(0,-2147483648);Y.cb=Y.D(16777216);q=Y.prototype;q.Z=function(){return this.j*Y.B+this.ob()};q.toString=function(a){a=a||10;(2>a||36f.length;){f="0"+f}d=""+f+d}};q.ob=function(){return 0<=this.h?this.h:Y.B+this.h};q.G=function(){return 0==this.j&&0==this.h};q.n=function(){return 0>this.j};q.Pa=function(){return 1==(this.h&1)};q.o=function(a){return this.j==a.j&&this.h==a.h};q.Ra=function(){return 0>this.ja(Y.cb)};q.qb=function(a){return 0>>16,c=this.j&65535,d=this.h>>>16,e=a.j>>>16,f=a.j&65535,h=a.h>>>16,i;i=0+((this.h&65535)+(a.h&65535));a=0+(i>>>16);a+=d+h;d=0+(a>>>16);d+=c+f;c=0+(d>>>16);c=c+(b+e)&65535;return Y.v((a&65535)<<16|i&65535,c<<16|d&65535)};q.R=function(a){return this.add(a.i())};q.multiply=function(a){if(this.G()||a.G()){return Y.ZERO}if(this.o(Y.MIN_VALUE)){return a.Pa()?Y.MIN_VALUE:Y.ZERO}if(a.o(Y.MIN_VALUE)){return this.Pa()?Y.MIN_VALUE:Y.ZERO}if(this.n()){return a.n()?this.i().multiply(a.i()):this.i().multiply(a).i()}if(a.n()){return this.multiply(a.i()).i()}if(this.Ra()&&a.Ra()){return Y.p(this.Z()*a.Z())}var b=this.j>>>16,c=this.j&65535,d=this.h>>>16,e=this.h&65535,f=a.j>>>16,h=a.j&65535,i=a.h>>>16,a=a.h&65535,j,n,y,v;v=0+e*a;y=0+(v>>>16);y+=d*a;n=0+(y>>>16);y=(y&65535)+e*i;n+=y>>>16;y&=65535;n+=c*a;j=0+(n>>>16);n=(n&65535)+d*i;j+=n>>>16;n&=65535;n+=e*h;j+=n>>>16;n&=65535;j=j+(b*a+c*i+d*h+e*f)&65535;return Y.v(y<<16|v&65535,j<<16|n)};q.F=function(a){a.G()&&g(Error("division by zero"));if(this.G()){return Y.ZERO}if(this.o(Y.MIN_VALUE)){if(a.o(Y.ONE)||a.o(Y.Da)){return Y.MIN_VALUE}if(a.o(Y.MIN_VALUE)){return Y.ONE}var b=this.Db().F(a).shiftLeft(1);if(b.o(Y.ZERO)){return a.n()?Y.ONE:Y.Da}var c=this.R(a.multiply(b));return b.add(c.F(a))}if(a.o(Y.MIN_VALUE)){return Y.ZERO}if(this.n()){return a.n()?this.i().F(a.i()):this.i().F(a).i()}if(a.n()){return this.F(a.i()).i()}for(var d=Y.ZERO,c=this;c.rb(a);){for(var b=Math.max(1,Math.floor(c.Z()/a.Z())),e=Math.ceil(Math.log(b)/Math.LN2),e=48>=e?1:Math.pow(2,e-48),f=Y.p(b),h=f.multiply(a);h.n()||h.qb(c);){b-=e,f=Y.p(b),h=f.multiply(a)}f.G()&&(f=Y.ONE);d=d.add(f);c=c.R(h)}return d};q.xb=function(){return Y.v(~this.h,~this.j)};q.shiftLeft=function(a){a&=63;if(0==a){return this}var b=this.h;return 32>a?Y.v(b<>>32-a):Y.v(0,b<a?Y.v(this.h>>>a|b<<32-a,b>>a):Y.v(b>>a-32,0<=b?0:-1)};q=X.prototype;q.ga=function(a,b,c,d){for(var e=0,f=0;0<=--d;){var h=a*this[e++]+b[c]+f,f=Math.floor(h/67108864);b[c++]=h&67108863}return f};q.f=26;q.u=67108863;q.K=67108864;q.bb=Math.pow(2,52);q.Aa=26;q.Ba=0;var $c=[],bd,Z;bd=48;for(Z=0;9>=Z;++Z){$c[bd++]=Z}bd=97;for(Z=10;36>Z;++Z){$c[bd++]=Z}bd=65;for(Z=10;36>Z;++Z){$c[bd++]=Z}q=X.prototype;q.copyTo=function(a){for(var b=this.b-1;0<=b;--b){a[b]=this[b]}a.b=this.b;a.c=this.c};q.D=function(a){this.b=1;this.c=0>a?-1:0;0a?this[0]=a+DV:this.b=0};q.k=function(a,b){var c;if(16==b){c=4}else{if(8==b){c=3}else{if(256==b){c=8}else{if(2==b){c=1}else{if(32==b){c=5}else{if(4==b){c=2}else{this.nb(a,b);return}}}}}}this.c=this.b=0;for(var d=a.length,e=p,f=0;0<=--d;){var h=8==c?a[d]&255:Zc(a,d);0>h?"-"==a.charAt(d)&&(e=l):(e=p,0==f?this[this.b++]=h:f+c>this.f?(this[this.b-1]|=(h&(1<>this.f-f):this[this.b-1]|=h<=this.f&&(f-=this.f))}8==c&&0!=(a[0]&128)&&(this.c=-1,0>d|h,h=(this[i]&e)<=this.b){b.b=0}else{var d=a%this.f,e=this.f-d,f=(1<>d;for(var h=c+1;h>d}0>=this.f}if(a.b>=this.f}d+=this.c}else{for(d+=this.c;c>=this.f}d-=a.c}b.c=0>d?-1:0;-1>d?b[c++]=this.K+d:0=d.b)){var e=this.abs();if(e.b>>16)){i=n,j+=16}if(0!=(n=i>>8)){i=n,j+=8}if(0!=(n=i>>4)){i=n,j+=4}if(0!=(n=i>>2)){i=n,j+=2}0!=i>>1&&(j+=1);i=this.f-j;0>this.Ba:0);j=this.bb/n;n=(1<h&&X.ZERO.t(c,c)}}}};q.toString=function(a){if(0>this.c){return"-"+this.i().toString(a)}if(16==a){a=4}else{if(8==a){a=3}else{if(2==a){a=1}else{if(32==a){a=5}else{if(4==a){a=2}else{return this.Fb(a)}}}}}var b=(1<>h)){d=l,e="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c)}for(;0<=f;){h>(h+=this.f-a)):(c=this[f]>>(h-=a)&b,0>=h&&(h+=this.f,--f)),0this.c?this.i():this};q.U=function(a){var b=this.c-a.c;if(0!=b){return b}var c=this.b,b=c-a.b;if(0!=b){return 0>this.c?-b:b}for(;0<=--c;){if(0!=(b=this[c]-a[c])){return b}}return 0};X.ZERO=ad(0);X.ONE=ad(1);q=X.prototype;q.nb=function(a,b){this.D(0);b==m&&(b=10);for(var c=this.S(b),d=Math.pow(b,c),e=p,f=0,h=0,i=0;ij?"-"==a.charAt(i)&&0==this.ra()&&(e=l):(h=b*h+j,++f>=c&&(this.Ia(d),this.Ha(h),h=f=0))}0this.c?-1:0>=this.b||1==this.b&&0>=this[0]?0:1};q.Ia=function(a){this[this.b]=this.ga(a-1,this,0,this.b);++this.b;this.C()};q.Ha=function(a){var b=0;if(0!=a){for(;this.b<=b;){this[this.b++]=0}for(this[b]+=a;this[b]>=this.K;){this[b]-=this.K,++b>=this.b&&(this[this.b++]=0),++this[b]}}};q.Fb=function(a){a==m&&(a=10);if(0==this.ra()||2>a||36this.c){if(1==this.b){return this[0]-this.K}if(0==this.b){return-1}}else{if(1==this.b){return this[0]}if(0==this.b){return 0}}return(this[1]&(1<<32-this.f)-1)<>=this.f}if(a.b>=this.f}d+=this.c}else{for(d+=this.c;c>=this.f}d+=a.c}b.c=0>d?-1:0;0d&&(b[c++]=this.K+d);b.b=c;b.C()};var $={abs:function(a,b){var c=new Y(a,b),c=c.n()?c.i():c;B[qb>>2]=c.h;B[qb+4>>2]=c.j},Ka:function(){$.kb||($.kb=l,$.Xa=new X,$.Xa.k("4294967296",10),$.sa=new X,$.sa.k("18446744073709551616",10),$.xe=new X,$.ye=new X)},me:function(a,b){var c=new X;c.k(b.toString(),10);var d=new X;c.vb(d);c=new X;c.k(a.toString(),10);var e=new X;c.fa(d,e);return e},stringify:function(a,b,c){a=new Y(a,b).toString();c&&"-"==a[0]&&($.Ka(),c=new X,c.k(a,10),a=new X,$.sa.fa(c,a),a=a.toString(10));return a},k:function(a,b,c,d,e){$.Ka();var f=new X;f.k(a,b);a=new X;a.k(c,10);c=new X;c.k(d,10);e&&0>f.U(X.ZERO)&&(d=new X,f.fa($.sa,d),f=d);d=p;0>f.U(a)?(f=a,d=l):0>2]=f.h;B[qb+4>>2]=f.j;d&&g("range error")}};lc=$;var cd,dd;s.callMain=s.$d=function(a){function b(){for(var a=0;3>a;a++){d.push(0)}}w(0==L,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");w(0==Wa.length,"cannot call main when preRun functions remain to be called");a=a||[];ab||(ab=l,Va(Xa));var c=a.length+1,d=[F(J("/bin/this.program"),"i8",Ka)];b();for(var e=0;e>4&15]);encoded.push("0123456789abcdef"[bs[i]&15])}return encoded.join("")}function injectBytes(bs,leftPadding){var p=leftPadding||0;var address=scrypt_raw._malloc(bs.length+p);scrypt_raw.HEAPU8.set(bs,address+p);for(var i=address;i=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&!isFinite(value)){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":32}],7:[function(require,module,exports){arguments[4][5][0].apply(exports,arguments)},{dup:5}],8:[function(require,module,exports){(function(global){var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("isarray");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=global.TYPED_ARRAY_SUPPORT!==undefined?global.TYPED_ARRAY_SUPPORT:typedArraySupport();function typedArraySupport(){function Bar(){}try{var arr=new Uint8Array(1);arr.foo=function(){return 42};arr.constructor=Bar;return arr.foo()===42&&arr.constructor===Bar&&typeof arr.subarray==="function"&&arr.subarray(1,1).byteLength===0}catch(e){return false}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Buffer(arg){if(!(this instanceof Buffer)){if(arguments.length>1)return new Buffer(arg,arguments[1]);return new Buffer(arg)}this.length=0;this.parent=undefined;if(typeof arg==="number"){return fromNumber(this,arg)}if(typeof arg==="string"){return fromString(this,arg,arguments.length>1?arguments[1]:"utf8")}return fromObject(this,arg)}function fromNumber(that,length){that=allocate(that,length<0?0:checked(length)|0);if(!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i>>1;if(fromPool)that.parent=rootParent;return that}function checked(length){if(length>=kMaxLength()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength().toString(16)+" bytes")}return length|0}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);delete buf.parent;return buf}Buffer.isBuffer=function isBuffer(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function compare(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError("Arguments must be Buffers")}if(a===b)return 0;var x=a.length;var y=b.length;var i=0;var len=Math.min(x,y);while(i>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;Buffer.prototype.length=undefined;Buffer.prototype.parent=undefined;function slowToString(encoding,start,end){var loweredCase=false;start=start|0;end=end===undefined||end===Infinity?this.length:end|0;if(!encoding)encoding="utf8";if(start<0)start=0;if(end>this.length)end=this.length;if(end<=start)return"";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype.toString=function toString(){var length=this.length|0;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;if(this.length>0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return""};Buffer.prototype.compare=function compare(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return 0;return Buffer.compare(this,b)};Buffer.prototype.indexOf=function indexOf(val,byteOffset){if(byteOffset>2147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;byteOffset>>=0;if(this.length===0)return-1;if(byteOffset>=this.length)return-1;if(byteOffset<0)byteOffset=Math.max(this.length+byteOffset,0);if(typeof val==="string"){if(val.length===0)return-1;return String.prototype.indexOf.call(this,val,byteOffset)}if(Buffer.isBuffer(val)){return arrayIndexOf(this,val,byteOffset)}if(typeof val==="number"){if(Buffer.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,val,byteOffset)}return arrayIndexOf(this,[val],byteOffset)}function arrayIndexOf(arr,val,byteOffset){var foundIndex=-1;for(var i=0;byteOffset+iremaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;iremaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||valuebuf.length)throw new RangeError("index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1;var i=0;this[offset]=value&255;while(++i=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value&255;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=value<0?1:0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=value<0?1:0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||valuebuf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;i--){target[i+targetStart]=this[i+start]}}else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(i=0;i=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if(typeof value==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"base64-js":9,ieee754:10,isarray:11}],9:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(exports){"use strict";var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var PLUS="+".charCodeAt(0);var SLASH="/".charCodeAt(0);var NUMBER="0".charCodeAt(0);var LOWER="a".charCodeAt(0);var UPPER="A".charCodeAt(0);var PLUS_URL_SAFE="-".charCodeAt(0);var SLASH_URL_SAFE="_".charCodeAt(0);function decode(elt){var code=elt.charCodeAt(0);if(code===PLUS||code===PLUS_URL_SAFE)return 62;if(code===SLASH||code===SLASH_URL_SAFE)return 63;if(code0){throw new Error("Invalid string. Length must be a multiple of 4")}var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0;arr=new Arr(b64.length*3/4-placeHolders);l=placeHolders>0?b64.length-4:b64.length;var L=0;function push(v){arr[L++]=v}for(i=0,j=0;i>16);push((tmp&65280)>>8);push(tmp&255)}if(placeHolders===2){tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4;push(tmp&255)}else if(placeHolders===1){tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2;push(tmp>>8&255);push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(num&63)}for(i=0,length=uint8.length-extraBytes;i>2);output+=encode(temp<<4&63);output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1];output+=encode(temp>>10);output+=encode(temp>>4&63);output+=encode(temp<<2&63);output+="=";break}return output}exports.toByteArray=b64ToByteArray;exports.fromByteArray=uint8ToBase64})(typeof exports==="undefined"?this.base64js={}:exports)},{}],10:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],11:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],12:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}throw TypeError('Uncaught, unspecified "error" event.')}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:len=arguments.length;args=new Array(len-1);for(i=1;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else{while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.listenerCount=function(emitter,type){var ret;if(!emitter._events||!emitter._events[type])ret=0;else if(isFunction(emitter._events[type]))ret=1;else ret=emitter._events[type].length;return ret};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],13:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],14:[function(require,module,exports){module.exports=function(obj){return!!(obj!=null&&(obj._isBuffer||obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj)))}},{}],15:[function(require,module,exports){module.exports=Array.isArray||function(arr){return Object.prototype.toString.call(arr)=="[object Array]"}},{}],16:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i1){for(var i=1;i0){if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else{if(state.decoder&&!addToFront&&!encoding)chunk=state.decoder.write(chunk);if(!addToFront)state.reading=false;if(state.flowing&&state.length===0&&!state.sync){stream.emit("data",chunk);stream.read(0)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length=MAX_HWM){n=MAX_HWM}else{n--;for(var p=1;p<32;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(isNaN(n)||util.isNull(n)){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=roundUpToNextPowerOf2(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else return state.length}return n}Readable.prototype.read=function(n){debug("read",n);var state=this._readableState;var nOrig=n;if(!util.isNumber(n)||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(util.isNull(ret)){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended&&state.length===0)endReadable(this);if(!util.isNull(ret))this.emit("data",ret);return ret};function chunkInvalid(state,chunk){var er=null;if(!util.isBuffer(chunk)&&!util.isString(chunk)&&!util.isNullOrUndefined(chunk)&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;if(state.sync)process.nextTick(function(){emitReadable_(stream)});else emitReadable_(stream)}}function emitReadable_(stream){debug("emit readable");stream.emit("readable");flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(function(){maybeReadMore_(stream,state)})}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length=length){if(stringMode)ret=list.join("");else ret=Buffer.concat(list,length);list.length=0}else{if(n0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted){state.ended=true;process.nextTick(function(){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}})}}function forEach(xs,f){for(var i=0,l=xs.length;i1){var cbs=[];for(var c=0;c=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(buffer.length===0){return charStr}break}this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0}},{buffer:8}],31:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],32:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":31,_process:17,inherits:13}],33:[function(require,module,exports){var indexOf=require("indexof");var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);else{var res=[];for(var key in obj)res.push(key);return res}};var forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);else for(var i=0;iuint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function scrub_vec(v){for(var i=0;i>>8^sx&255^99;this.SBOX[x]=sx;this.INV_SBOX[sx]=x; -x2=d[x];x4=d[x2];x8=d[x4];t=d[sx]*257^sx*16843008;this.SUB_MIX[0][x]=t<<24|t>>>8;this.SUB_MIX[1][x]=t<<16|t>>>16;this.SUB_MIX[2][x]=t<<8|t>>>24;this.SUB_MIX[3][x]=t;t=x8*16843009^x4*65537^x2*257^x*16843008;this.INV_SUB_MIX[0][sx]=t<<24|t>>>8;this.INV_SUB_MIX[1][sx]=t<<16|t>>>16;this.INV_SUB_MIX[2][sx]=t<<8|t>>>24;this.INV_SUB_MIX[3][sx]=t;if(x===0){x=xi=1}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}return true};var G=new Global;AES.blockSize=4*4;AES.prototype.blockSize=AES.blockSize;AES.keySize=256/8;AES.prototype.keySize=AES.keySize;function bufferToArray(buf){var len=buf.length/4;var out=new Array(len);var i=-1;while(++i>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255]:void 0,this._keySchedule[ksRow-keySize]^t)}this._invKeySchedule=[];for(invKsRow=0;invKsRow>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[t&255]]}return true};AES.prototype.encryptBlock=function(M){M=bufferToArray(new Buffer(M));var out=this._doCryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf};AES.prototype.decryptBlock=function(M){M=bufferToArray(new Buffer(M));var temp=[M[3],M[1]];M[1]=temp[0];M[3]=temp[1];var out=this._doCryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf};AES.prototype.scrub=function(){scrub_vec(this._keySchedule);scrub_vec(this._invKeySchedule);scrub_vec(this._key)};AES.prototype._doCryptBlock=function(M,keySchedule,SUB_MIX,SBOX){var ksRow,s0,s1,s2,s3,t0,t1,t2,t3;s0=M[0]^keySchedule[0];s1=M[1]^keySchedule[1];s2=M[2]^keySchedule[2];s3=M[3]^keySchedule[3];ksRow=4;for(var round=1;round>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][s3&255]^keySchedule[ksRow++];t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][s0&255]^keySchedule[ksRow++];t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][s1&255]^keySchedule[ksRow++];t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0&255])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];return[fixup_uint32(t0),fixup_uint32(t1),fixup_uint32(t2),fixup_uint32(t3)]};exports.AES=AES}).call(this,require("buffer").Buffer)},{buffer:8}],38:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");var GHASH=require("./ghash");var xor=require("buffer-xor");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._finID=Buffer.concat([iv,new Buffer([0,0,0,1])]);iv=Buffer.concat([iv,new Buffer([0,0,0,2])]);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;this._alen=0;this._len=0;iv.copy(this._prev);this._mode=mode;var h=new Buffer(4);h.fill(0);this._ghash=new GHASH(this._cipher.encryptBlock(h));this._authTag=null;this._called=false}StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;if(rump<16){rump=new Buffer(rump);rump.fill(0);this._ghash.update(rump)}}this._called=true;var out=this._mode.encrypt(this,chunk);if(this._decrypt){this._ghash.update(chunk)}else{this._ghash.update(out)}this._len+=chunk.length;return out};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag){throw new Error("Unsupported state or unable to authenticate data")}var tag=xor(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt){if(xorTest(tag,this._authTag)){throw new Error("Unsupported state or unable to authenticate data")}}else{this._authTag=tag}this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(!this._decrypt&&Buffer.isBuffer(this._authTag)){return this._authTag}else{throw new Error("Attempting to get auth tag in unsupported state")}};StreamCipher.prototype.setAuthTag=function setAuthTag(tag){if(this._decrypt){this._authTag=tag}else{throw new Error("Attempting to set auth tag in unsupported state")}};StreamCipher.prototype.setAAD=function setAAD(buf){if(!this._called){this._ghash.update(buf);this._alen+=buf.length}else{throw new Error("Attempting to set AAD in unsupported state")}};function xorTest(a,b){var out=0;if(a.length!==b.length){out++}var len=Math.min(a.length,b.length);var i=-1;while(++i16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}return null};Splitter.prototype.flush=function(){if(this.cache.length){return this.cache}};function unpad(last){var padded=last[15];var i=-1;while(++i15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}return null};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=new Buffer(len);var i=-1;while(++i0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31}Vi[0]=Vi[0]>>>1;if(lsb_Vi){Vi[0]=Vi[0]^225<<24}}this.state=fromArray(Zi)};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk)}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,zeros],16))}this.ghash(fromArray([0,abl,0,bl]));return this.state};function toArray(buf){return[buf.readUInt32BE(0),buf.readUInt32BE(4),buf.readUInt32BE(8),buf.readUInt32BE(12)]}function fromArray(out){out=out.map(fixup_uint32);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf}var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function xor(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]}}).call(this,require("buffer").Buffer)},{buffer:8}],43:[function(require,module,exports){exports["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"};exports["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"};exports["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"};exports["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"};exports["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"};exports["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"};exports["aes128"]=exports["aes-128-cbc"];exports["aes192"]=exports["aes-192-cbc"];exports["aes256"]=exports["aes-256-cbc"];exports["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"};exports["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"};exports["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"};exports["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"};exports["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"};exports["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"};exports["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"};exports["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"};exports["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"};exports["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"};exports["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"};exports["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"};exports["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"};exports["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"};exports["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"};exports["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"};exports["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"};exports["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},{}],44:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":51}],45:[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");exports.encrypt=function(self,data,decrypt){var out=new Buffer("");var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=new Buffer("")}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len)}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}}return out};function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out}}).call(this,require("buffer").Buffer)},{buffer:8,"buffer-xor":51}],46:[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value)}return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i>7}return out}}).call(this,require("buffer").Buffer)},{buffer:8}],47:[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad=self._cipher.encryptBlock(self._prev);var out=pad[0]^byteParam;self._prev=Buffer.concat([self._prev.slice(1),new Buffer([decrypt?byteParam:out])]);return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i0;count--){inputOff+=this._buffer(data,inputOff);outputOff+=this._flushBuffer(out,outputOff)}inputOff+=this._buffer(data,inputOff);return out};Cipher.prototype.final=function final(buffer){var first;if(buffer)first=this.update(buffer);var last;if(this.type==="encrypt")last=this._finalEncrypt();else last=this._finalDecrypt();if(first)return first.concat(last);else return last};Cipher.prototype._pad=function _pad(buffer,off){if(off===0)return false;while(off>>1];kL=utils.r28shl(kL,shift);kR=utils.r28shl(kR,shift);utils.pc2(kL,kR,state.keys,i)}};DES.prototype._update=function _update(inp,inOff,out,outOff){var state=this._desState;var l=utils.readUInt32BE(inp,inOff);var r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];if(this.type==="encrypt")this._encrypt(state,l,r,state.tmp,0);else this._decrypt(state,l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];utils.writeUInt32BE(out,l,outOff);utils.writeUInt32BE(out,r,outOff+4)};DES.prototype._pad=function _pad(buffer,off){var value=buffer.length-off;for(var i=off;i>>0;l=t}utils.rip(r,l,out,off)};DES.prototype._decrypt=function _decrypt(state,lStart,rStart,out,off){var l=rStart;var r=lStart;for(var i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(l,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=l;l=(r^f)>>>0;r=t}utils.rip(l,r,out,off)}},{"../des":57,inherits:180,"minimalistic-assert":63}],61:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var des=require("../des");var Cipher=des.Cipher;var DES=des.DES;function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8);var k2=key.slice(8,16);var k3=key.slice(16,24);if(type==="encrypt"){this.ciphers=[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]}else{this.ciphers=[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt", -key:k2}),DES.create({type:"decrypt",key:k1})]}}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher);module.exports=EDE;EDE.create=function create(options){return new EDE(options)};EDE.prototype._update=function _update(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff);state.ciphers[1]._update(out,outOff,out,outOff);state.ciphers[2]._update(out,outOff,out,outOff)};EDE.prototype._pad=DES.prototype._pad;EDE.prototype._unpad=DES.prototype._unpad},{"../des":57,inherits:180,"minimalistic-assert":63}],62:[function(require,module,exports){"use strict";exports.readUInt32BE=function readUInt32BE(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0};exports.writeUInt32BE=function writeUInt32BE(bytes,value,off){bytes[0+off]=value>>>24;bytes[1+off]=value>>>16&255;bytes[2+off]=value>>>8&255;bytes[3+off]=value&255};exports.ip=function ip(inL,inR,out,off){var outL=0;var outR=0;for(var i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>>j+i&1}}for(var i=6;i>=0;i-=2){for(var j=1;j<=25;j+=8){outR<<=1;outR|=inR>>>j+i&1}for(var j=1;j<=25;j+=8){outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.rip=function rip(inL,inR,out,off){var outL=0;var outR=0;for(var i=0;i<4;i++){for(var j=24;j>=0;j-=8){outL<<=1;outL|=inR>>>j+i&1;outL<<=1;outL|=inL>>>j+i&1}}for(var i=4;i<8;i++){for(var j=24;j>=0;j-=8){outR<<=1;outR|=inR>>>j+i&1;outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.pc1=function pc1(inL,inR,out,off){var outL=0;var outR=0;for(var i=7;i>=5;i--){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var i=1;i<=3;i++){for(var j=0;j<=24;j+=8){outR<<=1;outR|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.r28shl=function r28shl(num,shift){return num<>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function pc2(inL,inR,out,off){var outL=0;var outR=0;var len=pc2table.length>>>1;for(var i=0;i>>pc2table[i]&1}for(var i=len;i>>pc2table[i]&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.expand=function expand(r,out,off){var outL=0;var outR=0;outL=(r&1)<<5|r>>>27;for(var i=23;i>=15;i-=4){outL<<=6;outL|=r>>>i&63}for(var i=11;i>=3;i-=4){outR|=r>>>i&63;outR<<=6}outR|=(r&31)<<1|r>>>31;out[off+0]=outL>>>0;out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function substitute(inL,inR){var out=0;for(var i=0;i<4;i++){var b=inL>>>18-i*6&63;var sb=sTable[i*64+b];out<<=4;out|=sb}for(var i=0;i<4;i++){var b=inR>>>18-i*6&63;var sb=sTable[4*64+i*64+b];out<<=4;out|=sb}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function permute(num){var out=0;for(var i=0;i>>permuteTable[i]&1}return out>>>0};exports.padSplit=function padSplit(num,size,group){var str=num.toString(2);while(str.length0){bufs.push(md_buf)}bufs.push(password);if(salt){bufs.push(salt)}md_buf=md5(Buffer.concat(bufs));bufs=[];i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i];keyLen--;i++}}if(ivLen>0&&i!==md_buf.length){while(true){if(ivLen===0){break}if(i===md_buf.length){break}iv[ii++]=md_buf[i];ivLen--;i++}}if(keyLen===0&&ivLen===0){break}}for(i=0;i0)return left;else return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;else return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}else if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex")base=16;assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-")start++;if(base===16)this._parseHex(number,start);else this._parseBase(number,base,start);if(number[0]==="-")this.negative=1;this.strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i=0;i-=3){var w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(var i=0,j=0;i>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49&&c<=54)r|=c-49+10;else if(c>=17&&c<=22)r|=c-17+10;else r|=c&15}return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i=start;i-=6){var w=parseHex(number,i,i+6);this.words[j]|=w<>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){var w=parseHex(number,start,i+6);this.words[j]|=w<>>26-off&4194303}this.strip()};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0)this.negative=0;return this};BN.prototype.inspect=function inspect(){return(this.red?""};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;var padding=padding|0||1;if(base===16||base==="hex"){var out="";var off=0;var carry=0;for(var i=0;i>>24-off&16777215;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out;off+=2;if(off>=26){off-=26;i--}}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out="0"+out;if(this.negative!==0)out="-"+out;return out}else if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];var out="";var c=this.clone();c.negative=0;while(c.cmpn(0)!==0){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(c.cmpn(0)!==0)out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.cmpn(0)===0)out="0"+out;while(out.length%padding!==0)out="0"+out;if(this.negative!==0)out="-"+out;return out}else{assert(false,"Base should be between 2 and 36")}};BN.prototype.toNumber=function toNumber(){assert(this.bitLength()<=53,"Number can only safely store up to 53 bits");return parseInt(this.toString(),10)};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toArray=function toArray(endian,length){this.strip();var littleEndian=endian==="le";var res=new Array(this.byteLength());res[0]=0;var q=this.clone();if(!littleEndian){for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.iushrn(8);res[res.length-i-1]=b}}else{for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.iushrn(8);res[i]=b}}if(length){assert(res.length<=length,"byte array longer than desired length");while(res.length=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0)r++;return r};BN.prototype.bitLength=function bitLength(){var hi=0;var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function zeroBits(){if(this.cmpn(0)===0)return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);else return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);else return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);else return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);else return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;inum.length)return this.clone().ixor(num);else return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);else return num.clone().iuxor(this)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;while(this.length<=off)this.words[this.length++]=0;if(val)this.words[off]=this.words[off]|1<num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i>>26}for(;carry!==0&&i>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;inum.length)return this.clone().iadd(num);else return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a;var b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i>26;this.words[i]=r&67108863}for(;carry!==0&&i>26;this.words[i]=r&67108863}if(carry===0&&i>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out.strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.length=19;var w0=c;c=0;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);w0=w0+lo|0;w0=w0+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w0>>>26)|0;w0&=67108863;var w1=c;c=0;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);w1=w1+lo|0;w1=w1+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w1>>>26)|0;w1&=67108863;lo=Math.imul(al0,bl1);mid=Math.imul(al0,bh1);mid=mid+Math.imul(ah0,bl1)|0;hi=Math.imul(ah0,bh1);w1=w1+lo|0;w1=w1+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w1>>>26)|0;w1&=67108863;var w2=c;c=0;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al1,bl1);mid=Math.imul(al1,bh1);mid=mid+Math.imul(ah1,bl1)|0;hi=Math.imul(ah1,bh1);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al0,bl2);mid=Math.imul(al0,bh2);mid=mid+Math.imul(ah0,bl2)|0;hi=Math.imul(ah0,bh2);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;var w3=c;c=0;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al2,bl1);mid=Math.imul(al2,bh1);mid=mid+Math.imul(ah2,bl1)|0;hi=Math.imul(ah2,bh1);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al1,bl2);mid=Math.imul(al1,bh2);mid=mid+Math.imul(ah1,bl2)|0;hi=Math.imul(ah1,bh2);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al0,bl3);mid=Math.imul(al0,bh3);mid=mid+Math.imul(ah0,bl3)|0;hi=Math.imul(ah0,bh3);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;var w4=c;c=0;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al3,bl1);mid=Math.imul(al3,bh1);mid=mid+Math.imul(ah3,bl1)|0;hi=Math.imul(ah3,bh1);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al2,bl2);mid=Math.imul(al2,bh2);mid=mid+Math.imul(ah2,bl2)|0;hi=Math.imul(ah2,bh2);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al1,bl3);mid=Math.imul(al1,bh3);mid=mid+Math.imul(ah1,bl3)|0;hi=Math.imul(ah1,bh3);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al0,bl4);mid=Math.imul(al0,bh4);mid=mid+Math.imul(ah0,bl4)|0;hi=Math.imul(ah0,bh4);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;var w5=c;c=0;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al4,bl1);mid=Math.imul(al4,bh1);mid=mid+Math.imul(ah4,bl1)|0;hi=Math.imul(ah4,bh1);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al3,bl2);mid=Math.imul(al3,bh2);mid=mid+Math.imul(ah3,bl2)|0;hi=Math.imul(ah3,bh2);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al2,bl3);mid=Math.imul(al2,bh3);mid=mid+Math.imul(ah2,bl3)|0;hi=Math.imul(ah2,bh3);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al1,bl4);mid=Math.imul(al1,bh4);mid=mid+Math.imul(ah1,bl4)|0;hi=Math.imul(ah1,bh4);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al0,bl5);mid=Math.imul(al0,bh5);mid=mid+Math.imul(ah0,bl5)|0;hi=Math.imul(ah0,bh5);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;var w6=c;c=0;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al5,bl1);mid=Math.imul(al5,bh1);mid=mid+Math.imul(ah5,bl1)|0;hi=Math.imul(ah5,bh1);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al4,bl2);mid=Math.imul(al4,bh2);mid=mid+Math.imul(ah4,bl2)|0;hi=Math.imul(ah4,bh2);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al3,bl3);mid=Math.imul(al3,bh3);mid=mid+Math.imul(ah3,bl3)|0;hi=Math.imul(ah3,bh3);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al2,bl4);mid=Math.imul(al2,bh4);mid=mid+Math.imul(ah2,bl4)|0;hi=Math.imul(ah2,bh4);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al1,bl5);mid=Math.imul(al1,bh5);mid=mid+Math.imul(ah1,bl5)|0;hi=Math.imul(ah1,bh5);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al0,bl6);mid=Math.imul(al0,bh6);mid=mid+Math.imul(ah0,bl6)|0;hi=Math.imul(ah0,bh6);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;var w7=c;c=0;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al6,bl1);mid=Math.imul(al6,bh1);mid=mid+Math.imul(ah6,bl1)|0;hi=Math.imul(ah6,bh1);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al5,bl2);mid=Math.imul(al5,bh2);mid=mid+Math.imul(ah5,bl2)|0;hi=Math.imul(ah5,bh2);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al4,bl3);mid=Math.imul(al4,bh3);mid=mid+Math.imul(ah4,bl3)|0;hi=Math.imul(ah4,bh3);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al3,bl4);mid=Math.imul(al3,bh4);mid=mid+Math.imul(ah3,bl4)|0;hi=Math.imul(ah3,bh4);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al2,bl5);mid=Math.imul(al2,bh5);mid=mid+Math.imul(ah2,bl5)|0;hi=Math.imul(ah2,bh5);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al1,bl6);mid=Math.imul(al1,bh6);mid=mid+Math.imul(ah1,bl6)|0;hi=Math.imul(ah1,bh6);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al0,bl7);mid=Math.imul(al0,bh7);mid=mid+Math.imul(ah0,bl7)|0;hi=Math.imul(ah0,bh7);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;var w8=c;c=0;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al7,bl1);mid=Math.imul(al7,bh1);mid=mid+Math.imul(ah7,bl1)|0;hi=Math.imul(ah7,bh1);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al6,bl2);mid=Math.imul(al6,bh2);mid=mid+Math.imul(ah6,bl2)|0;hi=Math.imul(ah6,bh2);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al5,bl3);mid=Math.imul(al5,bh3);mid=mid+Math.imul(ah5,bl3)|0;hi=Math.imul(ah5,bh3);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al4,bl4);mid=Math.imul(al4,bh4);mid=mid+Math.imul(ah4,bl4)|0;hi=Math.imul(ah4,bh4);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0; -c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al3,bl5);mid=Math.imul(al3,bh5);mid=mid+Math.imul(ah3,bl5)|0;hi=Math.imul(ah3,bh5);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al2,bl6);mid=Math.imul(al2,bh6);mid=mid+Math.imul(ah2,bl6)|0;hi=Math.imul(ah2,bh6);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al1,bl7);mid=Math.imul(al1,bh7);mid=mid+Math.imul(ah1,bl7)|0;hi=Math.imul(ah1,bh7);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al0,bl8);mid=Math.imul(al0,bh8);mid=mid+Math.imul(ah0,bl8)|0;hi=Math.imul(ah0,bh8);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;var w9=c;c=0;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al8,bl1);mid=Math.imul(al8,bh1);mid=mid+Math.imul(ah8,bl1)|0;hi=Math.imul(ah8,bh1);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al7,bl2);mid=Math.imul(al7,bh2);mid=mid+Math.imul(ah7,bl2)|0;hi=Math.imul(ah7,bh2);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al6,bl3);mid=Math.imul(al6,bh3);mid=mid+Math.imul(ah6,bl3)|0;hi=Math.imul(ah6,bh3);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al5,bl4);mid=Math.imul(al5,bh4);mid=mid+Math.imul(ah5,bl4)|0;hi=Math.imul(ah5,bh4);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al4,bl5);mid=Math.imul(al4,bh5);mid=mid+Math.imul(ah4,bl5)|0;hi=Math.imul(ah4,bh5);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al3,bl6);mid=Math.imul(al3,bh6);mid=mid+Math.imul(ah3,bl6)|0;hi=Math.imul(ah3,bh6);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al2,bl7);mid=Math.imul(al2,bh7);mid=mid+Math.imul(ah2,bl7)|0;hi=Math.imul(ah2,bh7);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al1,bl8);mid=Math.imul(al1,bh8);mid=mid+Math.imul(ah1,bl8)|0;hi=Math.imul(ah1,bh8);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al0,bl9);mid=Math.imul(al0,bh9);mid=mid+Math.imul(ah0,bl9)|0;hi=Math.imul(ah0,bh9);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;var w10=c;c=0;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al8,bl2);mid=Math.imul(al8,bh2);mid=mid+Math.imul(ah8,bl2)|0;hi=Math.imul(ah8,bh2);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al7,bl3);mid=Math.imul(al7,bh3);mid=mid+Math.imul(ah7,bl3)|0;hi=Math.imul(ah7,bh3);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al6,bl4);mid=Math.imul(al6,bh4);mid=mid+Math.imul(ah6,bl4)|0;hi=Math.imul(ah6,bh4);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al5,bl5);mid=Math.imul(al5,bh5);mid=mid+Math.imul(ah5,bl5)|0;hi=Math.imul(ah5,bh5);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al4,bl6);mid=Math.imul(al4,bh6);mid=mid+Math.imul(ah4,bl6)|0;hi=Math.imul(ah4,bh6);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al3,bl7);mid=Math.imul(al3,bh7);mid=mid+Math.imul(ah3,bl7)|0;hi=Math.imul(ah3,bh7);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al2,bl8);mid=Math.imul(al2,bh8);mid=mid+Math.imul(ah2,bl8)|0;hi=Math.imul(ah2,bh8);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al1,bl9);mid=Math.imul(al1,bh9);mid=mid+Math.imul(ah1,bl9)|0;hi=Math.imul(ah1,bh9);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;var w11=c;c=0;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al8,bl3);mid=Math.imul(al8,bh3);mid=mid+Math.imul(ah8,bl3)|0;hi=Math.imul(ah8,bh3);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al7,bl4);mid=Math.imul(al7,bh4);mid=mid+Math.imul(ah7,bl4)|0;hi=Math.imul(ah7,bh4);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al6,bl5);mid=Math.imul(al6,bh5);mid=mid+Math.imul(ah6,bl5)|0;hi=Math.imul(ah6,bh5);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al5,bl6);mid=Math.imul(al5,bh6);mid=mid+Math.imul(ah5,bl6)|0;hi=Math.imul(ah5,bh6);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al4,bl7);mid=Math.imul(al4,bh7);mid=mid+Math.imul(ah4,bl7)|0;hi=Math.imul(ah4,bh7);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al3,bl8);mid=Math.imul(al3,bh8);mid=mid+Math.imul(ah3,bl8)|0;hi=Math.imul(ah3,bh8);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al2,bl9);mid=Math.imul(al2,bh9);mid=mid+Math.imul(ah2,bl9)|0;hi=Math.imul(ah2,bh9);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;var w12=c;c=0;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al8,bl4);mid=Math.imul(al8,bh4);mid=mid+Math.imul(ah8,bl4)|0;hi=Math.imul(ah8,bh4);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al7,bl5);mid=Math.imul(al7,bh5);mid=mid+Math.imul(ah7,bl5)|0;hi=Math.imul(ah7,bh5);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al6,bl6);mid=Math.imul(al6,bh6);mid=mid+Math.imul(ah6,bl6)|0;hi=Math.imul(ah6,bh6);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al5,bl7);mid=Math.imul(al5,bh7);mid=mid+Math.imul(ah5,bl7)|0;hi=Math.imul(ah5,bh7);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al4,bl8);mid=Math.imul(al4,bh8);mid=mid+Math.imul(ah4,bl8)|0;hi=Math.imul(ah4,bh8);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al3,bl9);mid=Math.imul(al3,bh9);mid=mid+Math.imul(ah3,bl9)|0;hi=Math.imul(ah3,bh9);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;var w13=c;c=0;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al8,bl5);mid=Math.imul(al8,bh5);mid=mid+Math.imul(ah8,bl5)|0;hi=Math.imul(ah8,bh5);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al7,bl6);mid=Math.imul(al7,bh6);mid=mid+Math.imul(ah7,bl6)|0;hi=Math.imul(ah7,bh6);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al6,bl7);mid=Math.imul(al6,bh7);mid=mid+Math.imul(ah6,bl7)|0;hi=Math.imul(ah6,bh7);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al5,bl8);mid=Math.imul(al5,bh8);mid=mid+Math.imul(ah5,bl8)|0;hi=Math.imul(ah5,bh8);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al4,bl9);mid=Math.imul(al4,bh9);mid=mid+Math.imul(ah4,bl9)|0;hi=Math.imul(ah4,bh9);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;var w14=c;c=0;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al8,bl6);mid=Math.imul(al8,bh6);mid=mid+Math.imul(ah8,bl6)|0;hi=Math.imul(ah8,bh6);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al7,bl7);mid=Math.imul(al7,bh7);mid=mid+Math.imul(ah7,bl7)|0;hi=Math.imul(ah7,bh7);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al6,bl8);mid=Math.imul(al6,bh8);mid=mid+Math.imul(ah6,bl8)|0;hi=Math.imul(ah6,bh8);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al5,bl9);mid=Math.imul(al5,bh9);mid=mid+Math.imul(ah5,bl9)|0;hi=Math.imul(ah5,bh9);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;var w15=c;c=0;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al8,bl7);mid=Math.imul(al8,bh7);mid=mid+Math.imul(ah8,bl7)|0;hi=Math.imul(ah8,bh7);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al7,bl8);mid=Math.imul(al7,bh8);mid=mid+Math.imul(ah7,bl8)|0;hi=Math.imul(ah7,bh8);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al6,bl9);mid=Math.imul(al6,bh9);mid=mid+Math.imul(ah6,bl9)|0;hi=Math.imul(ah6,bh9);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;var w16=c;c=0;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al8,bl8);mid=Math.imul(al8,bh8);mid=mid+Math.imul(ah8,bl8)|0;hi=Math.imul(ah8,bh8);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al7,bl9);mid=Math.imul(al7,bh9);mid=mid+Math.imul(ah7,bl9)|0;hi=Math.imul(ah7,bh9);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;var w17=c;c=0;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);w17=w17+lo|0;w17=w17+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w17>>>26)|0;w17&=67108863;lo=Math.imul(al8,bl9);mid=Math.imul(al8,bh9);mid=mid+Math.imul(ah8,bl9)|0;hi=Math.imul(ah8,bh9);w17=w17+lo|0;w17=w17+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w17>>>26)|0;w17&=67108863;var w18=c;c=0;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);w18=w18+lo|0;w18=w18+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w18>>>26)|0;w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1){i++}return 1<>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(var i=2*len;i>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;if(r!==0){var carry=0;for(var i=0;i>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(var i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(var i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<s){this.length-=s;for(var i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0){this.words[0]=0;this.length=1}this.strip();return this};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(r!==0)s++;this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<=67108864;i++){this.words[i]-=67108864;if(i===this.length-1)this.words[i+1]=1;else this.words[i+1]++}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i>26;this.words[i+shift]=w&67108863}if(carry===0)return this.strip();assert(carry===-1);carry=0;for(var i=0;i>26;this.words[i]=w&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(a.cmpn(0)!==0)a.negative^=1}if(q)q.words[j]=qj}if(q)q.strip();a.strip();if(mode!=="div"&&shift!==0)a.iushrn(shift);return{div:q?q:null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(num.cmpn(0)!==0);if(this.negative!==0&&num.negative===0){var res=this.neg().divmod(num,mode);var div;var mod;if(mode!=="mod")div=res.div.neg();if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.neg)mod=mod.add(num)}return{div:div,mod:mod}}else if(this.negative===0&&num.negative!==0){var res=this.divmod(num.neg(),mode);var div;if(mode!=="mod")div=res.div.neg();return{div:div,mod:res.mod}}else if((this.negative&num.negative)!==0){var res=this.neg().divmod(num.neg(),mode);var mod;if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.neg)mod=mod.isub(num)}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode==="div")return{div:this.divn(num.words[0]),mod:null};else if(mode==="mod")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.cmpn(0)===0)return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(p.cmpn(0)!==0);var x=this;var y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(x.cmpn(0)!==0){while(x.isEven()){x.iushrn(1);if(A.isEven()&&B.isEven()){A.iushrn(1);B.iushrn(1)}else{A.iadd(yp).iushrn(1);B.isub(xp).iushrn(1)}}while(y.isEven()){y.iushrn(1);if(C.isEven()&&D.isEven()){C.iushrn(1);D.iushrn(1)}else{C.iadd(yp).iushrn(1);D.isub(xp).iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(p.cmpn(0)!==0);var a=this;var b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){while(a.isEven()){a.iushrn(1);if(x1.isEven())x1.iushrn(1);else x1.iadd(delta).iushrn(1)}while(b.isEven()){b.iushrn(1);if(x2.isEven())x2.iushrn(1);else x2.iadd(delta).iushrn(1)}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res};BN.prototype.gcd=function gcd(num){if(this.cmpn(0)===0)return num.clone();if(num.cmpn(0)===0)return this.clone();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(negative)num=-num;if(this.negative!==0&&!negative)return-1;else if(this.negative===0&&negative)return 1;num&=67108863;this.strip();var res;if(this.length>1){res=1}else{var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;else if(this.length=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.ushl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i>>22;prev=next}input.words[i-10]=prev>>>22;input.length-=9};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var hi;var lo=0;for(var i=0;i>>=26;num.words[i]=lo;carry=hi}if(carry!==0)num.words[num.length++]=carry;return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256")prime=new K256;else if(name==="p224")prime=new P224;else if(name==="p192")prime=new P192;else if(name==="p25519")prime=new P25519;else throw new Error("Unknown prime "+name); +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o-1){filepath=path.join(keystore,files[i]);if(fs.lstatSync(filepath).isDirectory()){filepath=path.join(filepath,files[i])}break}}return filepath}if(this.browser){throw new Error("method only available in Node.js")}datadir=datadir||path.join(process.env.HOME,".ethereum");var keystore=path.join(datadir,"keystore");if(!isFunction(cb)){var filepath=findKeyfile(keystore,address,fs.readdirSync(keystore));if(filepath){return JSON.parse(fs.readFileSync(filepath))}else{throw new Error("could not find key file for address "+address)}}fs.readdir(keystore,function(ex,files){if(ex)return cb(ex);var filepath=findKeyfile(keystore,address,files);if(filepath)return cb(JSON.parse(fs.readFileSync(filepath)));return new Error("could not find key file for address "+address)})}}}).call(this,require("_process"),require("buffer").Buffer)},{"./lib/keccak":3,"./lib/scrypt":4,_process:17,buffer:8,crypto:35,"crypto-browserify":35,elliptic:228,"ethereumjs-util":254,fs:5,"node-uuid":259,path:16,validator:260}],3:[function(require,module,exports){"use strict";module.exports=function(){var state,State,L,permute,zeros,RC,r,keccak_f;L=function(lo,hi){this.lo=lo?lo:0;this.hi=hi?hi:0};L.clone=function(a){return new L(a.lo,a.hi)};L.prototype={xor:function(that){this.lo^=that.lo;this.hi^=that.hi;return this},not:function(){return new L(~this.lo,~this.hi)},and:function(that){this.lo&=that.lo;this.hi&=that.hi;return this},circ:function(n){var tmp,m;if(n>=32){tmp=this.lo;this.lo=this.hi;this.hi=tmp;n-=32}if(n===0){return this}m=32-n;tmp=(this.hi<>>m);this.lo=(this.lo<>>m);this.hi=tmp;return this},toString:function(){var hex,o;hex=function(n){return("00"+n.toString(16)).slice(-2)};o=function(n){return hex(n&255)+hex(n>>>8)+hex(n>>>16)+hex(n>>>24)};return function(){return o(this.lo)+o(this.hi)}}()};zeros=function(k){var i,z=[];for(i=0;ic){return String.fromCharCode(c)}a.push(c);b=191c?1:2;return""}if(0c?String.fromCharCode((c&31)<<6|d&63):String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);a.length=0;return c};this.yb=function(a){for(var a=unescape(encodeURIComponent(a)),b=[],e=0;e>3<<3;return b}function ra(a){var b=sa;sa=sa+a|0;sa=sa+7>>3<<3;return b}function ua(a){var b=z;z=z+a|0;z=z+7>>3<<3;z>=va&&wa("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value, or (2) set Module.TOTAL_MEMORY before the program runs.");return b}function xa(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)}var ma=4,ya={},za=p,Aa;function w(a,b){a||wa("Assertion failed: "+b)}s.ccall=function(a,b,c,d){return Ba(Ca(a),b,c,d)};function Ca(a){try{var b=s["_"+a];b||(b=eval("_"+a))}catch(c){}w(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}function Ba(a,b,c,d){function e(a,b){if("string"==b){if(a===m||a===k||0===a){return 0}f||(f=ja());var c=qa(a.length+1);Da(a,c);return c}return"array"==b?(f||(f=ja()),c=qa(a.length),Ea(a,c),c):a}var f=0,h=0,d=d?d.map(function(a){return e(a,c[h++])}):[];a=a.apply(m,d);"string"==b?b=Fa(a):(w("array"!=b),b=a);f&&ka(f);return b}s.cwrap=function(a,b,c){var d=Ca(a);return function(){return Ba(d,b,c,Array.prototype.slice.call(arguments))}};function Ga(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case"i1":A[a]=b;break;case"i8":A[a]=b;break;case"i16":Ha[a>>1]=b;break;case"i32":B[a>>2]=b;break;case"i64":Aa=[b>>>0,(Math.min(+Math.floor(b/4294967296),4294967295)|0)>>>0];B[a>>2]=Aa[0];B[a+4>>2]=Aa[1];break;case"float":Ia[a>>2]=b;break;case"double":Ja[a>>3]=b;break;default:wa("invalid type for setValue: "+c)}}s.setValue=Ga;s.getValue=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case"i1":return A[a];case"i8":return A[a];case"i16":return Ha[a>>1];case"i32":return B[a>>2];case"i64":return B[a>>2];case"float":return Ia[a>>2];case"double":return Ja[a>>3];default:wa("invalid type for setValue: "+b)}return m};var Ka=0,La=1,E=2,Na=4;s.ALLOC_NORMAL=Ka;s.ALLOC_STACK=La;s.ALLOC_STATIC=E;s.ALLOC_DYNAMIC=3;s.ALLOC_NONE=Na;function F(a,b,c,d){var e,f;"number"===typeof a?(e=l,f=a):(e=p,f=a.length);var h="string"===typeof b?b:m,c=c==Na?d:[Oa,qa,ra,ua][c===k?E:c](Math.max(f,h?1:b.length));if(e){d=c;w(0==(c&3));for(a=c+(f&-4);d>2]=0}for(a=c+f;d=b?2*Math.abs(1<=a){return a}var c=32>=b?Math.abs(1<=c&&(32>=b||a>c)){a=-2*c+a}return a}Math.imul||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.ie=Math.imul;var L=0,fb={},gb=p,hb=m;function ib(a){L++;s.monitorRunDependencies&&s.monitorRunDependencies(L);a?(w(!fb[a]),fb[a]=1):s.P("warning: run dependency added without ID")}s.addRunDependency=ib;function jb(a){L--;s.monitorRunDependencies&&s.monitorRunDependencies(L);a?(w(fb[a]),delete fb[a]):s.P("warning: run dependency removed without ID");0==L&&(hb!==m&&(clearInterval(hb),hb=m),!gb&&kb&&lb())}s.removeRunDependency=jb;s.preloadedImages={};s.preloadedAudios={};Ra=8;sa=Ra+1312;Xa.push({V:function(){mb()}});var nb,ob,pb;nb=nb=F([0,0,0,0,0,0,0,0],"i8",E);ob=ob=F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",E);pb=pb=F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",E);F([111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,115,0,0,0,0,0,0,0,111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,99,0,0,0,0,0,0,0,0,0,0,0,0,0,36,64,0,0,0,0,0,0,89,64,0,0,0,0,0,136,195,64,0,0,0,0,132,215,151,65,0,128,224,55,121,195,65,67,23,110,5,181,181,184,147,70,245,249,63,233,3,79,56,77,50,29,48,249,72,119,130,90,60,191,115,127,221,79,21,117,56,3,0,0,0,0,0,0,63,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,111,112,116,105,111,110,32,100,111,101,115,110,39,116,32,116,97,107,101,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,46,42,115,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,115,0,0,0,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,99,0,0,0,0,255,255,255,255,0,0,0,0,97,109,98,105,103,117,111,117,115,32,111,112,116,105,111,110,32,45,45,32,37,46,42,115,0,0,0,0,0,0,0,0,37,115,58,32,0,0,0,0,80,79,83,73,88,76,89,95,67,79,82,82,69,67,84,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,37,115,58,32,0,0,0,0,37,115,10,0,0,0,0,0,37,115,10,0,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,37,115,58,32,0,0,0,0,37,115,58,32,0,0,0,0,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,58,32,0,0,0,0,0,0,58,32,0,0,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,0,0,0,0,176,2,0,0,6,0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,2,0,0,6,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,83,116,50,48,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,0,0,0,0,120,2,0,0,168,2,0,0,0,0,0,0,0,0,0,0,136,2,0,0,176,2,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Na,8);var qb=xa(F(12,"i8",E),8);w(0==qb%8);var rb=0;function M(a){return B[rb>>2]=a}s._memcpy=sb;s._memset=tb;var N={L:1,ca:2,Bd:3,sc:4,I:5,za:6,Jb:7,Sc:8,$:9,Zb:10,ua:11,Ld:11,$a:12,Ya:13,kc:14,ed:15,Wb:16,va:17,Md:18,wa:19,gd:20,aa:21,A:22,Mc:23,Za:24,ld:25,Id:26,lc:27,ad:28,da:29,yd:30,Fc:31,rd:32,hc:33,ab:34,Wc:35,pc:36,$b:37,vc:38,wc:39,xc:40,Ec:41,Jd:42,Qc:43,uc:44,ec:45,Tc:46,Pb:50,Sb:51,Nd:52,Oc:53,Tb:54,Ub:55,fc:56,Vb:57,cd:60,Rc:61,Fd:62,bd:63,Xc:64,Yc:65,xd:66,Uc:67,Mb:68,Cd:69,ac:70,td:71,Hc:74,yc:75,ic:76,Rb:77,mc:79,md:80,Qb:81,wd:82,zc:83,Ac:84,Dc:85,Cc:86,Bc:87,dd:88,Nc:89,ya:90,Ic:91,ba:92,nd:95,qd:96,dc:104,Pc:105,Nb:106,vd:107,jd:108,Zc:109,zd:110,cc:111,Kb:112,bc:113,Lc:114,Jc:115,Gd:116,nc:117,oc:118,rc:119,Ob:120,gc:121,Gc:122,ud:123,Ad:124,Lb:125,Kc:126,tc:127,fd:128,Hd:129,sd:130,Kd:131,jc:132,Dd:133,kd:134,Vc:135,$c:136,Yb:137,qc:138,od:139,Xb:140,hd:141,pd:142,Ed:143},ub={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"No message of desired type",36:"Identifier removed",37:"Channel number out of range",38:"Level 2 not synchronized",39:"Level 3 halted",40:"Level 3 reset",41:"Link number out of range",42:"Protocol driver not attached",43:"No CSI structure available",44:"Level 2 halted",45:"Deadlock condition",46:"No record locks available",50:"Invalid exchange",51:"Invalid request descriptor",52:"Exchange full",53:"No anode",54:"Invalid request code",55:"Invalid slot",56:"File locking deadlock error",57:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",74:"Multihop attempted",75:"Inode is remote (not really error)",76:"Cross mount point (not really error)",77:"Trying to read unreadable message",79:"Inappropriate file type or format",80:"Given log. name not unique",81:"f.d. invalid for this operation",82:"Remote address changed",83:"Can access a needed shared lib",84:"Accessing a corrupted shared lib",85:".lib section in a.out corrupted",86:"Attempting to link in too many libs",87:"Attempting to exec a shared library",88:"Function not implemented",89:"No more files",90:"Directory not empty",91:"File or path name too long",92:"Too many symbolic links",95:"Operation not supported on transport endpoint",96:"Protocol family not supported",104:"Connection reset by peer",105:"No buffer space available",106:"Address family not supported by protocol family",107:"Protocol wrong type for socket",108:"Socket operation on non-socket",109:"Protocol not available",110:"Can't send after socket shutdown",111:"Connection refused",112:"Address already in use",113:"Connection aborted",114:"Network is unreachable",115:"Network interface is not configured",116:"Connection timed out",117:"Host is down",118:"Host is unreachable",119:"Connection already in progress",120:"Socket already connected",121:"Destination address required",122:"Message too long",123:"Unknown protocol",124:"Socket type not supported",125:"Address not available",126:"ENETRESET",127:"Socket is already connected",128:"Socket is not connected",129:"TOOMANYREFS",130:"EPROCLIM",131:"EUSERS",132:"EDQUOT",133:"ESTALE",134:"Not supported",135:"No medium (in tape drive)",136:"No such host or network path",137:"Filename exists with different case",138:"EILSEQ",139:"Value too large for defined data type",140:"Operation canceled",141:"State not recoverable",142:"Previous owner died",143:"Streams pipe error"};function vb(a,b,c){var d=O(a,{parent:l}).d,a="/"===a?"/":wb(a)[2],e=xb(d,a);e&&g(new Q(e));d.l.Ta||g(new Q(N.L));return d.l.Ta(d,a,b,c)}function yb(a,b){b=b&4095|32768;return vb(a,b,0)}function zb(a,b){b=b&1023|16384;return vb(a,b,0)}function Ab(a,b,c){return vb(a,b|8192,c)}function Bb(a,b){var c=O(b,{parent:l}).d,d="/"===b?"/":wb(b)[2],e=xb(c,d);e&&g(new Q(e));c.l.Wa||g(new Q(N.L));return c.l.Wa(c,d,a)}function Cb(a,b){var c;c="string"===typeof a?O(a,{N:l}).d:a;c.l.Y||g(new Q(N.L));c.l.Y(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}function Db(a,b){var c,a=Eb(a),d;"string"===typeof b?(d=Fb[b],"undefined"===typeof d&&g(Error("Unknown file open mode: "+b))):d=b;b=d;c=b&512?c&4095|32768:0;var e;try{var f=O(a,{N:!(b&65536)});e=f.d;a=f.path}catch(h){}b&512&&(e?b&2048&&g(new Q(N.va)):e=vb(a,c,0));e||g(new Q(N.ca));8192===(e.mode&61440)&&(b&=-1025);e?40960===(e.mode&61440)?c=N.ba:16384===(e.mode&61440)&&(0!==(b&3)||b&1024)?c=N.aa:(c=["r","w","rw"][b&3],b&1024&&(c+="w"),c=Gb(e,c)):c=N.ca;c&&g(new Q(c));b&1024&&(c=e,c="string"===typeof c?O(c,{N:l}).d:c,c.l.Y||g(new Q(N.L)),16384===(c.mode&61440)&&g(new Q(N.aa)),32768!==(c.mode&61440)&&g(new Q(N.A)),(f=Gb(c,"w"))&&g(new Q(f)),c.l.Y(c,{size:0,timestamp:Date.now()}));var i={path:a,d:e,M:b,seekable:l,position:0,e:e.e,Gb:[],error:p},j;a:{e=k||4096;for(c=k||1;c<=e;c++){if(!R[c]){j=c;break a}}g(new Q(N.Za))}i.s=j;Object.defineProperty(i,"object",{get:function(){return i.d},set:function(a){i.d=a}});Object.defineProperty(i,"isRead",{get:function(){return 1!==(i.M&3)}});Object.defineProperty(i,"isWrite",{get:function(){return 0!==(i.M&3)}});Object.defineProperty(i,"isAppend",{get:function(){return i.M&8}});R[j]=i;i.e.open&&i.e.open(i);return i}function Hb(a){try{a.e.close&&a.e.close(a)}catch(b){g(b)}finally{R[a.s]=m}}function Ib(a,b,c,d,e){(0>d||0>e)&&g(new Q(N.A));0===(a.M&3)&&g(new Q(N.$));16384===(a.d.mode&61440)&&g(new Q(N.aa));a.e.write||g(new Q(N.A));var f=l;"undefined"===typeof e?(e=a.position,f=p):a.seekable||g(new Q(N.da));a.M&8&&((!a.seekable||!a.e.na)&&g(new Q(N.da)),a.e.na(a,0,2));b=a.e.write(a,b,c,d,e);f||(a.position+=b);return b}function wb(a){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1)}function Jb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b){for(;c--;c){a.unshift("..")}}return a}function Eb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=Jb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function S(){var a=Array.prototype.slice.call(arguments,0);return Eb(a.filter(function(a){"string"!==typeof a&&g(new TypeError("Arguments to path.join must be strings"));return a}).join("/"))}function Kb(){for(var a="",b=p,c=arguments.length-1;-1<=c&&!b;c--){var d=0<=c?arguments[c]:"/";"string"!==typeof d&&g(new TypeError("Arguments to path.resolve must be strings"));d&&(a=d+"/"+a,b="/"===d.charAt(0))}a=Jb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var Lb=[];function Mb(a,b){Lb[a]={input:[],H:[],O:b};Nb[a]={e:Ob}}var Ob={open:function(a){Pb||(Pb=new pa);var b=Lb[a.d.X];b||g(new Q(N.wa));a.q=b;a.seekable=p},close:function(a){a.q.H.length&&a.q.O.W(a.q,10)},Q:function(a,b,c,d){(!a.q||!a.q.O.Na)&&g(new Q(N.za));for(var e=0,f=0;fc.length;){c.push(0)}}}},tb:function(){g(new Q(N.ca))},Ta:function(a,b,c,d){return T.ka(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){var d;try{d=Sb(b,c)}catch(e){}if(d){for(var f in d.g){g(new Q(N.ya))}}}delete a.parent.g[a.name];a.name=c;b.g[c]=a},ze:function(a,b){delete a.g[b]},ve:function(a,b){var c=Sb(a,b),d;for(d in c.g){g(new Q(N.ya))}delete a.g[b]},Wa:function(a,b,c){a=T.ka(a,b,41471,0);a.link=c;return a},Va:function(a){40960!==(a.mode&61440)&&g(new Q(N.A));return a.link}},e:{open:function(a){if(16384===(a.d.mode&61440)){ +var b=[".",".."],c;for(c in a.d.g){a.d.g.hasOwnProperty(c)&&b.push(c)}a.lb=b}},Q:function(a,b,c,d,e){a=a.d.g;d=Math.min(a.length-e,d);if(a.subarray){b.set(a.subarray(e,e+d),c)}else{for(var f=0;fb&&g(new Q(N.A));a.Gb=[];return a.position=b},ue:function(a){return a.lb},Wd:function(a,b,c){a=a.d.g;for(b+=c;b>a.length;){a.push(0)}},ne:function(a,b,c,d,e,f,h){32768!==(a.d.mode&61440)&&g(new Q(N.wa));a=a.d.g;if(h&2){if(0a||0===a&&-Infinity===1/a}function kc(a,b){function c(a){var c;"double"===a?c=Ja[b+e>>3]:"i64"==a?(c=[B[b+e>>2],B[b+(e+8)>>2]],e+=8):(a="i32",c=B[b+e>>2]);e+=Math.max(Math.max(la(a),ma),8);return c}for(var d=a,e=0,f=[],h,i;;){var j=d;h=A[d];if(0===h){break}i=A[d+1|0];if(37==h){var n=p,y=p,v=p,C=p;a:for(;;){switch(i){case 43:n=l;break;case 45:y=l;break;case 35:v=l;break;case 48:if(C){break a}else{C=l;break};default:break a}d++;i=A[d+1|0]}var D=0;if(42==i){D=c("i32"),d++,i=A[d+1|0]}else{for(;48<=i&&57>=i;){D=10*D+(i-48),d++,i=A[d+1|0]}}var K=p;if(46==i){var H=0,K=l;d++;i=A[d+1|0];if(42==i){H=c("i32"),d++}else{for(;;){i=A[d+1|0];if(48>i||57>>0)+4294967296*+(h[1]>>>0):+(h[0]>>>0)+4294967296*+(h[1]|0));4>=x&&(h=(j?eb:db)(h&Math.pow(256,x)-1,8*x));var ta=Math.abs(h),j="";if(100==i||105==i){r=8==x&&lc?lc.stringify(P[0],P[1],m):eb(h,8*x).toString(10)}else{if(117==i){r=8==x&&lc?lc.stringify(P[0],P[1],l):db(h,8*x).toString(10),h=Math.abs(h)}else{if(111==i){r=(v?"0":"")+ta.toString(8)}else{if(120==i||88==i){j=v&&0!=h?"0x":"";if(8==x&&lc){if(P[1]){r=(P[1]>>>0).toString(16);for(v=(P[0]>>>0).toString(16);8>v.length;){v="0"+v}r+=v}else{r=(P[0]>>>0).toString(16)}}else{if(0>h){h=-h;r=(ta-1).toString(16);P=[];for(v=0;vh?"-"+j:"+"+j);j.length+r.lengthx&&-4<=x?(i=(103==i?"f":"F").charCodeAt(0),H-=x+1):(i=(103==i?"e":"E").charCodeAt(0),H--),x=Math.min(H,20)}if(101==i||69==i){r=h.toExponential(x),/[eE][-+]\d$/.test(r)&&(r=r.slice(0,-1)+"0"+r.slice(-1))}else{if(102==i||70==i){r=h.toFixed(x),0===h&&jc(h)&&(r="-"+r)}}j=r.split("e");if(K&&!v){for(;1x++;){j[0]+="0"}}r=j[0]+(1h?"-":"")+"inf",C=p}}for(;r.lengthi&&(r=r.toUpperCase());r.split("").forEach(function(a){f.push(a.charCodeAt(0))});break;case"s":C=(n=c("i8*"))?ic(n):6;K&&(C=Math.min(C,H));if(!y){for(;C>2]=f.length;break;case"%":f.push(h);break;default:for(v=j;v>12<<12,nc.ia=l,w(ua),nc.hb=ua,ua=function(){wa("cannot dynamically allocate, sbrk now has control")});var b=z;0!=a&&nc.hb(a);return b}function U(){return B[U.m>>2]}function oc(){return!!oc.ta}function pc(a){var b=p;try{a==__ZTIi&&(b=l)}catch(c){}try{a==__ZTIj&&(b=l)}catch(d){}try{a==__ZTIl&&(b=l)}catch(e){}try{a==__ZTIm&&(b=l)}catch(f){}try{a==__ZTIx&&(b=l)}catch(h){}try{a==__ZTIy&&(b=l)}catch(i){}try{a==__ZTIf&&(b=l)}catch(j){}try{a==__ZTId&&(b=l)}catch(n){}try{a==__ZTIe&&(b=l)}catch(y){}try{a==__ZTIc&&(b=l)}catch(v){}try{a==__ZTIa&&(b=l)}catch(C){}try{a==__ZTIh&&(b=l)}catch(D){}try{a==__ZTIs&&(b=l)}catch(K){}try{a==__ZTIt&&(b=l)}catch(H){}return b}function qc(a,b,c){if(0==c){return p}if(0==b||b==a){return l}switch(pc(b)?b:B[B[b>>2]-8>>2]){case 0:return 0==B[B[a>>2]-8>>2]?qc(B[a+8>>2],B[b+8>>2],c):p;case 1:return p;case 2:return qc(a,B[b+8>>2],c);default:return p}}function rc(a,b,c){if(!rc.sb){try{B[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(d){}try{B[pb>>2]=1}catch(e){}try{B[ob>>2]=2}catch(f){}rc.sb=l}B[U.m>>2]=a;B[U.m+4>>2]=b;B[U.m+8>>2]=c;"uncaught_exception"in oc?oc.ta++:oc.ta=1;g(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")}function sc(a){try{return tc(a)}catch(b){}}function uc(){if(uc.Bb){uc.Bb=p}else{V.setThrew(0);B[U.m+4>>2]=0;var a=B[U.m>>2],b=B[U.m+8>>2];b&&(na("vi",b,[a]),B[U.m+8>>2]=0);a&&(sc(a),B[U.m>>2]=0)}}var vc=F(1,"i32*",E);function wc(a){var b,c;wc.ia?(c=B[vc>>2],b=B[c>>2]):(wc.ia=l,W.USER="root",W.PATH="/",W.PWD="/",W.HOME="/home/emscripten",W.LANG="en_US.UTF-8",W._="./this.program",b=F(1024,"i8",E),c=F(256,"i8*",E),B[c>>2]=b,B[vc>>2]=c);var d=[],e=0,f;for(f in a){if("string"===typeof a[f]){var h=f+"="+a[f];d.push(h);e+=h.length}}1024>2]=b;b+=h.length+1}B[c+4*d.length>>2]=0}var W={};function xc(a){if(0===a){return 0}a=Fa(a);if(!W.hasOwnProperty(a)){return 0}xc.J&&tc(xc.J);xc.J=F(J(W[a]),"i8",Ka);return xc.J}function yc(a,b,c){if(a in ub){if(ub[a].length>c-1){return M(N.ab)}a=ub[a];for(c=0;c>2],B[SDL.screen+0*ma>>2]=a|8388608);Kc()}function Mc(){var a=s.canvas;a.width=this.Ib;a.height=this.Hb;"undefined"!=typeof SDL&&(a=Qa[SDL.screen+0*ma>>2],B[SDL.screen+0*ma>>2]=a&-8388609);Kc()}var Nc,Oc,Pc,Qc,rb=ra(4);B[rb>>2]=0;var Vb=Qb(m,"/",16895,0),Rc=T,Sc={type:Rc,se:{},Ua:"/",root:m},Tc;Tc=O("/",{N:p});var Uc=Rc.z(Sc);Uc.z=Sc;Sc.root=Uc;Tc&&(Tc.d.z=Sc,Tc.d.ub=l,Vb=Sc.root);zb("/tmp",511);zb("/dev",511);Nb[259]={e:{Q:function(){return 0},write:function(){return 0}}};Ab("/dev/null",438,259);Mb(1280,{Na:function(a){if(!a.input.length){var b=m;if(ca){if(process.Eb.be){return}b=process.Eb.Q()}else{"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==m&&(b+="\n")):"function"==typeof readline&&(b=readline(),b!==m&&(b+="\n"))}if(!b){return m}a.input=J(b,l)}return a.input.shift()},W:function(a,b){b===m||10===b?(s.print(a.H.join("")),a.H=[]):a.H.push(Pb.oa(b))}});Mb(1536,{W:function(a,b){b===m||10===b?(s.printErr(a.H.join("")),a.H=[]):a.H.push(Pb.oa(b))}});Ab("/dev/tty",438,1280);Ab("/dev/tty1",438,1536);zb("/dev/shm",511);zb("/dev/shm/tmp",511);Xa.unshift({V:function(){if(!s.noFSInit&&!bc){w(!bc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");bc=l;s.stdin=s.stdin;s.stdout=s.stdout;s.stderr=s.stderr;s.stdin?ec("/dev","stdin",s.stdin):Bb("/dev/tty","/dev/stdin");s.stdout?ec("/dev","stdout",m,s.stdout):Bb("/dev/tty","/dev/stdout");s.stderr?ec("/dev","stderr",m,s.stderr):Bb("/dev/tty1","/dev/stderr");var a=Db("/dev/stdin","r");B[Tb>>2]=a.s;w(1===a.s,"invalid handle for stdin ("+a.s+")");a=Db("/dev/stdout","w");B[Ub>>2]=a.s;w(2===a.s,"invalid handle for stdout ("+a.s+")");a=Db("/dev/stderr","w");B[nb>>2]=a.s;w(3===a.s,"invalid handle for stderr ("+a.s+")")}}});Ya.push({V:function(){Yb=p}});Za.push({V:function(){bc=p;for(var a=0;a>f-6&63,f=f-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[j]}}2==f?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==f&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&15)<<2],c+="=");n.src="data:audio/x-"+b.substr(-3)+";base64,"+c;e(n)}};n.src=i;setTimeout(function(){za||e(n)},1e4)}else{return f()}}});var v=s.canvas;v.qa=v.requestPointerLock||v.mozRequestPointerLock||v.webkitRequestPointerLock;v.La=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||aa();v.La=v.La.bind(document);document.addEventListener("pointerlockchange",j,p);document.addEventListener("mozpointerlockchange",j,p);document.addEventListener("webkitpointerlockchange",j,p);s.elementPointerLock&&v.addEventListener("click",function(a){!Ec&&v.qa&&(v.qa(),a.preventDefault())},p)}var C,D=S.apply(m,[a,b]);"/"==D[0]&&(D=D.substr(1));C=D;ib("cp "+C);if("string"==typeof c){var K=h,H=function(){K?K():g('Loading data file "'+c+'" failed.')},x=new XMLHttpRequest;x.open("GET",c,l);x.responseType="arraybuffer";x.onload=function(){if(200==x.status||0==x.status&&x.response){var a=x.response;w(a,'Loading data file "'+c+'" failed (no arrayBuffer).');a=new Uint8Array(a);n(a);jb("al "+c)}else{H()}};x.onerror=H;x.send(m);ib("al "+c)}else{n(c)}};s.FS_createLazyFile=function(a,b,c,d,e){var f,h;"undefined"!==typeof XMLHttpRequest?(ea||g("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"),f=function(){this.ma=p;this.T=[]},f.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.S;return this.pb(Math.floor(a/this.S))[b]}},f.prototype.Cb=function(a){this.pb=a},f.prototype.Fa=function(){var a=new XMLHttpRequest;a.open("HEAD",c,p);a.send(m);200<=a.status&&300>a.status||304===a.status||g(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,e=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d)){e=b}var f=this;f.Cb(function(a){var d=a*e,h=(a+1)*e-1,h=Math.min(h,b-1);if("undefined"===typeof f.T[a]){var i=f.T;d>h&&g(Error("invalid range ("+d+", "+h+") or no bytes requested!"));h>b-1&&g(Error("only "+b+" bytes available! programmer error!"));var j=new XMLHttpRequest;j.open("GET",c,p);b!==e&&j.setRequestHeader("Range","bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(j.responseType="arraybuffer");j.overrideMimeType&&j.overrideMimeType("text/plain; charset=x-user-defined");j.send(m);200<=j.status&&300>j.status||304===j.status||g(Error("Couldn't load "+c+". Status: "+j.status));d=j.response!==k?new Uint8Array(j.response||[]):J(j.responseText||"",l);i[a]=d}"undefined"===typeof f.T[a]&&g(Error("doXHR failed!"));return f.T[a]});this.gb=b;this.fb=e;this.ma=l},f=new f,Object.defineProperty(f,"length",{get:function(){this.ma||this.Fa();return this.gb}}),Object.defineProperty(f,"chunkSize",{get:function(){this.ma||this.Fa();return this.fb}}),h=k):(h=c,f=k);var i,a=S("string"===typeof a?a:ac(a),b);i=yb(a,cc(d,e));f?i.g=f:h&&(i.g=m,i.url=h);var j={};Object.keys(i.e).forEach(function(a){var b=i.e[a];j[a]=function(){var a;if(i.ke||i.le||i.link||i.g){a=l}else{a=l;"undefined"!==typeof XMLHttpRequest&&g(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."));if(s.read){try{i.g=J(s.read(i.url),l)}catch(c){a=p}}else{g(Error("Cannot load without read() or XMLHttpRequest."))}a||M(N.I)}a||g(new Q(N.I));return b.apply(m,arguments)}});j.Q=function(a,b,c,d,e){a=a.d.g;d=Math.min(a.length-e,d);if(a.slice){for(var f=0;f>3<<3;return b|0}function a8(){return i|0}function a9(a){a=a|0;i=a}function ba(a,b){a=a|0;b=b|0;if((u|0)==0){u=a;v=b}}function bb(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function bc(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function bd(a){a=a|0;H=a}function be(a){a=a|0;I=a}function bf(a){a=a|0;J=a}function bg(a){a=a|0;K=a}function bh(a){a=a|0;L=a}function bi(a){a=a|0;M=a}function bj(a){a=a|0;N=a}function bk(a){a=a|0;O=a}function bl(a){a=a|0;P=a}function bm(a){a=a|0;Q=a}function bn(){c[170]=q+8;c[172]=p+8;c[176]=p+8}function bo(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((d|0)==0){return}else{e=0}do{a[b+e|0]=a[c+e|0]|0;e=e+1|0}while(e>>>0>>0);return}function bp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((d|0)==0){return}else{e=0}do{f=b+e|0;a[f]=a[f]^a[c+e|0];e=e+1|0}while(e>>>0>>0);return}function bq(a){a=a|0;var b=0,c=0,e=0,f=0;b=d[a+1|0]|0;c=d[a+2|0]|0;e=d[a+3|0]|0;f=cN(b<<8|0>>>24|(d[a]|0)|(c<<16|0>>>16)|(e<<24|0>>>8)|(0<<8|0>>>24),0<<8|b>>>24|(0<<16|c>>>16)|(0<<24|e>>>8)|(d[a+4|0]|0)|((d[a+5|0]|0)<<8|0>>>24),0<<16|0>>>16,(d[a+6|0]|0)<<16|0>>>16)|0;e=cN(f,H,0<<24|0>>>8,(d[a+7|0]|0)<<24|0>>>8)|0;return(H=H,e)|0}function br(a){a=a|0;return(d[a+1|0]|0)<<8|(d[a]|0)|(d[a+2|0]|0)<<16|(d[a+3|0]|0)<<24|0}function bs(b,c){b=b|0;c=c|0;a[b]=c&255;a[b+1|0]=c>>>8&255;a[b+2|0]=c>>>16&255;a[b+3|0]=c>>>24&255;return}function bt(a){a=a|0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=1779033703;c[a+4>>2]=-1150833019;c[a+8>>2]=1013904242;c[a+12>>2]=-1521486534;c[a+16>>2]=1359893119;c[a+20>>2]=-1694144372;c[a+24>>2]=528734635;c[a+28>>2]=1541459225;return}function bu(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;l=cX(i,0,h,0)|0;m=H;n=0;if(m>>>0>n>>>0|m>>>0==n>>>0&l>>>0>1073741823>>>0){c[(aX()|0)>>2]=27;o=-1;return o|0}l=cN(f,g,-1,-1)|0;if((l&f|0)!=0|(H&g|0)!=0|(f|0)==0&(g|0)==0){c[(aX()|0)>>2]=22;o=-1;return o|0}do{if(!((33554431/(i>>>0)|0)>>>0>>0|h>>>0>16777215)){l=0;if(l>>>0>>0|l>>>0==g>>>0&(33554431/(h>>>0)|0)>>>0>>0){break}l=h<<7;n=bL(ad(l,i)|0)|0;if((n|0)==0){o=-1;return o|0}m=bL(h<<8)|0;do{if((m|0)!=0){p=cX(l,0,f,g)|0;q=bL(p)|0;if((q|0)==0){bM(m);break}p=ad(i<<7,h)|0;bJ(a,b,d,e,1,0,n,p);if((i|0)!=0){r=h<<7;s=0;do{bv(n+(ad(r,s)|0)|0,h,f,g,q,m);s=s+1|0}while(s>>>0>>0)}bJ(a,b,n,p,1,0,j,k);bM(q);bM(m);bM(n);o=0;return o|0}}while(0);bM(n);o=-1;return o|0}}while(0);c[(aX()|0)>>2]=12;o=-1;return o|0}function bv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=b<<7;h=f+g|0;bo(f,a,g);if((c|0)==0&(d|0)==0){bo(a,f,g);return}i=g;j=0;k=0;l=0;do{m=cX(l,k,i,j)|0;bo(e+m|0,f,g);bw(f,h,b);l=cN(l,k,1,0)|0;k=H}while(k>>>0>>0|k>>>0==d>>>0&l>>>0>>0);if((c|0)==0&(d|0)==0){bo(a,f,g);return}l=cN(c,d,-1,-1)|0;k=H;j=g;i=0;m=0;n=0;do{o=bx(f,b)|0;p=cX(o&l,H&k,j,i)|0;bp(f,e+p|0,g);bw(f,h,b);n=cN(n,m,1,0)|0;m=H}while(m>>>0>>0|m>>>0==d>>>0&n>>>0>>0);bo(a,f,g);return}function bw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+64|0;e=d|0;f=c<<1;bo(e,a+((c<<7)-64)|0,64);if((f|0)!=0){g=0;do{h=g<<6;bp(e,a+h|0,64);by(e);bo(b+h|0,e,64);g=g+1|0}while(g>>>0>>0)}if((c|0)==0){i=d;return}else{j=0}do{bo(a+(j<<6)|0,b+(j<<7)|0,64);j=j+1|0}while(j>>>0>>0);if((c|0)==0){i=d;return}else{k=0}do{bo(a+(k+c<<6)|0,b+(k<<7|64)|0,64);k=k+1|0}while(k>>>0>>0);i=d;return}function bx(a,b){a=a|0;b=b|0;var c=0;c=bq(a+((b<<7)-64)|0)|0;return(H=H,c)|0}function by(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0;b=i;i=i+128|0;d=b|0;e=b+64|0;f=0;do{c[d+(f<<2)>>2]=br(a+(f<<2)|0)|0;f=f+1|0}while(f>>>0<16);f=d;g=e;cK(g|0,f|0,64)|0;f=e|0;g=e+48|0;h=e+16|0;j=e+32|0;k=e+20|0;l=e+4|0;m=e+36|0;n=e+52|0;o=e+40|0;p=e+24|0;q=e+56|0;r=e+8|0;s=e+60|0;t=e+44|0;u=e+12|0;v=e+28|0;w=0;x=c[f>>2]|0;y=c[g>>2]|0;z=c[h>>2]|0;A=c[j>>2]|0; +B=c[k>>2]|0;C=c[l>>2]|0;D=c[m>>2]|0;E=c[n>>2]|0;F=c[o>>2]|0;G=c[p>>2]|0;H=c[q>>2]|0;I=c[r>>2]|0;J=c[s>>2]|0;K=c[t>>2]|0;L=c[u>>2]|0;M=c[v>>2]|0;do{N=y+x|0;O=(N<<7|N>>>25)^z;N=O+x|0;P=(N<<9|N>>>23)^A;N=P+O|0;Q=(N<<13|N>>>19)^y;N=Q+P|0;R=(N<<18|N>>>14)^x;N=C+B|0;S=(N<<7|N>>>25)^D;N=S+B|0;T=(N<<9|N>>>23)^E;N=T+S|0;U=(N<<13|N>>>19)^C;N=U+T|0;V=(N<<18|N>>>14)^B;N=G+F|0;W=(N<<7|N>>>25)^H;N=W+F|0;X=(N<<9|N>>>23)^I;N=X+W|0;Y=(N<<13|N>>>19)^G;N=Y+X|0;Z=(N<<18|N>>>14)^F;N=K+J|0;_=(N<<7|N>>>25)^L;N=_+J|0;$=(N<<9|N>>>23)^M;N=$+_|0;aa=(N<<13|N>>>19)^K;N=aa+$|0;ab=(N<<18|N>>>14)^J;N=_+R|0;C=(N<<7|N>>>25)^U;U=C+R|0;I=(U<<9|U>>>23)^X;X=I+C|0;L=(X<<13|X>>>19)^_;_=L+I|0;x=(_<<18|_>>>14)^R;R=O+V|0;G=(R<<7|R>>>25)^Y;Y=G+V|0;M=(Y<<9|Y>>>23)^$;$=M+G|0;z=($<<13|$>>>19)^O;O=z+M|0;B=(O<<18|O>>>14)^V;V=S+Z|0;K=(V<<7|V>>>25)^aa;aa=K+Z|0;A=(aa<<9|aa>>>23)^P;P=A+K|0;D=(P<<13|P>>>19)^S;S=D+A|0;F=(S<<18|S>>>14)^Z;Z=W+ab|0;y=(Z<<7|Z>>>25)^Q;Q=y+ab|0;E=(Q<<9|Q>>>23)^T;T=E+y|0;H=(T<<13|T>>>19)^W;W=H+E|0;J=(W<<18|W>>>14)^ab;w=w+2|0}while(w>>>0<8);c[f>>2]=x;c[g>>2]=y;c[h>>2]=z;c[j>>2]=A;c[k>>2]=B;c[l>>2]=C;c[m>>2]=D;c[n>>2]=E;c[o>>2]=F;c[p>>2]=G;c[q>>2]=H;c[r>>2]=I;c[s>>2]=J;c[t>>2]=K;c[u>>2]=L;c[v>>2]=M;M=d|0;c[M>>2]=(c[M>>2]|0)+(c[e>>2]|0);M=d+4|0;c[M>>2]=(c[M>>2]|0)+(c[e+4>>2]|0);M=d+8|0;c[M>>2]=(c[M>>2]|0)+(c[e+8>>2]|0);M=d+12|0;c[M>>2]=(c[M>>2]|0)+(c[e+12>>2]|0);M=d+16|0;c[M>>2]=(c[M>>2]|0)+(c[e+16>>2]|0);M=d+20|0;c[M>>2]=(c[M>>2]|0)+(c[e+20>>2]|0);M=d+24|0;c[M>>2]=(c[M>>2]|0)+(c[e+24>>2]|0);M=d+28|0;c[M>>2]=(c[M>>2]|0)+(c[e+28>>2]|0);M=d+32|0;c[M>>2]=(c[M>>2]|0)+(c[e+32>>2]|0);M=d+36|0;c[M>>2]=(c[M>>2]|0)+(c[e+36>>2]|0);M=d+40|0;c[M>>2]=(c[M>>2]|0)+(c[e+40>>2]|0);M=d+44|0;c[M>>2]=(c[M>>2]|0)+(c[e+44>>2]|0);M=d+48|0;c[M>>2]=(c[M>>2]|0)+(c[e+48>>2]|0);M=d+52|0;c[M>>2]=(c[M>>2]|0)+(c[e+52>>2]|0);M=d+56|0;c[M>>2]=(c[M>>2]|0)+(c[e+56>>2]|0);M=d+60|0;c[M>>2]=(c[M>>2]|0)+(c[e+60>>2]|0);e=0;do{bs(a+(e<<2)|0,c[d+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<16);i=b;return}function bz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+32|0;f=a+36|0;g=c[f>>2]|0;h=g>>>3&63;i=aN(g|0,d<<3|0)|0;c[f>>2]=i;if(H){i=e|0;c[i>>2]=(c[i>>2]|0)+1}i=e|0;c[i>>2]=(c[i>>2]|0)+(d>>>29);i=64-h|0;e=a+40+h|0;if(i>>>0>d>>>0){cK(e|0,b|0,d)|0;return}cK(e|0,b|0,i)|0;e=a|0;h=a+40|0;bA(e,h);a=b+i|0;b=d-i|0;if(b>>>0>63){i=b;d=a;while(1){bA(e,d);f=d+64|0;g=i-64|0;if(g>>>0>63){i=g;d=f}else{j=g;k=f;break}}}else{j=b;k=a}cK(h|0,k|0,j)|0;return}function bA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=i;i=i+288|0;e=d|0;f=d+256|0;g=e|0;bK(g,b);b=16;do{h=c[e+(b-2<<2)>>2]|0;j=c[e+(b-15<<2)>>2]|0;c[e+(b<<2)>>2]=(c[e+(b-16<<2)>>2]|0)+(c[e+(b-7<<2)>>2]|0)+((h>>>19|h<<13)^h>>>10^(h>>>17|h<<15))+((j>>>18|j<<14)^j>>>3^(j>>>7|j<<25));b=b+1|0}while((b|0)<64);b=f;j=a;cK(b|0,j|0,32)|0;j=f+28|0;b=f+16|0;h=c[b>>2]|0;k=f+20|0;l=f+24|0;m=c[l>>2]|0;n=(c[j>>2]|0)+1116352408+(c[g>>2]|0)+((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+((m^c[k>>2])&h^m)|0;m=f|0;h=c[m>>2]|0;g=f+4|0;o=c[g>>2]|0;p=f+8|0;q=c[p>>2]|0;r=f+12|0;c[r>>2]=(c[r>>2]|0)+n;s=((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+n+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)+1899447441+(c[e+4>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)-1245643825+(c[e+8>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)-373957723+(c[e+12>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)+961987163+(c[e+16>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)+1508970993+(c[e+20>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)-1841331548+(c[e+24>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)-1424204075+(c[e+28>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)-670586216+(c[e+32>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+310598401+(c[e+36>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)+607225278+(c[e+40>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)+1426881987+(c[e+44>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)+1925078388+(c[e+48>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)-2132889090+(c[e+52>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-1680079193+(c[e+56>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;o=c[k>>2]|0;q=c[j>>2]|0;n=(c[m>>2]|0)-1046744716+(c[e+60>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[m>>2]=s;q=c[b>>2]|0;o=c[l>>2]|0;h=(c[j>>2]|0)-459576895+(c[e+64>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[j>>2]=n;o=c[r>>2]|0;q=c[k>>2]|0;s=(c[l>>2]|0)-272742522+(c[e+68>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[l>>2]=h;q=c[p>>2]|0;o=c[b>>2]|0;n=(c[k>>2]|0)+264347078+(c[e+72>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[k>>2]=s;o=c[g>>2]|0;q=c[r>>2]|0;h=(c[b>>2]|0)+604807628+(c[e+76>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[b>>2]=n;q=c[m>>2]|0;o=c[p>>2]|0;s=(c[r>>2]|0)+770255983+(c[e+80>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[r>>2]=h;o=c[j>>2]|0;q=c[g>>2]|0;n=(c[p>>2]|0)+1249150122+(c[e+84>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[p>>2]=s;q=c[l>>2]|0;o=c[m>>2]|0;h=(c[g>>2]|0)+1555081692+(c[e+88>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[g>>2]=n;o=c[k>>2]|0;q=c[j>>2]|0;s=(c[m>>2]|0)+1996064986+(c[e+92>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[m>>2]=h;q=c[b>>2]|0;o=c[l>>2]|0;n=(c[j>>2]|0)-1740746414+(c[e+96>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)-1473132947+(c[e+100>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)-1341970488+(c[e+104>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)-1084653625+(c[e+108>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)-958395405+(c[e+112>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)-710438585+(c[e+116>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)+113926993+(c[e+120>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)+338241895+(c[e+124>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)+666307205+(c[e+128>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+773529912+(c[e+132>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)+1294757372+(c[e+136>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)+1396182291+(c[e+140>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)+1695183700+(c[e+144>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)+1986661051+(c[e+148>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-2117940946+(c[e+152>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;o=c[k>>2]|0;q=c[j>>2]|0;n=(c[m>>2]|0)-1838011259+(c[e+156>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[m>>2]=s;q=c[b>>2]|0;o=c[l>>2]|0;h=(c[j>>2]|0)-1564481375+(c[e+160>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[j>>2]=n;o=c[r>>2]|0;q=c[k>>2]|0;s=(c[l>>2]|0)-1474664885+(c[e+164>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[l>>2]=h;q=c[p>>2]|0;o=c[b>>2]|0;n=(c[k>>2]|0)-1035236496+(c[e+168>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[k>>2]=s;o=c[g>>2]|0;q=c[r>>2]|0;h=(c[b>>2]|0)-949202525+(c[e+172>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[b>>2]=n;q=c[m>>2]|0;o=c[p>>2]|0;s=(c[r>>2]|0)-778901479+(c[e+176>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[r>>2]=h;o=c[j>>2]|0;q=c[g>>2]|0;n=(c[p>>2]|0)-694614492+(c[e+180>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[p>>2]=s;q=c[l>>2]|0;o=c[m>>2]|0;h=(c[g>>2]|0)-200395387+(c[e+184>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[g>>2]=n;o=c[k>>2]|0;q=c[j>>2]|0;s=(c[m>>2]|0)+275423344+(c[e+188>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[m>>2]=h;q=c[b>>2]|0;o=c[l>>2]|0;n=(c[j>>2]|0)+430227734+(c[e+192>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[j>>2]=s;o=c[r>>2]|0;q=c[k>>2]|0;h=(c[l>>2]|0)+506948616+(c[e+196>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[l>>2]=n;q=c[p>>2]|0;o=c[b>>2]|0;s=(c[k>>2]|0)+659060556+(c[e+200>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[k>>2]=h;o=c[g>>2]|0;q=c[r>>2]|0;n=(c[b>>2]|0)+883997877+(c[e+204>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[b>>2]=s;q=c[m>>2]|0;o=c[p>>2]|0;h=(c[r>>2]|0)+958139571+(c[e+208>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[r>>2]=n;o=c[j>>2]|0;q=c[g>>2]|0;s=(c[p>>2]|0)+1322822218+(c[e+212>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[p>>2]=h;q=c[l>>2]|0;o=c[m>>2]|0;n=(c[g>>2]|0)+1537002063+(c[e+216>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[g>>2]=s;o=c[k>>2]|0;q=c[j>>2]|0;h=(c[m>>2]|0)+1747873779+(c[e+220>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[l>>2])&o^q)|0;q=c[p>>2]|0;o=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[m>>2]=n;q=c[b>>2]|0;o=c[l>>2]|0;s=(c[j>>2]|0)+1955562222+(c[e+224>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[k>>2])&q^o)|0;o=c[g>>2]|0;q=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[j>>2]=h;o=c[r>>2]|0;q=c[k>>2]|0;n=(c[l>>2]|0)+2024104815+(c[e+228>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[b>>2])&o^q)|0;q=c[m>>2]|0;o=c[g>>2]|0;c[p>>2]=(c[p>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((o|q)&h|o&q)|0;c[l>>2]=s;q=c[p>>2]|0;o=c[b>>2]|0;h=(c[k>>2]|0)-2067236844+(c[e+232>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[r>>2])&q^o)|0;o=c[j>>2]|0;q=c[m>>2]|0;c[g>>2]=(c[g>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((q|o)&s|q&o)|0;c[k>>2]=n;o=c[g>>2]|0;q=c[r>>2]|0;s=(c[b>>2]|0)-1933114872+(c[e+236>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[p>>2])&o^q)|0;q=c[l>>2]|0;o=c[j>>2]|0;c[m>>2]=(c[m>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((o|q)&n|o&q)|0;c[b>>2]=h;q=c[m>>2]|0;o=c[p>>2]|0;n=(c[r>>2]|0)-1866530822+(c[e+240>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[g>>2])&q^o)|0;o=c[k>>2]|0;q=c[l>>2]|0;c[j>>2]=(c[j>>2]|0)+n;s=n+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((q|o)&h|q&o)|0;c[r>>2]=s;o=c[j>>2]|0;q=c[g>>2]|0;h=(c[p>>2]|0)-1538233109+(c[e+244>>2]|0)+((o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7))+((q^c[m>>2])&o^q)|0;q=c[b>>2]|0;o=c[k>>2]|0;c[l>>2]=(c[l>>2]|0)+h;n=h+((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+((o|q)&s|o&q)|0;c[p>>2]=n;q=c[l>>2]|0;o=c[m>>2]|0;s=(c[g>>2]|0)-1090935817+(c[e+248>>2]|0)+((q>>>6|q<<26)^(q>>>11|q<<21)^(q>>>25|q<<7))+((o^c[j>>2])&q^o)|0;o=c[r>>2]|0;q=c[b>>2]|0;c[k>>2]=(c[k>>2]|0)+s;h=s+((n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10))+((q|o)&n|q&o)|0;c[g>>2]=h;g=c[k>>2]|0;k=c[j>>2]|0;j=(c[m>>2]|0)-965641998+(c[e+252>>2]|0)+((g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+((k^c[l>>2])&g^k)|0;k=c[p>>2]|0;p=c[r>>2]|0;c[b>>2]=(c[b>>2]|0)+j;b=j+((h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10))+((p|k)&h|p&k)|0;c[m>>2]=b;c[a>>2]=(c[a>>2]|0)+b;b=a+4|0;c[b>>2]=(c[b>>2]|0)+(c[f+4>>2]|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+(c[f+8>>2]|0);b=a+12|0;c[b>>2]=(c[b>>2]|0)+(c[f+12>>2]|0);b=a+16|0;c[b>>2]=(c[b>>2]|0)+(c[f+16>>2]|0);b=a+20|0;c[b>>2]=(c[b>>2]|0)+(c[f+20>>2]|0);b=a+24|0;c[b>>2]=(c[b>>2]|0)+(c[f+24>>2]|0);b=a+28|0;c[b>>2]=(c[b>>2]|0)+(c[f+28>>2]|0);i=d;return}function bB(b,c){b=b|0;c=c|0;a[b+3|0]=c&255;a[b+2|0]=c>>>8&255;a[b+1|0]=c>>>16&255;a[b]=c>>>24&255;return}function bC(a){a=a|0;return(d[a+2|0]|0)<<8|(d[a+3|0]|0)|(d[a+1|0]|0)<<16|(d[a]|0)<<24|0}function bD(a,b){a=a|0;b=b|0;bE(b);bF(a,b|0,32);cL(b|0,0,104);return}function bE(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+8|0;d=b|0;bF(d,a+32|0,8);e=(c[a+36>>2]|0)>>>3&63;bz(a,720,(e>>>0<56?56:120)-e|0);bz(a,d,8);i=b;return}function bF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=d>>>2;if((e|0)==0){return}else{f=0}do{bB(a+(f<<2)|0,c[b+(f<<2)>>2]|0);f=f+1|0}while(f>>>0>>0);return}function bG(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+96|0;f=e|0;if(d>>>0>64){g=b|0;bt(g);bz(g,c,d);h=e+64|0;bD(h,g);j=h;k=32}else{j=c;k=d}d=b|0;bt(d);c=f|0;cL(c|0,54,64);if((k|0)!=0){h=0;do{g=f+h|0;a[g]=a[g]^a[j+h|0];h=h+1|0}while(h>>>0>>0)}bz(d,c,64);d=b+104|0;bt(d);cL(c|0,92,64);if((k|0)==0){bz(d,c,64);i=e;return}else{l=0}do{b=f+l|0;a[b]=a[b]^a[j+l|0];l=l+1|0}while(l>>>0>>0);bz(d,c,64);i=e;return}function bH(a,b,c){a=a|0;b=b|0;c=c|0;bz(a|0,b,c);return}function bI(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+32|0;d=c|0;bD(d,b|0);e=b+104|0;bz(e,d,32);bD(a,e);i=c;return}function bJ(b,c,d,e,f,g,h,j){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;k=i;i=i+488|0;l=k|0;m=k+208|0;n=k+424|0;o=k+456|0;bG(l,b,c);bH(l,d,e);if((j|0)==0){i=k;return}e=k+416|0;d=m;p=l;l=n|0;q=o|0;r=0;s=g>>>0>>0|g>>>0==r>>>0&f>>>0<2>>>0;r=0;t=0;do{r=r+1|0;bB(e,r);cK(d|0,p|0,208)|0;bH(m,e,4);bI(l,m);cK(q|0,l|0,32)|0;if(!s){u=0;v=2;do{bG(m,b,c);bH(m,l,32);bI(l,m);w=0;do{x=o+w|0;a[x]=a[x]^a[n+w|0];w=w+1|0}while((w|0)<32);v=cN(v,u,1,0)|0;u=H}while(!(u>>>0>g>>>0|u>>>0==g>>>0&v>>>0>f>>>0))}v=j-t|0;u=v>>>0>32?32:v;v=h+t|0;cK(v|0,q|0,u)|0;t=r<<5}while(t>>>0>>0);i=k;return}function bK(a,b){a=a|0;b=b|0;var d=0;d=0;do{c[a+(d<<2)>>2]=bC(b+(d<<2)|0)|0;d=d+1|0}while(d>>>0<16);return}function bL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0,ac=0,ad=0,ae=0,af=0,ag=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,as=0,at=0,av=0,aw=0,ax=0,ay=0,az=0,aA=0,aB=0,aC=0,aD=0,aE=0,aF=0,aG=0,aH=0,aI=0;do{if(a>>>0<245){if(a>>>0<11){b=16}else{b=a+11&-8}d=b>>>3;e=c[208]|0;f=e>>>(d>>>0);if((f&3|0)!=0){g=(f&1^1)+d|0;h=g<<1;i=872+(h<<2)|0;j=872+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do{if((i|0)==(l|0)){c[208]=e&~(1<>>0<(c[212]|0)>>>0){au();return 0}m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else{au();return 0}}}while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}if(b>>>0<=(c[210]|0)>>>0){o=b;break}if((f|0)!=0){j=2<>>12&16;i=j>>>(l>>>0);j=i>>>5&8;m=i>>>(j>>>0);i=m>>>2&4;p=m>>>(i>>>0);m=p>>>1&2;q=p>>>(m>>>0);p=q>>>1&1;r=(j|l|i|m|p)+(q>>>(p>>>0))|0;p=r<<1;q=872+(p<<2)|0;m=872+(p+2<<2)|0;p=c[m>>2]|0;i=p+8|0;l=c[i>>2]|0;do{if((q|0)==(l|0)){c[208]=e&~(1<>>0<(c[212]|0)>>>0){au();return 0}j=l+12|0;if((c[j>>2]|0)==(p|0)){c[j>>2]=q;c[m>>2]=l;break}else{au();return 0}}}while(0);l=r<<3;m=l-b|0;c[p+4>>2]=b|3;q=p;e=q+b|0;c[q+(b|4)>>2]=m|1;c[q+l>>2]=m;l=c[210]|0;if((l|0)!=0){q=c[213]|0;d=l>>>3;l=d<<1;f=872+(l<<2)|0;k=c[208]|0;h=1<>2]|0;if(g>>>0>=(c[212]|0)>>>0){s=g;t=d;break}au();return 0}}while(0);c[t>>2]=q;c[s+12>>2]=q;c[q+8>>2]=s;c[q+12>>2]=f}c[210]=m;c[213]=e;n=i;return n|0}l=c[209]|0;if((l|0)==0){o=b;break}h=(l&-l)-1|0;l=h>>>12&16;k=h>>>(l>>>0);h=k>>>5&8;p=k>>>(h>>>0);k=p>>>2&4;r=p>>>(k>>>0);p=r>>>1&2;d=r>>>(p>>>0);r=d>>>1&1;g=c[1136+((h|l|k|p|r)+(d>>>(r>>>0))<<2)>>2]|0;r=g;d=g;p=(c[g+4>>2]&-8)-b|0;while(1){g=c[r+16>>2]|0;if((g|0)==0){k=c[r+20>>2]|0;if((k|0)==0){break}else{u=k}}else{u=g}g=(c[u+4>>2]&-8)-b|0;k=g>>>0

>>0;r=u;d=k?u:d;p=k?g:p}r=d;i=c[212]|0;if(r>>>0>>0){au();return 0}e=r+b|0;m=e;if(r>>>0>=e>>>0){au();return 0}e=c[d+24>>2]|0;f=c[d+12>>2]|0;do{if((f|0)==(d|0)){q=d+20|0;g=c[q>>2]|0;if((g|0)==0){k=d+16|0;l=c[k>>2]|0;if((l|0)==0){v=0;break}else{w=l;x=k}}else{w=g;x=q}while(1){q=w+20|0;g=c[q>>2]|0;if((g|0)!=0){w=g;x=q;continue}q=w+16|0;g=c[q>>2]|0;if((g|0)==0){break}else{w=g;x=q}}if(x>>>0>>0){au();return 0}else{c[x>>2]=0;v=w;break}}else{q=c[d+8>>2]|0;if(q>>>0>>0){au();return 0}g=q+12|0;if((c[g>>2]|0)!=(d|0)){au();return 0}k=f+8|0;if((c[k>>2]|0)==(d|0)){c[g>>2]=f;c[k>>2]=q;v=f;break}else{au();return 0}}}while(0);L223:do{if((e|0)!=0){f=d+28|0;i=1136+(c[f>>2]<<2)|0;do{if((d|0)==(c[i>>2]|0)){c[i>>2]=v;if((v|0)!=0){break}c[209]=c[209]&~(1<>2]);break L223}else{if(e>>>0<(c[212]|0)>>>0){au();return 0}q=e+16|0;if((c[q>>2]|0)==(d|0)){c[q>>2]=v}else{c[e+20>>2]=v}if((v|0)==0){break L223}}}while(0);if(v>>>0<(c[212]|0)>>>0){au();return 0}c[v+24>>2]=e;f=c[d+16>>2]|0;do{if((f|0)!=0){if(f>>>0<(c[212]|0)>>>0){au();return 0}else{c[v+16>>2]=f;c[f+24>>2]=v;break}}}while(0);f=c[d+20>>2]|0;if((f|0)==0){break}if(f>>>0<(c[212]|0)>>>0){au();return 0}else{c[v+20>>2]=f;c[f+24>>2]=v;break}}}while(0);if(p>>>0<16){e=p+b|0;c[d+4>>2]=e|3;f=r+(e+4)|0;c[f>>2]=c[f>>2]|1}else{c[d+4>>2]=b|3;c[r+(b|4)>>2]=p|1;c[r+(p+b)>>2]=p;f=c[210]|0;if((f|0)!=0){e=c[213]|0;i=f>>>3;f=i<<1;q=872+(f<<2)|0;k=c[208]|0;g=1<>2]|0;if(l>>>0>=(c[212]|0)>>>0){y=l;z=i;break}au();return 0}}while(0);c[z>>2]=e;c[y+12>>2]=e;c[e+8>>2]=y;c[e+12>>2]=q}c[210]=p;c[213]=m}f=d+8|0;if((f|0)==0){o=b;break}else{n=f}return n|0}else{if(a>>>0>4294967231){o=-1;break}f=a+11|0;g=f&-8;k=c[209]|0;if((k|0)==0){o=g;break}r=-g|0;i=f>>>8;do{if((i|0)==0){A=0}else{if(g>>>0>16777215){A=31;break}f=(i+1048320|0)>>>16&8;l=i<>>16&4;j=l<>>16&2;B=14-(h|f|l)+(j<>>15)|0;A=g>>>((B+7|0)>>>0)&1|B<<1}}while(0);i=c[1136+(A<<2)>>2]|0;L271:do{if((i|0)==0){C=0;D=r;E=0}else{if((A|0)==31){F=0}else{F=25-(A>>>1)|0}d=0;m=r;p=i;q=g<>2]&-8;l=B-g|0;if(l>>>0>>0){if((B|0)==(g|0)){C=p;D=l;E=p;break L271}else{G=p;H=l}}else{G=d;H=m}l=c[p+20>>2]|0;B=c[p+16+(q>>>31<<2)>>2]|0;j=(l|0)==0|(l|0)==(B|0)?e:l;if((B|0)==0){C=G;D=H;E=j;break}else{d=G;m=H;p=B;q=q<<1;e=j}}}}while(0);if((E|0)==0&(C|0)==0){i=2<>>12&16;e=i>>>(r>>>0);i=e>>>5&8;q=e>>>(i>>>0);e=q>>>2&4;p=q>>>(e>>>0);q=p>>>1&2;m=p>>>(q>>>0);p=m>>>1&1;I=c[1136+((i|r|e|q|p)+(m>>>(p>>>0))<<2)>>2]|0}else{I=E}if((I|0)==0){J=D;K=C}else{p=I;m=D;q=C;while(1){e=(c[p+4>>2]&-8)-g|0;r=e>>>0>>0;i=r?e:m;e=r?p:q;r=c[p+16>>2]|0;if((r|0)!=0){p=r;m=i;q=e;continue}r=c[p+20>>2]|0;if((r|0)==0){J=i;K=e;break}else{p=r;m=i;q=e}}}if((K|0)==0){o=g;break}if(J>>>0>=((c[210]|0)-g|0)>>>0){o=g;break}q=K;m=c[212]|0;if(q>>>0>>0){au();return 0}p=q+g|0;k=p;if(q>>>0>=p>>>0){au();return 0}e=c[K+24>>2]|0;i=c[K+12>>2]|0;do{if((i|0)==(K|0)){r=K+20|0;d=c[r>>2]|0;if((d|0)==0){j=K+16|0;B=c[j>>2]|0;if((B|0)==0){L=0;break}else{M=B;N=j}}else{M=d;N=r}while(1){r=M+20|0;d=c[r>>2]|0;if((d|0)!=0){M=d;N=r;continue}r=M+16|0;d=c[r>>2]|0;if((d|0)==0){break}else{M=d;N=r}}if(N>>>0>>0){au();return 0}else{c[N>>2]=0;L=M;break}}else{r=c[K+8>>2]|0;if(r>>>0>>0){au();return 0}d=r+12|0;if((c[d>>2]|0)!=(K|0)){au();return 0}j=i+8|0;if((c[j>>2]|0)==(K|0)){c[d>>2]=i;c[j>>2]=r;L=i;break}else{au();return 0}}}while(0);L321:do{if((e|0)!=0){i=K+28|0;m=1136+(c[i>>2]<<2)|0;do{if((K|0)==(c[m>>2]|0)){c[m>>2]=L;if((L|0)!=0){break}c[209]=c[209]&~(1<>2]);break L321}else{if(e>>>0<(c[212]|0)>>>0){au();return 0}r=e+16|0;if((c[r>>2]|0)==(K|0)){c[r>>2]=L}else{c[e+20>>2]=L}if((L|0)==0){break L321}}}while(0);if(L>>>0<(c[212]|0)>>>0){au();return 0}c[L+24>>2]=e;i=c[K+16>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[212]|0)>>>0){au();return 0}else{c[L+16>>2]=i;c[i+24>>2]=L;break}}}while(0);i=c[K+20>>2]|0;if((i|0)==0){break}if(i>>>0<(c[212]|0)>>>0){au();return 0}else{c[L+20>>2]=i;c[i+24>>2]=L;break}}}while(0);do{if(J>>>0<16){e=J+g|0;c[K+4>>2]=e|3;i=q+(e+4)|0;c[i>>2]=c[i>>2]|1}else{c[K+4>>2]=g|3;c[q+(g|4)>>2]=J|1;c[q+(J+g)>>2]=J;i=J>>>3;if(J>>>0<256){e=i<<1;m=872+(e<<2)|0;r=c[208]|0;j=1<>2]|0;if(d>>>0>=(c[212]|0)>>>0){O=d;P=i;break}au();return 0}}while(0);c[P>>2]=k;c[O+12>>2]=k;c[q+(g+8)>>2]=O;c[q+(g+12)>>2]=m;break}e=p;j=J>>>8;do{if((j|0)==0){Q=0}else{if(J>>>0>16777215){Q=31;break}r=(j+1048320|0)>>>16&8;i=j<>>16&4;B=i<>>16&2;l=14-(d|r|i)+(B<>>15)|0;Q=J>>>((l+7|0)>>>0)&1|l<<1}}while(0);j=1136+(Q<<2)|0;c[q+(g+28)>>2]=Q;c[q+(g+20)>>2]=0;c[q+(g+16)>>2]=0;m=c[209]|0;l=1<>2]=e;c[q+(g+24)>>2]=j;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}if((Q|0)==31){R=0}else{R=25-(Q>>>1)|0}l=J<>2]|0;while(1){if((c[m+4>>2]&-8|0)==(J|0)){break}S=m+16+(l>>>31<<2)|0;j=c[S>>2]|0;if((j|0)==0){T=262;break}else{l=l<<1;m=j}}if((T|0)==262){if(S>>>0<(c[212]|0)>>>0){au();return 0}else{c[S>>2]=e;c[q+(g+24)>>2]=m;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}}l=m+8|0;j=c[l>>2]|0;i=c[212]|0;if(m>>>0>>0){au();return 0}if(j>>>0>>0){au();return 0}else{c[j+12>>2]=e;c[l>>2]=e;c[q+(g+8)>>2]=j;c[q+(g+12)>>2]=m;c[q+(g+24)>>2]=0;break}}}while(0);q=K+8|0;if((q|0)==0){o=g;break}else{n=q}return n|0}}while(0);K=c[210]|0;if(o>>>0<=K>>>0){S=K-o|0;J=c[213]|0;if(S>>>0>15){R=J;c[213]=R+o;c[210]=S;c[R+(o+4)>>2]=S|1;c[R+K>>2]=S;c[J+4>>2]=o|3}else{c[210]=0;c[213]=0;c[J+4>>2]=K|3;S=J+(K+4)|0;c[S>>2]=c[S>>2]|1}n=J+8|0;return n|0}J=c[211]|0;if(o>>>0>>0){S=J-o|0;c[211]=S;J=c[214]|0;K=J;c[214]=K+o;c[K+(o+4)>>2]=S|1;c[J+4>>2]=o|3;n=J+8|0;return n|0}do{if((c[200]|0)==0){J=ar(8)|0;if((J-1&J|0)==0){c[202]=J;c[201]=J;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);J=o+48|0;S=c[202]|0;K=o+47|0;R=S+K|0;Q=-S|0;S=R&Q;if(S>>>0<=o>>>0){n=0;return n|0}O=c[318]|0;do{if((O|0)!=0){P=c[316]|0;L=P+S|0;if(L>>>0<=P>>>0|L>>>0>O>>>0){n=0}else{break}return n|0}}while(0);L413:do{if((c[319]&4|0)==0){O=c[214]|0;L415:do{if((O|0)==0){T=292}else{L=O;P=1280;while(1){U=P|0;M=c[U>>2]|0;if(M>>>0<=L>>>0){V=P+4|0;if((M+(c[V>>2]|0)|0)>>>0>L>>>0){break}}M=c[P+8>>2]|0;if((M|0)==0){T=292;break L415}else{P=M}}if((P|0)==0){T=292;break}L=R-(c[211]|0)&Q;if(L>>>0>=2147483647){W=0;break}m=aV(L|0)|0;e=(m|0)==((c[U>>2]|0)+(c[V>>2]|0)|0);X=e?m:-1;Y=e?L:0;Z=m;_=L;T=301}}while(0);do{if((T|0)==292){O=aV(0)|0;if((O|0)==-1){W=0;break}g=O;L=c[201]|0;m=L-1|0;if((m&g|0)==0){$=S}else{$=S-g+(m+g&-L)|0}L=c[316]|0;g=L+$|0;if(!($>>>0>o>>>0&$>>>0<2147483647)){W=0;break}m=c[318]|0;if((m|0)!=0){if(g>>>0<=L>>>0|g>>>0>m>>>0){W=0;break}}m=aV($|0)|0;g=(m|0)==(O|0);X=g?O:-1;Y=g?$:0;Z=m;_=$;T=301}}while(0);L435:do{if((T|0)==301){m=-_|0;if((X|0)!=-1){aa=Y;ab=X;T=312;break L413}do{if((Z|0)!=-1&_>>>0<2147483647&_>>>0>>0){g=c[202]|0;O=K-_+g&-g;if(O>>>0>=2147483647){ac=_;break}if((aV(O|0)|0)==-1){aV(m|0)|0;W=Y;break L435}else{ac=O+_|0;break}}else{ac=_}}while(0);if((Z|0)==-1){W=Y}else{aa=ac;ab=Z;T=312;break L413}}}while(0);c[319]=c[319]|4;ad=W;T=309}else{ad=0;T=309}}while(0);do{if((T|0)==309){if(S>>>0>=2147483647){break}W=aV(S|0)|0;Z=aV(0)|0;if(!((Z|0)!=-1&(W|0)!=-1&W>>>0>>0)){break}ac=Z-W|0;Z=ac>>>0>(o+40|0)>>>0;Y=Z?W:-1;if((Y|0)!=-1){aa=Z?ac:ad;ab=Y;T=312}}}while(0);do{if((T|0)==312){ad=(c[316]|0)+aa|0;c[316]=ad;if(ad>>>0>(c[317]|0)>>>0){c[317]=ad}ad=c[214]|0;L455:do{if((ad|0)==0){S=c[212]|0;if((S|0)==0|ab>>>0>>0){c[212]=ab}c[320]=ab;c[321]=aa;c[323]=0;c[217]=c[200];c[216]=-1;S=0;do{Y=S<<1;ac=872+(Y<<2)|0;c[872+(Y+3<<2)>>2]=ac;c[872+(Y+2<<2)>>2]=ac;S=S+1|0}while(S>>>0<32);S=ab+8|0;if((S&7|0)==0){ae=0}else{ae=-S&7}S=aa-40-ae|0;c[214]=ab+ae;c[211]=S;c[ab+(ae+4)>>2]=S|1;c[ab+(aa-36)>>2]=40;c[215]=c[204]}else{S=1280;while(1){af=c[S>>2]|0;ag=S+4|0;ah=c[ag>>2]|0;if((ab|0)==(af+ah|0)){T=324;break}ac=c[S+8>>2]|0;if((ac|0)==0){break}else{S=ac}}do{if((T|0)==324){if((c[S+12>>2]&8|0)!=0){break}ac=ad;if(!(ac>>>0>=af>>>0&ac>>>0>>0)){break}c[ag>>2]=ah+aa;ac=c[214]|0;Y=(c[211]|0)+aa|0;Z=ac;W=ac+8|0;if((W&7|0)==0){ai=0}else{ai=-W&7}W=Y-ai|0;c[214]=Z+ai;c[211]=W;c[Z+(ai+4)>>2]=W|1;c[Z+(Y+4)>>2]=40;c[215]=c[204];break L455}}while(0);if(ab>>>0<(c[212]|0)>>>0){c[212]=ab}S=ab+aa|0;Y=1280;while(1){aj=Y|0;if((c[aj>>2]|0)==(S|0)){T=334;break}Z=c[Y+8>>2]|0;if((Z|0)==0){break}else{Y=Z}}do{if((T|0)==334){if((c[Y+12>>2]&8|0)!=0){break}c[aj>>2]=ab;S=Y+4|0;c[S>>2]=(c[S>>2]|0)+aa;S=ab+8|0;if((S&7|0)==0){ak=0}else{ak=-S&7}S=ab+(aa+8)|0;if((S&7|0)==0){al=0}else{al=-S&7}S=ab+(al+aa)|0;Z=S;W=ak+o|0;ac=ab+W|0;_=ac;K=S-(ab+ak)-o|0;c[ab+(ak+4)>>2]=o|3;do{if((Z|0)==(c[214]|0)){J=(c[211]|0)+K|0;c[211]=J;c[214]=_;c[ab+(W+4)>>2]=J|1}else{if((Z|0)==(c[213]|0)){J=(c[210]|0)+K|0;c[210]=J;c[213]=_;c[ab+(W+4)>>2]=J|1;c[ab+(J+W)>>2]=J;break} +J=aa+4|0;X=c[ab+(J+al)>>2]|0;if((X&3|0)==1){$=X&-8;V=X>>>3;L500:do{if(X>>>0<256){U=c[ab+((al|8)+aa)>>2]|0;Q=c[ab+(aa+12+al)>>2]|0;R=872+(V<<1<<2)|0;do{if((U|0)!=(R|0)){if(U>>>0<(c[212]|0)>>>0){au();return 0}if((c[U+12>>2]|0)==(Z|0)){break}au();return 0}}while(0);if((Q|0)==(U|0)){c[208]=c[208]&~(1<>>0<(c[212]|0)>>>0){au();return 0}m=Q+8|0;if((c[m>>2]|0)==(Z|0)){am=m;break}au();return 0}}while(0);c[U+12>>2]=Q;c[am>>2]=U}else{R=S;m=c[ab+((al|24)+aa)>>2]|0;P=c[ab+(aa+12+al)>>2]|0;do{if((P|0)==(R|0)){O=al|16;g=ab+(J+O)|0;L=c[g>>2]|0;if((L|0)==0){e=ab+(O+aa)|0;O=c[e>>2]|0;if((O|0)==0){an=0;break}else{ao=O;ap=e}}else{ao=L;ap=g}while(1){g=ao+20|0;L=c[g>>2]|0;if((L|0)!=0){ao=L;ap=g;continue}g=ao+16|0;L=c[g>>2]|0;if((L|0)==0){break}else{ao=L;ap=g}}if(ap>>>0<(c[212]|0)>>>0){au();return 0}else{c[ap>>2]=0;an=ao;break}}else{g=c[ab+((al|8)+aa)>>2]|0;if(g>>>0<(c[212]|0)>>>0){au();return 0}L=g+12|0;if((c[L>>2]|0)!=(R|0)){au();return 0}e=P+8|0;if((c[e>>2]|0)==(R|0)){c[L>>2]=P;c[e>>2]=g;an=P;break}else{au();return 0}}}while(0);if((m|0)==0){break}P=ab+(aa+28+al)|0;U=1136+(c[P>>2]<<2)|0;do{if((R|0)==(c[U>>2]|0)){c[U>>2]=an;if((an|0)!=0){break}c[209]=c[209]&~(1<>2]);break L500}else{if(m>>>0<(c[212]|0)>>>0){au();return 0}Q=m+16|0;if((c[Q>>2]|0)==(R|0)){c[Q>>2]=an}else{c[m+20>>2]=an}if((an|0)==0){break L500}}}while(0);if(an>>>0<(c[212]|0)>>>0){au();return 0}c[an+24>>2]=m;R=al|16;P=c[ab+(R+aa)>>2]|0;do{if((P|0)!=0){if(P>>>0<(c[212]|0)>>>0){au();return 0}else{c[an+16>>2]=P;c[P+24>>2]=an;break}}}while(0);P=c[ab+(J+R)>>2]|0;if((P|0)==0){break}if(P>>>0<(c[212]|0)>>>0){au();return 0}else{c[an+20>>2]=P;c[P+24>>2]=an;break}}}while(0);aq=ab+(($|al)+aa)|0;as=$+K|0}else{aq=Z;as=K}J=aq+4|0;c[J>>2]=c[J>>2]&-2;c[ab+(W+4)>>2]=as|1;c[ab+(as+W)>>2]=as;J=as>>>3;if(as>>>0<256){V=J<<1;X=872+(V<<2)|0;P=c[208]|0;m=1<>2]|0;if(U>>>0>=(c[212]|0)>>>0){at=U;av=J;break}au();return 0}}while(0);c[av>>2]=_;c[at+12>>2]=_;c[ab+(W+8)>>2]=at;c[ab+(W+12)>>2]=X;break}V=ac;m=as>>>8;do{if((m|0)==0){aw=0}else{if(as>>>0>16777215){aw=31;break}P=(m+1048320|0)>>>16&8;$=m<>>16&4;U=$<>>16&2;Q=14-(J|P|$)+(U<<$>>>15)|0;aw=as>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=1136+(aw<<2)|0;c[ab+(W+28)>>2]=aw;c[ab+(W+20)>>2]=0;c[ab+(W+16)>>2]=0;X=c[209]|0;Q=1<>2]=V;c[ab+(W+24)>>2]=m;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}if((aw|0)==31){ax=0}else{ax=25-(aw>>>1)|0}Q=as<>2]|0;while(1){if((c[X+4>>2]&-8|0)==(as|0)){break}ay=X+16+(Q>>>31<<2)|0;m=c[ay>>2]|0;if((m|0)==0){T=407;break}else{Q=Q<<1;X=m}}if((T|0)==407){if(ay>>>0<(c[212]|0)>>>0){au();return 0}else{c[ay>>2]=V;c[ab+(W+24)>>2]=X;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}}Q=X+8|0;m=c[Q>>2]|0;$=c[212]|0;if(X>>>0<$>>>0){au();return 0}if(m>>>0<$>>>0){au();return 0}else{c[m+12>>2]=V;c[Q>>2]=V;c[ab+(W+8)>>2]=m;c[ab+(W+12)>>2]=X;c[ab+(W+24)>>2]=0;break}}}while(0);n=ab+(ak|8)|0;return n|0}}while(0);Y=ad;W=1280;while(1){az=c[W>>2]|0;if(az>>>0<=Y>>>0){aA=c[W+4>>2]|0;aB=az+aA|0;if(aB>>>0>Y>>>0){break}}W=c[W+8>>2]|0}W=az+(aA-39)|0;if((W&7|0)==0){aC=0}else{aC=-W&7}W=az+(aA-47+aC)|0;ac=W>>>0<(ad+16|0)>>>0?Y:W;W=ac+8|0;_=ab+8|0;if((_&7|0)==0){aD=0}else{aD=-_&7}_=aa-40-aD|0;c[214]=ab+aD;c[211]=_;c[ab+(aD+4)>>2]=_|1;c[ab+(aa-36)>>2]=40;c[215]=c[204];c[ac+4>>2]=27;c[W>>2]=c[320];c[W+4>>2]=c[1284>>2];c[W+8>>2]=c[1288>>2];c[W+12>>2]=c[1292>>2];c[320]=ab;c[321]=aa;c[323]=0;c[322]=W;W=ac+28|0;c[W>>2]=7;if((ac+32|0)>>>0>>0){_=W;while(1){W=_+4|0;c[W>>2]=7;if((_+8|0)>>>0>>0){_=W}else{break}}}if((ac|0)==(Y|0)){break}_=ac-ad|0;W=Y+(_+4)|0;c[W>>2]=c[W>>2]&-2;c[ad+4>>2]=_|1;c[Y+_>>2]=_;W=_>>>3;if(_>>>0<256){K=W<<1;Z=872+(K<<2)|0;S=c[208]|0;m=1<>2]|0;if(Q>>>0>=(c[212]|0)>>>0){aE=Q;aF=W;break}au();return 0}}while(0);c[aF>>2]=ad;c[aE+12>>2]=ad;c[ad+8>>2]=aE;c[ad+12>>2]=Z;break}K=ad;m=_>>>8;do{if((m|0)==0){aG=0}else{if(_>>>0>16777215){aG=31;break}S=(m+1048320|0)>>>16&8;Y=m<>>16&4;W=Y<>>16&2;Q=14-(ac|S|Y)+(W<>>15)|0;aG=_>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=1136+(aG<<2)|0;c[ad+28>>2]=aG;c[ad+20>>2]=0;c[ad+16>>2]=0;Z=c[209]|0;Q=1<>2]=K;c[ad+24>>2]=m;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}if((aG|0)==31){aH=0}else{aH=25-(aG>>>1)|0}Q=_<>2]|0;while(1){if((c[Z+4>>2]&-8|0)==(_|0)){break}aI=Z+16+(Q>>>31<<2)|0;m=c[aI>>2]|0;if((m|0)==0){T=442;break}else{Q=Q<<1;Z=m}}if((T|0)==442){if(aI>>>0<(c[212]|0)>>>0){au();return 0}else{c[aI>>2]=K;c[ad+24>>2]=Z;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}}Q=Z+8|0;_=c[Q>>2]|0;m=c[212]|0;if(Z>>>0>>0){au();return 0}if(_>>>0>>0){au();return 0}else{c[_+12>>2]=K;c[Q>>2]=K;c[ad+8>>2]=_;c[ad+12>>2]=Z;c[ad+24>>2]=0;break}}}while(0);ad=c[211]|0;if(ad>>>0<=o>>>0){break}_=ad-o|0;c[211]=_;ad=c[214]|0;Q=ad;c[214]=Q+o;c[Q+(o+4)>>2]=_|1;c[ad+4>>2]=o|3;n=ad+8|0;return n|0}}while(0);c[(aX()|0)>>2]=12;n=0;return n|0}function bM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;if((a|0)==0){return}b=a-8|0;d=b;e=c[212]|0;if(b>>>0>>0){au()}f=c[a-4>>2]|0;g=f&3;if((g|0)==1){au()}h=f&-8;i=a+(h-8)|0;j=i;L672:do{if((f&1|0)==0){k=c[b>>2]|0;if((g|0)==0){return}l=-8-k|0;m=a+l|0;n=m;o=k+h|0;if(m>>>0>>0){au()}if((n|0)==(c[213]|0)){p=a+(h-4)|0;if((c[p>>2]&3|0)!=3){q=n;r=o;break}c[210]=o;c[p>>2]=c[p>>2]&-2;c[a+(l+4)>>2]=o|1;c[i>>2]=o;return}p=k>>>3;if(k>>>0<256){k=c[a+(l+8)>>2]|0;s=c[a+(l+12)>>2]|0;t=872+(p<<1<<2)|0;do{if((k|0)!=(t|0)){if(k>>>0>>0){au()}if((c[k+12>>2]|0)==(n|0)){break}au()}}while(0);if((s|0)==(k|0)){c[208]=c[208]&~(1<>>0>>0){au()}v=s+8|0;if((c[v>>2]|0)==(n|0)){u=v;break}au()}}while(0);c[k+12>>2]=s;c[u>>2]=k;q=n;r=o;break}t=m;p=c[a+(l+24)>>2]|0;v=c[a+(l+12)>>2]|0;do{if((v|0)==(t|0)){w=a+(l+20)|0;x=c[w>>2]|0;if((x|0)==0){y=a+(l+16)|0;z=c[y>>2]|0;if((z|0)==0){A=0;break}else{B=z;C=y}}else{B=x;C=w}while(1){w=B+20|0;x=c[w>>2]|0;if((x|0)!=0){B=x;C=w;continue}w=B+16|0;x=c[w>>2]|0;if((x|0)==0){break}else{B=x;C=w}}if(C>>>0>>0){au()}else{c[C>>2]=0;A=B;break}}else{w=c[a+(l+8)>>2]|0;if(w>>>0>>0){au()}x=w+12|0;if((c[x>>2]|0)!=(t|0)){au()}y=v+8|0;if((c[y>>2]|0)==(t|0)){c[x>>2]=v;c[y>>2]=w;A=v;break}else{au()}}}while(0);if((p|0)==0){q=n;r=o;break}v=a+(l+28)|0;m=1136+(c[v>>2]<<2)|0;do{if((t|0)==(c[m>>2]|0)){c[m>>2]=A;if((A|0)!=0){break}c[209]=c[209]&~(1<>2]);q=n;r=o;break L672}else{if(p>>>0<(c[212]|0)>>>0){au()}k=p+16|0;if((c[k>>2]|0)==(t|0)){c[k>>2]=A}else{c[p+20>>2]=A}if((A|0)==0){q=n;r=o;break L672}}}while(0);if(A>>>0<(c[212]|0)>>>0){au()}c[A+24>>2]=p;t=c[a+(l+16)>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[212]|0)>>>0){au()}else{c[A+16>>2]=t;c[t+24>>2]=A;break}}}while(0);t=c[a+(l+20)>>2]|0;if((t|0)==0){q=n;r=o;break}if(t>>>0<(c[212]|0)>>>0){au()}else{c[A+20>>2]=t;c[t+24>>2]=A;q=n;r=o;break}}else{q=d;r=h}}while(0);d=q;if(d>>>0>=i>>>0){au()}A=a+(h-4)|0;e=c[A>>2]|0;if((e&1|0)==0){au()}do{if((e&2|0)==0){if((j|0)==(c[214]|0)){B=(c[211]|0)+r|0;c[211]=B;c[214]=q;c[q+4>>2]=B|1;if((q|0)==(c[213]|0)){c[213]=0;c[210]=0}if(B>>>0<=(c[215]|0)>>>0){return}bS(0)|0;return}if((j|0)==(c[213]|0)){B=(c[210]|0)+r|0;c[210]=B;c[213]=q;c[q+4>>2]=B|1;c[d+B>>2]=B;return}B=(e&-8)+r|0;C=e>>>3;L777:do{if(e>>>0<256){u=c[a+h>>2]|0;g=c[a+(h|4)>>2]|0;b=872+(C<<1<<2)|0;do{if((u|0)!=(b|0)){if(u>>>0<(c[212]|0)>>>0){au()}if((c[u+12>>2]|0)==(j|0)){break}au()}}while(0);if((g|0)==(u|0)){c[208]=c[208]&~(1<>>0<(c[212]|0)>>>0){au()}f=g+8|0;if((c[f>>2]|0)==(j|0)){D=f;break}au()}}while(0);c[u+12>>2]=g;c[D>>2]=u}else{b=i;f=c[a+(h+16)>>2]|0;t=c[a+(h|4)>>2]|0;do{if((t|0)==(b|0)){p=a+(h+12)|0;v=c[p>>2]|0;if((v|0)==0){m=a+(h+8)|0;k=c[m>>2]|0;if((k|0)==0){E=0;break}else{F=k;G=m}}else{F=v;G=p}while(1){p=F+20|0;v=c[p>>2]|0;if((v|0)!=0){F=v;G=p;continue}p=F+16|0;v=c[p>>2]|0;if((v|0)==0){break}else{F=v;G=p}}if(G>>>0<(c[212]|0)>>>0){au()}else{c[G>>2]=0;E=F;break}}else{p=c[a+h>>2]|0;if(p>>>0<(c[212]|0)>>>0){au()}v=p+12|0;if((c[v>>2]|0)!=(b|0)){au()}m=t+8|0;if((c[m>>2]|0)==(b|0)){c[v>>2]=t;c[m>>2]=p;E=t;break}else{au()}}}while(0);if((f|0)==0){break}t=a+(h+20)|0;u=1136+(c[t>>2]<<2)|0;do{if((b|0)==(c[u>>2]|0)){c[u>>2]=E;if((E|0)!=0){break}c[209]=c[209]&~(1<>2]);break L777}else{if(f>>>0<(c[212]|0)>>>0){au()}g=f+16|0;if((c[g>>2]|0)==(b|0)){c[g>>2]=E}else{c[f+20>>2]=E}if((E|0)==0){break L777}}}while(0);if(E>>>0<(c[212]|0)>>>0){au()}c[E+24>>2]=f;b=c[a+(h+8)>>2]|0;do{if((b|0)!=0){if(b>>>0<(c[212]|0)>>>0){au()}else{c[E+16>>2]=b;c[b+24>>2]=E;break}}}while(0);b=c[a+(h+12)>>2]|0;if((b|0)==0){break}if(b>>>0<(c[212]|0)>>>0){au()}else{c[E+20>>2]=b;c[b+24>>2]=E;break}}}while(0);c[q+4>>2]=B|1;c[d+B>>2]=B;if((q|0)!=(c[213]|0)){H=B;break}c[210]=B;return}else{c[A>>2]=e&-2;c[q+4>>2]=r|1;c[d+r>>2]=r;H=r}}while(0);r=H>>>3;if(H>>>0<256){d=r<<1;e=872+(d<<2)|0;A=c[208]|0;E=1<>2]|0;if(h>>>0>=(c[212]|0)>>>0){I=h;J=r;break}au()}}while(0);c[J>>2]=q;c[I+12>>2]=q;c[q+8>>2]=I;c[q+12>>2]=e;return}e=q;I=H>>>8;do{if((I|0)==0){K=0}else{if(H>>>0>16777215){K=31;break}J=(I+1048320|0)>>>16&8;d=I<>>16&4;A=d<>>16&2;r=14-(E|J|d)+(A<>>15)|0;K=H>>>((r+7|0)>>>0)&1|r<<1}}while(0);I=1136+(K<<2)|0;c[q+28>>2]=K;c[q+20>>2]=0;c[q+16>>2]=0;r=c[209]|0;d=1<>2]=e;c[q+24>>2]=I;c[q+12>>2]=q;c[q+8>>2]=q}else{if((K|0)==31){L=0}else{L=25-(K>>>1)|0}A=H<>2]|0;while(1){if((c[J+4>>2]&-8|0)==(H|0)){break}M=J+16+(A>>>31<<2)|0;E=c[M>>2]|0;if((E|0)==0){N=621;break}else{A=A<<1;J=E}}if((N|0)==621){if(M>>>0<(c[212]|0)>>>0){au()}else{c[M>>2]=e;c[q+24>>2]=J;c[q+12>>2]=q;c[q+8>>2]=q;break}}A=J+8|0;B=c[A>>2]|0;E=c[212]|0;if(J>>>0>>0){au()}if(B>>>0>>0){au()}else{c[B+12>>2]=e;c[A>>2]=e;c[q+8>>2]=B;c[q+12>>2]=J;c[q+24>>2]=0;break}}}while(0);q=(c[216]|0)-1|0;c[216]=q;if((q|0)==0){O=1288}else{return}while(1){q=c[O>>2]|0;if((q|0)==0){break}else{O=q+8|0}}c[216]=-1;return}function bN(a,b){a=a|0;b=b|0;var d=0,e=0;do{if((a|0)==0){d=0}else{e=ad(b,a)|0;if((b|a)>>>0<=65535){d=e;break}d=((e>>>0)/(a>>>0)|0|0)==(b|0)?e:-1}}while(0);b=bL(d)|0;if((b|0)==0){return b|0}if((c[b-4>>2]&3|0)==0){return b|0}cL(b|0,0,d|0);return b|0}function bO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((a|0)==0){d=bL(b)|0;return d|0}if(b>>>0>4294967231){c[(aX()|0)>>2]=12;d=0;return d|0}if(b>>>0<11){e=16}else{e=b+11&-8}f=bT(a-8|0,e)|0;if((f|0)!=0){d=f+8|0;return d|0}f=bL(b)|0;if((f|0)==0){d=0;return d|0}e=c[a-4>>2]|0;g=(e&-8)-((e&3|0)==0?8:4)|0;e=g>>>0>>0?g:b;cK(f|0,a|0,e)|0;bM(a);d=f;return d|0}function bP(a,b){a=a|0;b=b|0;var d=0;if((a|0)==0){return 0}if(b>>>0>4294967231){c[(aX()|0)>>2]=12;return 0}if(b>>>0<11){d=16}else{d=b+11&-8}b=a-8|0;return((bT(b,d)|0)==(b|0)?a:0)|0}function bQ(a,b){a=a|0;b=b|0;var c=0;if(a>>>0<9){c=bL(b)|0;return c|0}else{c=bR(a,b)|0;return c|0}return 0}function bR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a>>>0<16?16:a;if((d-1&d|0)==0){e=d}else{a=16;while(1){if(a>>>0>>0){a=a<<1}else{e=a;break}}}if((-64-e|0)>>>0<=b>>>0){c[(aX()|0)>>2]=12;f=0;return f|0}if(b>>>0<11){g=16}else{g=b+11&-8}b=bL(e+12+g|0)|0;if((b|0)==0){f=0;return f|0}a=b-8|0;d=a;h=e-1|0;do{if((b&h|0)==0){i=d}else{j=b+h&-e;k=j-8|0;l=a;if((k-l|0)>>>0>15){m=k}else{m=j+(e-8)|0}j=m;k=m-l|0;l=b-4|0;n=c[l>>2]|0;o=(n&-8)-k|0;if((n&3|0)==0){c[m>>2]=(c[a>>2]|0)+k;c[m+4>>2]=o;i=j;break}else{n=m+4|0;c[n>>2]=o|c[n>>2]&1|2;n=m+(o+4)|0;c[n>>2]=c[n>>2]|1;c[l>>2]=k|c[l>>2]&1|2;l=b+(k-4)|0;c[l>>2]=c[l>>2]|1;b9(d,k);i=j;break}}}while(0);d=i+4|0;b=c[d>>2]|0;do{if((b&3|0)!=0){m=b&-8;if(m>>>0<=(g+16|0)>>>0){break}a=m-g|0;e=i;c[d>>2]=g|b&1|2;c[e+(g|4)>>2]=a|3;h=e+(m|4)|0;c[h>>2]=c[h>>2]|1;b9(e+g|0,a)}}while(0);f=i+8|0;return f|0}function bS(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);if(a>>>0>=4294967232){d=0;return d|0}b=c[214]|0;if((b|0)==0){d=0;return d|0}e=c[211]|0;do{if(e>>>0>(a+40|0)>>>0){f=c[202]|0;g=ad((((-40-a-1+e+f|0)>>>0)/(f>>>0)|0)-1|0,f)|0;h=b;i=1280;while(1){j=c[i>>2]|0;if(j>>>0<=h>>>0){if((j+(c[i+4>>2]|0)|0)>>>0>h>>>0){k=i;break}}j=c[i+8>>2]|0;if((j|0)==0){k=0;break}else{i=j}}if((c[k+12>>2]&8|0)!=0){break}i=aV(0)|0;h=k+4|0;if((i|0)!=((c[k>>2]|0)+(c[h>>2]|0)|0)){break}j=aV(-(g>>>0>2147483646?-2147483648-f|0:g)|0)|0;l=aV(0)|0;if(!((j|0)!=-1&l>>>0>>0)){break}j=i-l|0;if((i|0)==(l|0)){break}c[h>>2]=(c[h>>2]|0)-j;c[316]=(c[316]|0)-j;h=c[214]|0;m=(c[211]|0)-j|0;j=h;n=h+8|0;if((n&7|0)==0){o=0}else{o=-n&7}n=m-o|0;c[214]=j+o;c[211]=n;c[j+(o+4)>>2]=n|1;c[j+(m+4)>>2]=40;c[215]=c[204];d=(i|0)!=(l|0)|0;return d|0}}while(0);if((c[211]|0)>>>0<=(c[215]|0)>>>0){d=0;return d|0}c[215]=-1;d=0;return d|0}function bT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a;h=g+f|0;i=h;j=c[212]|0;if(g>>>0>>0){au();return 0}k=e&3;if(!((k|0)!=1&g>>>0>>0)){au();return 0}l=g+(f|4)|0;m=c[l>>2]|0;if((m&1|0)==0){au();return 0}if((k|0)==0){if(b>>>0<256){n=0;return n|0}do{if(f>>>0>=(b+4|0)>>>0){if((f-b|0)>>>0>c[202]<<1>>>0){break}else{n=a}return n|0}}while(0);n=0;return n|0}if(f>>>0>=b>>>0){k=f-b|0;if(k>>>0<=15){n=a;return n|0}c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=k|3;c[l>>2]=c[l>>2]|1;b9(g+b|0,k);n=a;return n|0}if((i|0)==(c[214]|0)){k=(c[211]|0)+f|0;if(k>>>0<=b>>>0){n=0;return n|0}l=k-b|0;c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=l|1;c[214]=g+b;c[211]=l;n=a;return n|0}if((i|0)==(c[213]|0)){l=(c[210]|0)+f|0;if(l>>>0>>0){n=0;return n|0}k=l-b|0;if(k>>>0>15){c[d>>2]=e&1|b|2;c[g+(b+4)>>2]=k|1;c[g+l>>2]=k;o=g+(l+4)|0;c[o>>2]=c[o>>2]&-2;p=g+b|0;q=k}else{c[d>>2]=e&1|l|2;e=g+(l+4)|0;c[e>>2]=c[e>>2]|1;p=0;q=0}c[210]=q;c[213]=p;n=a;return n|0}if((m&2|0)!=0){n=0;return n|0}p=(m&-8)+f|0;if(p>>>0>>0){n=0;return n|0}q=p-b|0;e=m>>>3;L1056:do{if(m>>>0<256){l=c[g+(f+8)>>2]|0;k=c[g+(f+12)>>2]|0;o=872+(e<<1<<2)|0;do{if((l|0)!=(o|0)){if(l>>>0>>0){au();return 0}if((c[l+12>>2]|0)==(i|0)){break}au();return 0}}while(0);if((k|0)==(l|0)){c[208]=c[208]&~(1<>>0>>0){au();return 0}s=k+8|0;if((c[s>>2]|0)==(i|0)){r=s;break}au();return 0}}while(0);c[l+12>>2]=k;c[r>>2]=l}else{o=h;s=c[g+(f+24)>>2]|0;t=c[g+(f+12)>>2]|0;do{if((t|0)==(o|0)){u=g+(f+20)|0;v=c[u>>2]|0;if((v|0)==0){w=g+(f+16)|0;x=c[w>>2]|0;if((x|0)==0){y=0;break}else{z=x;A=w}}else{z=v;A=u}while(1){u=z+20|0;v=c[u>>2]|0;if((v|0)!=0){z=v;A=u;continue}u=z+16|0;v=c[u>>2]|0;if((v|0)==0){break}else{z=v;A=u}}if(A>>>0>>0){au();return 0}else{c[A>>2]=0;y=z;break}}else{u=c[g+(f+8)>>2]|0;if(u>>>0>>0){au();return 0}v=u+12|0;if((c[v>>2]|0)!=(o|0)){au();return 0}w=t+8|0;if((c[w>>2]|0)==(o|0)){c[v>>2]=t;c[w>>2]=u;y=t;break}else{au();return 0}}}while(0);if((s|0)==0){break}t=g+(f+28)|0;l=1136+(c[t>>2]<<2)|0;do{if((o|0)==(c[l>>2]|0)){c[l>>2]=y;if((y|0)!=0){break}c[209]=c[209]&~(1<>2]);break L1056}else{if(s>>>0<(c[212]|0)>>>0){au();return 0}k=s+16|0;if((c[k>>2]|0)==(o|0)){c[k>>2]=y}else{c[s+20>>2]=y}if((y|0)==0){break L1056}}}while(0);if(y>>>0<(c[212]|0)>>>0){au();return 0}c[y+24>>2]=s;o=c[g+(f+16)>>2]|0;do{if((o|0)!=0){if(o>>>0<(c[212]|0)>>>0){au();return 0}else{c[y+16>>2]=o;c[o+24>>2]=y;break}}}while(0);o=c[g+(f+20)>>2]|0;if((o|0)==0){break}if(o>>>0<(c[212]|0)>>>0){au();return 0}else{c[y+20>>2]=o;c[o+24>>2]=y;break}}}while(0);if(q>>>0<16){c[d>>2]=p|c[d>>2]&1|2;y=g+(p|4)|0;c[y>>2]=c[y>>2]|1;n=a;return n|0}else{c[d>>2]=c[d>>2]&1|b|2;c[g+(b+4)>>2]=q|3;d=g+(p|4)|0;c[d>>2]=c[d>>2]|1;b9(g+b|0,q);n=a;return n|0}return 0}function bU(){return c[316]|0}function bV(){return c[317]|0}function bW(){var a=0;a=c[318]|0;return((a|0)==0?-1:a)|0}function bX(a){a=a|0;var b=0,d=0;if((a|0)==-1){b=0}else{d=c[202]|0;b=a-1+d&-d}c[318]=b;return b|0}function bY(a){a=a|0;var b=0,d=0,e=0;do{if((a|0)==0){b=0}else{d=c[a-4>>2]|0;e=d&3;if((e|0)==1){b=0;break}b=(d&-8)-((e|0)==0?8:4)|0}}while(0);return b|0}function bZ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;do{if((b|0)==8){e=bL(d)|0}else{f=b>>>2;if((b&3|0)!=0|(f|0)==0){g=22;return g|0}if((f+1073741823&f|0)!=0){g=22;return g|0}if((-64-b|0)>>>0>>0){g=12;return g|0}else{e=bR(b>>>0<16?16:b,d)|0;break}}}while(0);if((e|0)==0){g=12;return g|0}c[a>>2]=e;g=0;return g|0}function b_(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+8|0;f=e|0;c[f>>2]=b;b=b2(a,f,3,d)|0;i=e;return b|0}function b$(a,b,c){a=a|0;b=b|0;c=c|0;return b2(a,b,0,c)|0}function b0(a){a=a|0;var b=0,d=0,e=0;if((c[200]|0)!=0){b=c[201]|0;d=bQ(b,a)|0;return d|0}e=ar(8)|0;if((e-1&e|0)!=0){au();return 0}c[202]=e;c[201]=e;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;b=c[201]|0;d=bQ(b,a)|0;return d|0}function b1(a){a=a|0;var b=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);b=c[201]|0;return bQ(b,a-1+b&-b)|0}function b2(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;do{if((c[200]|0)==0){f=ar(8)|0;if((f-1&f|0)==0){c[202]=f;c[201]=f;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);f=(a|0)==0;do{if((e|0)==0){if(f){g=bL(0)|0;return g|0}else{h=a<<2;if(h>>>0<11){i=0;j=16;break}i=0;j=h+11&-8;break}}else{if(f){g=e}else{i=e;j=0;break}return g|0}}while(0);do{if((d&1|0)==0){if(f){k=0;l=0;break}else{m=0;n=0}while(1){e=c[b+(n<<2)>>2]|0;if(e>>>0<11){o=16}else{o=e+11&-8}e=o+m|0;h=n+1|0;if((h|0)==(a|0)){k=0;l=e;break}else{m=e;n=h}}}else{h=c[b>>2]|0;if(h>>>0<11){p=16}else{p=h+11&-8}k=p;l=ad(p,a)|0}}while(0);p=bL(j-4+l|0)|0;if((p|0)==0){g=0;return g|0}n=p-8|0;m=c[p-4>>2]&-8;if((d&2|0)!=0){cL(p|0,0,-4-j+m|0)}if((i|0)==0){c[p+(l-4)>>2]=m-l|3;q=p+l|0;r=l}else{q=i;r=m}c[q>>2]=p;p=a-1|0;L1216:do{if((p|0)==0){s=n;t=r}else{if((k|0)==0){u=n;v=r;w=0}else{a=n;m=r;i=0;while(1){l=m-k|0;c[a+4>>2]=k|3;j=a+k|0;d=i+1|0;c[q+(d<<2)>>2]=a+(k+8);if((d|0)==(p|0)){s=j;t=l;break L1216}else{a=j;m=l;i=d}}}while(1){i=c[b+(w<<2)>>2]|0;if(i>>>0<11){x=16}else{x=i+11&-8}i=v-x|0;c[u+4>>2]=x|3;m=u+x|0;a=w+1|0;c[q+(a<<2)>>2]=u+(x+8);if((a|0)==(p|0)){s=m;t=i;break}else{u=m;v=i;w=a}}}}while(0);c[s+4>>2]=t|3;g=q;return g|0}function b3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=a+(b<<2)|0;L1229:do{if((b|0)!=0){e=a;L1230:while(1){f=c[e>>2]|0;L1232:do{if((f|0)==0){g=e+4|0}else{h=f-8|0;i=h;j=f-4|0;k=c[j>>2]&-8;c[e>>2]=0;if(h>>>0<(c[212]|0)>>>0){l=935;break L1230}h=c[j>>2]|0;if((h&3|0)==1){l=936;break L1230}m=e+4|0;n=h-8&-8;do{if((m|0)!=(d|0)){if((c[m>>2]|0)!=(f+(n+8)|0)){break}o=(c[f+(n|4)>>2]&-8)+k|0;c[j>>2]=h&1|o|2;p=f+(o-4)|0;c[p>>2]=c[p>>2]|1;c[m>>2]=f;g=m;break L1232}}while(0);b9(i,k);g=m}}while(0);if((g|0)==(d|0)){break L1229}else{e=g}}if((l|0)==935){au();return 0}else if((l|0)==936){au();return 0}}}while(0);if((c[211]|0)>>>0<=(c[215]|0)>>>0){return 0}bS(0)|0;return 0}function b4(a){a=a|0;var b=0,d=0;if((c[200]|0)!=0){b=bS(a)|0;return b|0}d=ar(8)|0;if((d-1&d|0)!=0){au();return 0}c[202]=d;c[201]=d;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;b=bS(a)|0;return b|0}function b5(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au()}}}while(0);b=c[214]|0;if((b|0)==0){d=0;e=0;f=0;g=0;h=0;i=0;j=0}else{k=c[211]|0;l=k+40|0;m=1;n=l;o=l;l=1280;while(1){p=c[l>>2]|0;q=p+8|0;if((q&7|0)==0){r=0}else{r=-q&7}q=p+(c[l+4>>2]|0)|0;s=m;t=n;u=o;v=p+r|0;while(1){if(v>>>0>=q>>>0|(v|0)==(b|0)){w=s;x=t;y=u;break}z=c[v+4>>2]|0;if((z|0)==7){w=s;x=t;y=u;break}A=z&-8;B=A+u|0;if((z&3|0)==1){C=A+t|0;D=s+1|0}else{C=t;D=s}z=v+A|0;if(z>>>0

>>0){w=D;x=C;y=B;break}else{s=D;t=C;u=B;v=z}}v=c[l+8>>2]|0;if((v|0)==0){break}else{m=w;n=x;o=y;l=v}}l=c[316]|0;d=k;e=y;f=w;g=l-y|0;h=c[317]|0;i=l-x|0;j=x}c[a>>2]=e;c[a+4>>2]=f;f=a+8|0;c[f>>2]=0;c[f+4>>2]=0;c[a+16>>2]=g;c[a+20>>2]=h;c[a+24>>2]=0;c[a+28>>2]=i;c[a+32>>2]=j;c[a+36>>2]=d;return}function b6(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0;a=i;do{if((c[200]|0)==0){b=ar(8)|0;if((b-1&b|0)==0){c[202]=b;c[201]=b;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au()}}}while(0);b=c[214]|0;if((b|0)==0){d=0;e=0;f=0}else{g=c[317]|0;h=c[316]|0;j=h-40-(c[211]|0)|0;k=1280;while(1){l=c[k>>2]|0;m=l+8|0;if((m&7|0)==0){n=0}else{n=-m&7}m=l+(c[k+4>>2]|0)|0;p=j;q=l+n|0;while(1){if(q>>>0>=m>>>0|(q|0)==(b|0)){r=p;break}s=c[q+4>>2]|0;if((s|0)==7){r=p;break}t=s&-8;u=p-((s&3|0)==1?t:0)|0;s=q+t|0;if(s>>>0>>0){r=u;break}else{p=u;q=s}}q=c[k+8>>2]|0;if((q|0)==0){d=r;e=h;f=g;break}else{j=r;k=q}}}av(c[o>>2]|0,520,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;av(c[o>>2]|0,488,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;av(c[o>>2]|0,400,(y=i,i=i+8|0,c[y>>2]=d,y)|0)|0;i=a;return}function b7(a,b){a=a|0;b=b|0;var d=0,e=0;do{if((c[200]|0)==0){d=ar(8)|0;if((d-1&d|0)==0){c[202]=d;c[201]=d;c[203]=-1;c[204]=2097152;c[205]=0;c[319]=0;c[200]=(a_(0)|0)&-16^1431655768;break}else{au();return 0}}}while(0);if((a|0)==(-1|0)){c[204]=b;e=1;return e|0}else if((a|0)==(-2|0)){if((c[201]|0)>>>0>b>>>0){e=0;return e|0}if((b-1&b|0)!=0){e=0;return e|0}c[202]=b;e=1;return e|0}else if((a|0)==(-3|0)){c[203]=b;e=1;return e|0}else{e=0;return e|0}return 0}function b8(){return(F=c[328]|0,c[328]=F+0,F)|0}function b9(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;d=a;e=d+b|0;f=e;g=c[a+4>>2]|0;L1325:do{if((g&1|0)==0){h=c[a>>2]|0;if((g&3|0)==0){return}i=d+(-h|0)|0;j=i;k=h+b|0;l=c[212]|0;if(i>>>0>>0){au()}if((j|0)==(c[213]|0)){m=d+(b+4)|0;if((c[m>>2]&3|0)!=3){n=j;o=k;break}c[210]=k;c[m>>2]=c[m>>2]&-2;c[d+(4-h)>>2]=k|1;c[e>>2]=k;return}m=h>>>3;if(h>>>0<256){p=c[d+(8-h)>>2]|0;q=c[d+(12-h)>>2]|0;r=872+(m<<1<<2)|0;do{if((p|0)!=(r|0)){if(p>>>0>>0){au()}if((c[p+12>>2]|0)==(j|0)){break}au()}}while(0);if((q|0)==(p|0)){c[208]=c[208]&~(1<>>0>>0){au()}t=q+8|0;if((c[t>>2]|0)==(j|0)){s=t;break}au()}}while(0);c[p+12>>2]=q;c[s>>2]=p;n=j;o=k;break}r=i;m=c[d+(24-h)>>2]|0;t=c[d+(12-h)>>2]|0;do{if((t|0)==(r|0)){u=16-h|0;v=d+(u+4)|0;w=c[v>>2]|0;if((w|0)==0){x=d+u|0;u=c[x>>2]|0;if((u|0)==0){y=0;break}else{z=u;A=x}}else{z=w;A=v}while(1){v=z+20|0;w=c[v>>2]|0;if((w|0)!=0){z=w;A=v;continue}v=z+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{z=w;A=v}}if(A>>>0>>0){au()}else{c[A>>2]=0;y=z;break}}else{v=c[d+(8-h)>>2]|0;if(v>>>0>>0){au()}w=v+12|0;if((c[w>>2]|0)!=(r|0)){au()}x=t+8|0;if((c[x>>2]|0)==(r|0)){c[w>>2]=t;c[x>>2]=v;y=t;break}else{au()}}}while(0);if((m|0)==0){n=j;o=k;break}t=d+(28-h)|0;l=1136+(c[t>>2]<<2)|0;do{if((r|0)==(c[l>>2]|0)){c[l>>2]=y;if((y|0)!=0){break}c[209]=c[209]&~(1<>2]);n=j;o=k;break L1325}else{if(m>>>0<(c[212]|0)>>>0){au()}i=m+16|0;if((c[i>>2]|0)==(r|0)){c[i>>2]=y}else{c[m+20>>2]=y}if((y|0)==0){n=j;o=k;break L1325}}}while(0);if(y>>>0<(c[212]|0)>>>0){au()}c[y+24>>2]=m;r=16-h|0;t=c[d+r>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[212]|0)>>>0){au()}else{c[y+16>>2]=t;c[t+24>>2]=y;break}}}while(0);t=c[d+(r+4)>>2]|0;if((t|0)==0){n=j;o=k;break}if(t>>>0<(c[212]|0)>>>0){au()}else{c[y+20>>2]=t;c[t+24>>2]=y;n=j;o=k;break}}else{n=a;o=b}}while(0);a=c[212]|0;if(e>>>0>>0){au()}y=d+(b+4)|0;z=c[y>>2]|0;do{if((z&2|0)==0){if((f|0)==(c[214]|0)){A=(c[211]|0)+o|0;c[211]=A;c[214]=n;c[n+4>>2]=A|1;if((n|0)!=(c[213]|0)){return}c[213]=0;c[210]=0;return}if((f|0)==(c[213]|0)){A=(c[210]|0)+o|0;c[210]=A;c[213]=n;c[n+4>>2]=A|1;c[n+A>>2]=A;return}A=(z&-8)+o|0;s=z>>>3;L1424:do{if(z>>>0<256){g=c[d+(b+8)>>2]|0;t=c[d+(b+12)>>2]|0;h=872+(s<<1<<2)|0;do{if((g|0)!=(h|0)){if(g>>>0>>0){au()}if((c[g+12>>2]|0)==(f|0)){break}au()}}while(0);if((t|0)==(g|0)){c[208]=c[208]&~(1<>>0>>0){au()}m=t+8|0;if((c[m>>2]|0)==(f|0)){B=m;break}au()}}while(0);c[g+12>>2]=t;c[B>>2]=g}else{h=e;m=c[d+(b+24)>>2]|0;l=c[d+(b+12)>>2]|0;do{if((l|0)==(h|0)){i=d+(b+20)|0;p=c[i>>2]|0;if((p|0)==0){q=d+(b+16)|0;v=c[q>>2]|0;if((v|0)==0){C=0;break}else{D=v;E=q}}else{D=p;E=i}while(1){i=D+20|0;p=c[i>>2]|0;if((p|0)!=0){D=p;E=i;continue}i=D+16|0;p=c[i>>2]|0;if((p|0)==0){break}else{D=p;E=i}}if(E>>>0>>0){au()}else{c[E>>2]=0;C=D;break}}else{i=c[d+(b+8)>>2]|0;if(i>>>0>>0){au()}p=i+12|0;if((c[p>>2]|0)!=(h|0)){au()}q=l+8|0;if((c[q>>2]|0)==(h|0)){c[p>>2]=l;c[q>>2]=i;C=l;break}else{au()}}}while(0);if((m|0)==0){break}l=d+(b+28)|0;g=1136+(c[l>>2]<<2)|0;do{if((h|0)==(c[g>>2]|0)){c[g>>2]=C;if((C|0)!=0){break}c[209]=c[209]&~(1<>2]);break L1424}else{if(m>>>0<(c[212]|0)>>>0){au()}t=m+16|0;if((c[t>>2]|0)==(h|0)){c[t>>2]=C}else{c[m+20>>2]=C}if((C|0)==0){break L1424}}}while(0);if(C>>>0<(c[212]|0)>>>0){au()}c[C+24>>2]=m;h=c[d+(b+16)>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[212]|0)>>>0){au()}else{c[C+16>>2]=h;c[h+24>>2]=C;break}}}while(0);h=c[d+(b+20)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[212]|0)>>>0){au()}else{c[C+20>>2]=h;c[h+24>>2]=C;break}}}while(0);c[n+4>>2]=A|1;c[n+A>>2]=A;if((n|0)!=(c[213]|0)){F=A;break}c[210]=A;return}else{c[y>>2]=z&-2;c[n+4>>2]=o|1;c[n+o>>2]=o;F=o}}while(0);o=F>>>3;if(F>>>0<256){z=o<<1;y=872+(z<<2)|0;C=c[208]|0;b=1<>2]|0;if(d>>>0>=(c[212]|0)>>>0){G=d;H=o;break}au()}}while(0);c[H>>2]=n;c[G+12>>2]=n;c[n+8>>2]=G;c[n+12>>2]=y;return}y=n;G=F>>>8;do{if((G|0)==0){I=0}else{if(F>>>0>16777215){I=31;break}H=(G+1048320|0)>>>16&8;z=G<>>16&4;C=z<>>16&2;o=14-(b|H|z)+(C<>>15)|0;I=F>>>((o+7|0)>>>0)&1|o<<1}}while(0);G=1136+(I<<2)|0;c[n+28>>2]=I;c[n+20>>2]=0;c[n+16>>2]=0;o=c[209]|0;z=1<>2]=y;c[n+24>>2]=G;c[n+12>>2]=n;c[n+8>>2]=n;return}if((I|0)==31){J=0}else{J=25-(I>>>1)|0}I=F<>2]|0;while(1){if((c[J+4>>2]&-8|0)==(F|0)){break}K=J+16+(I>>>31<<2)|0;G=c[K>>2]|0;if((G|0)==0){L=1120;break}else{I=I<<1;J=G}}if((L|0)==1120){if(K>>>0<(c[212]|0)>>>0){au()}c[K>>2]=y;c[n+24>>2]=J;c[n+12>>2]=n;c[n+8>>2]=n;return}K=J+8|0;L=c[K>>2]|0;I=c[212]|0;if(J>>>0>>0){au()}if(L>>>0>>0){au()}c[L+12>>2]=y;c[K>>2]=y;c[n+8>>2]=L;c[n+12>>2]=J;c[n+24>>2]=0;return}function ca(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;while(1){d=bL(b)|0;if((d|0)!=0){e=1164;break}a=(F=c[328]|0,c[328]=F+0,F);if((a|0)==0){break}a5[a&1]()}if((e|0)==1164){return d|0}d=aJ(4)|0;c[d>>2]=560;as(d|0,688,6);return 0}function cb(a,b){a=a|0;b=b|0;return ca(a)|0}function cc(a){a=a|0;return}function cd(a){a=a|0;return 360|0}function ce(a){a=a|0;return 448|0}function cf(a){a=a|0;return(F=c[328]|0,c[328]=a,F)|0}function cg(a){a=a|0;c[a>>2]=560;return}function ch(a){a=a|0;c[a>>2]=592;return}function ci(a){a=a|0;if((a|0)!=0){bM(a)}return}function cj(a,b){a=a|0;b=b|0;ci(a);return}function ck(a){a=a|0;ci(a);return}function cl(a,b){a=a|0;b=b|0;ck(a);return}function cm(a){a=a|0;ci(a);return}function cn(a){a=a|0;ci(a);return}function co(a,b,c){a=a|0;b=b|0;c=c|0;return cp(a,b,c,0,0,0)|0}function cp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ab=0,ac=0,ad=0;j=i;if((e|0)==0){k=-1;i=j;return k|0}l=c[44]|0;if((l|0)==0){c[196]=1;c[44]=1;m=1;n=1;o=1190}else{p=c[196]|0;q=c[74]|0;if((q|0)==-1|(p|0)!=0){m=p;n=l;o=1190}else{r=q;s=p;t=l}}if((o|0)==1190){l=(aP(344)|0)!=0|0;c[74]=l;r=l;s=m;t=n}n=a[e]|0;if(n<<24>>24==45){u=h|2;o=1194}else{m=(r|0)!=0|n<<24>>24==43?h&-2:h;if(n<<24>>24==43){u=m;o=1194}else{v=e;w=m}}if((o|0)==1194){v=e+1|0;w=u}c[198]=0;if((s|0)==0){x=t;o=1198}else{c[50]=-1;c[48]=-1;z=t;A=s;o=1197}while(1){if((o|0)==1197){o=0;if((A|0)==0){x=z;o=1198;continue}else{B=z}}else if((o|0)==1198){o=0;s=c[40]|0;if((a[s]|0)==0){B=x}else{C=s;D=x;break}}c[196]=0;if((B|0)>=(b|0)){o=1200;break}E=d+(B<<2)|0;F=c[E>>2]|0;c[40]=F;if((a[F]|0)==45){G=F+1|0;H=a[G]|0;if(H<<24>>24!=0){o=1232;break}if((aB(v|0,45)|0)!=0){o=1232;break}}c[40]=824;if((w&2|0)!=0){o=1217;break}if((w&1|0)==0){k=-1;o=1298;break}s=c[48]|0;do{if((s|0)==-1){c[48]=B;I=B;J=0}else{t=c[50]|0;if((t|0)==-1){I=B;J=0;break}u=t-s|0;e=B-t|0;m=(u|0)%(e|0)|0;if((m|0)==0){K=e}else{n=e;h=m;while(1){m=(n|0)%(h|0)|0;if((m|0)==0){K=h;break}else{n=h;h=m}}}h=(B-s|0)/(K|0)|0;do{if((K|0)>0){n=-u|0;if((h|0)>0){L=0}else{M=B;N=t;O=s;P=0;break}do{m=L+t|0;r=d+(m<<2)|0;l=0;p=m;m=c[r>>2]|0;while(1){q=((p|0)<(t|0)?e:n)+p|0;Q=d+(q<<2)|0;R=c[Q>>2]|0;c[Q>>2]=m;c[r>>2]=R;Q=l+1|0;if((Q|0)<(h|0)){l=Q;p=q;m=R}else{break}}L=L+1|0}while((L|0)<(K|0));M=c[44]|0;N=c[50]|0;O=c[48]|0;P=c[196]|0}else{M=B;N=t;O=s;P=0}}while(0);c[48]=M-N+O;c[50]=-1;I=M;J=P}}while(0);s=I+1|0;c[44]=s;z=s;A=J;o=1197}do{if((o|0)==1298){i=j;return k|0}else if((o|0)==1232){J=c[48]|0;A=c[50]|0;if((J|0)!=-1&(A|0)==-1){c[50]=B;S=a[G]|0;T=B}else{S=H;T=A}if(S<<24>>24==0){C=F;D=B;break}c[40]=G;if((a[G]|0)!=45){C=G;D=B;break}if((a[F+2|0]|0)!=0){C=G;D=B;break}A=B+1|0;c[44]=A;c[40]=824;if((T|0)!=-1){z=T-J|0;I=A-T|0;P=(z|0)%(I|0)|0;if((P|0)==0){U=I}else{M=I;O=P;while(1){P=(M|0)%(O|0)|0;if((P|0)==0){U=O;break}else{M=O;O=P}}}O=(A-J|0)/(U|0)|0;do{if((U|0)>0){M=-z|0;if((O|0)>0){V=0}else{W=T;X=J;Y=A;break}do{P=V+T|0;N=d+(P<<2)|0;K=0;L=P;P=c[N>>2]|0;while(1){x=((L|0)<(T|0)?I:M)+L|0;s=d+(x<<2)|0;t=c[s>>2]|0;c[s>>2]=P;c[N>>2]=t;s=K+1|0;if((s|0)<(O|0)){K=s;L=x;P=t}else{break}}V=V+1|0}while((V|0)<(U|0));W=c[50]|0;X=c[48]|0;Y=c[44]|0}else{W=T;X=J;Y=A}}while(0);c[44]=X-W+Y}c[50]=-1;c[48]=-1;k=-1;i=j;return k|0}else if((o|0)==1200){c[40]=824;A=c[50]|0;J=c[48]|0;do{if((A|0)==-1){if((J|0)==-1){break}c[44]=J}else{O=A-J|0;I=B-A|0;z=(O|0)%(I|0)|0;if((z|0)==0){Z=I}else{M=I;P=z;while(1){z=(M|0)%(P|0)|0;if((z|0)==0){Z=P;break}else{M=P;P=z}}}P=(B-J|0)/(Z|0)|0;do{if((Z|0)>0){M=-O|0;if((P|0)>0){_=0}else{$=A;aa=J;ab=B;break}do{z=_+A|0;L=d+(z<<2)|0;K=0;N=z;z=c[L>>2]|0;while(1){t=((N|0)<(A|0)?I:M)+N|0;x=d+(t<<2)|0;s=c[x>>2]|0;c[x>>2]=z;c[L>>2]=s;x=K+1|0;if((x|0)<(P|0)){K=x;N=t;z=s}else{break}}_=_+1|0}while((_|0)<(Z|0));$=c[50]|0;aa=c[48]|0;ab=c[44]|0}else{$=A;aa=J;ab=B}}while(0);c[44]=aa-$+ab}}while(0);c[50]=-1;c[48]=-1;k=-1;i=j;return k|0}else if((o|0)==1217){c[44]=B+1;c[198]=c[E>>2];k=1;i=j;return k|0}}while(0);E=(f|0)!=0;L1659:do{if(E){if((C|0)==(c[d+(D<<2)>>2]|0)){ac=C;break}B=a[C]|0;do{if(B<<24>>24==45){c[40]=C+1;ad=0}else{if((w&4|0)==0){ac=C;break L1659}if(B<<24>>24==58){ad=0;break}ad=(aB(v|0,B<<24>>24|0)|0)!=0|0}}while(0);B=cv(d,v,f,g,ad)|0;if((B|0)==-1){ac=c[40]|0;break}c[40]=824;k=B;i=j;return k|0}else{ac=C}}while(0);C=ac+1|0;c[40]=C;ad=a[ac]|0;ac=ad<<24>>24;if((ad<<24>>24|0)==45){if((a[C]|0)==0){o=1260}}else if((ad<<24>>24|0)==58){o=1263}else{o=1260}do{if((o|0)==1260){w=aB(v|0,ac|0)|0;if((w|0)==0){if(ad<<24>>24!=45){o=1263;break}if((a[C]|0)==0){k=-1}else{break}i=j;return k|0}D=a[w+1|0]|0;if(E&ad<<24>>24==87&D<<24>>24==59){do{if((a[C]|0)==0){B=(c[44]|0)+1|0;c[44]=B;if((B|0)<(b|0)){c[40]=c[d+(B<<2)>>2];break}c[40]=824;do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(48,(y=i,i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=(a[v]|0)==58?58:63;i=j;return k|0}}while(0);B=cv(d,v,f,g,0)|0;c[40]=824;k=B;i=j;return k|0}if(D<<24>>24!=58){if((a[C]|0)!=0){k=ac;i=j;return k|0}c[44]=(c[44]|0)+1;k=ac;i=j;return k|0}c[198]=0;do{if((a[C]|0)==0){if((a[w+2|0]|0)==58){break}B=(c[44]|0)+1|0;c[44]=B;if((B|0)<(b|0)){c[198]=c[d+(B<<2)>>2];break}c[40]=824;do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(48,(y=i,i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=(a[v]|0)==58?58:63;i=j;return k|0}else{c[198]=C}}while(0);c[40]=824;c[44]=(c[44]|0)+1;k=ac;i=j;return k|0}}while(0);do{if((o|0)==1263){if((a[C]|0)!=0){break}c[44]=(c[44]|0)+1}}while(0);do{if((c[46]|0)!=0){if((a[v]|0)==58){break}cx(272,(y=i,i=i+8|0,c[y>>2]=ac,y)|0)}}while(0);c[42]=ac;k=63; +i=j;return k|0}function cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return cp(a,b,c,d,e,1)|0}function cr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return cp(a,b,c,d,e,5)|0}function cs(a){a=a|0;return ca(a)|0}function ct(a,b){a=a|0;b=b|0;return cs(a)|0}function cu(){var a=0;a=aJ(4)|0;c[a>>2]=560;as(a|0,688,6)}function cv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,z=0;h=i;j=c[40]|0;k=c[44]|0;l=k+1|0;c[44]=l;m=aB(j|0,61)|0;if((m|0)==0){n=cM(j|0)|0;o=0}else{n=m-j|0;o=m+1|0}m=c[e>>2]|0;L1739:do{if((m|0)!=0){L1741:do{if((g|0)!=0&(n|0)==1){p=0;q=m;while(1){if((a[j]|0)==(a[q]|0)){if((cM(q|0)|0)==1){r=p;break L1741}}p=p+1|0;q=c[e+(p<<4)>>2]|0;if((q|0)==0){break L1739}}}else{q=0;p=-1;s=m;while(1){if((ap(j|0,s|0,n|0)|0)==0){if((cM(s|0)|0)==(n|0)){r=q;break L1741}if((p|0)==-1){t=q}else{break}}else{t=p}u=q+1|0;v=c[e+(u<<4)>>2]|0;if((v|0)==0){r=t;break L1741}else{q=u;p=t;s=v}}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(304,(y=i,i=i+16|0,c[y>>2]=n,c[y+8>>2]=j,y)|0)}}while(0);c[42]=0;w=63;i=h;return w|0}}while(0);if((r|0)==-1){break}s=e+(r<<4)+4|0;p=c[s>>2]|0;q=(o|0)==0;if(!((p|0)!=0|q)){do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(208,(y=i,i=i+16|0,c[y>>2]=n,c[y+8>>2]=j,y)|0)}}while(0);if((c[e+(r<<4)+8>>2]|0)==0){x=c[e+(r<<4)+12>>2]|0}else{x=0}c[42]=x;w=(a[d]|0)==58?58:63;i=h;return w|0}do{if((p-1|0)>>>0<2){if(!q){c[198]=o;break}if((p|0)!=1){break}c[44]=k+2;c[198]=c[b+(l<<2)>>2]}}while(0);if(!((c[s>>2]|0)==1&(c[198]|0)==0)){if((f|0)!=0){c[f>>2]=r}p=c[e+(r<<4)+8>>2]|0;q=c[e+(r<<4)+12>>2]|0;if((p|0)==0){w=q;i=h;return w|0}c[p>>2]=q;w=0;i=h;return w|0}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(8,(y=i,i=i+8|0,c[y>>2]=j,y)|0)}}while(0);if((c[e+(r<<4)+8>>2]|0)==0){z=c[e+(r<<4)+12>>2]|0}else{z=0}c[42]=z;c[44]=(c[44]|0)-1;w=(a[d]|0)==58?58:63;i=h;return w|0}}while(0);if((g|0)!=0){c[44]=k;w=-1;i=h;return w|0}do{if((c[46]|0)!=0){if((a[d]|0)==58){break}cx(248,(y=i,i=i+8|0,c[y>>2]=j,y)|0)}}while(0);c[42]=0;w=63;i=h;return w|0}function cw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d|0;f=e;c[f>>2]=b;c[f+4>>2]=0;cy(a,e|0);i=d;return}function cx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d|0;f=e;c[f>>2]=b;c[f+4>>2]=0;cz(a,e|0);i=d;return}function cy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=c[(aX()|0)>>2]|0;f=c[r>>2]|0;av(c[o>>2]|0,432,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;if((a|0)!=0){f=c[o>>2]|0;aQ(f|0,a|0,b|0)|0;b=c[o>>2]|0;aE(472,2,1,b|0)|0}b=c[o>>2]|0;a=at(e|0)|0;av(b|0,384,(y=i,i=i+8|0,c[y>>2]=a,y)|0)|0;i=d;return}function cz(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[r>>2]|0;av(c[o>>2]|0,376,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;if((a|0)!=0){e=c[o>>2]|0;aQ(e|0,a|0,b|0)|0}aC(10,c[o>>2]|0)|0;i=d;return}function cA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0.0,R=0.0,S=0.0;e=b;while(1){f=e+1|0;if((aK(a[e]|0)|0)==0){break}else{e=f}}g=a[e]|0;if((g<<24>>24|0)==45){i=f;j=1}else if((g<<24>>24|0)==43){i=f;j=0}else{i=e;j=0}e=-1;f=0;g=i;while(1){k=a[g]|0;if(((k<<24>>24)-48|0)>>>0<10){l=e}else{if(k<<24>>24!=46|(e|0)>-1){break}else{l=f}}e=l;f=f+1|0;g=g+1|0}l=g+(-f|0)|0;i=(e|0)<0;m=((i^1)<<31>>31)+f|0;n=(m|0)>18;o=(n?-18:-m|0)+(i?f:e)|0;e=n?18:m;do{if((e|0)==0){p=b;q=0.0}else{if((e|0)>9){m=l;n=e;f=0;while(1){i=a[m]|0;r=m+1|0;if(i<<24>>24==46){s=a[r]|0;t=m+2|0}else{s=i;t=r}u=(f*10|0)-48+(s<<24>>24)|0;r=n-1|0;if((r|0)>9){m=t;n=r;f=u}else{break}}v=+(u|0)*1.0e9;w=9;x=t;y=1393}else{if((e|0)>0){v=0.0;w=e;x=l;y=1393}else{z=0.0;A=0.0}}if((y|0)==1393){f=x;n=w;m=0;while(1){r=a[f]|0;i=f+1|0;if(r<<24>>24==46){B=a[i]|0;C=f+2|0}else{B=r;C=i}D=(m*10|0)-48+(B<<24>>24)|0;i=n-1|0;if((i|0)>0){f=C;n=i;m=D}else{break}}z=+(D|0);A=v}E=A+z;do{if((k<<24>>24|0)==69|(k<<24>>24|0)==101){m=g+1|0;n=a[m]|0;if((n<<24>>24|0)==43){F=g+2|0;G=0}else if((n<<24>>24|0)==45){F=g+2|0;G=1}else{F=m;G=0}m=a[F]|0;if(((m<<24>>24)-48|0)>>>0<10){H=F;I=0;J=m}else{K=0;L=F;M=G;break}while(1){m=(I*10|0)-48+(J<<24>>24)|0;n=H+1|0;f=a[n]|0;if(((f<<24>>24)-48|0)>>>0<10){H=n;I=m;J=f}else{K=m;L=n;M=G;break}}}else{K=0;L=g;M=0}}while(0);n=o+((M|0)==0?K:-K|0)|0;m=(n|0)<0?-n|0:n;if((m|0)>511){c[(aX()|0)>>2]=34;N=1.0;O=88;P=511;y=1410}else{if((m|0)==0){Q=1.0}else{N=1.0;O=88;P=m;y=1410}}if((y|0)==1410){while(1){y=0;if((P&1|0)==0){R=N}else{R=N*+h[O>>3]}m=P>>1;if((m|0)==0){Q=R;break}else{N=R;O=O+8|0;P=m;y=1410}}}if((n|0)>-1){p=L;q=E*Q;break}else{p=L;q=E/Q;break}}}while(0);if((d|0)!=0){c[d>>2]=p}if((j|0)==0){S=q;return+S}S=-0.0-q;return+S}function cB(a,b){a=a|0;b=b|0;return+ +cA(a,b)}function cC(a,b){a=a|0;b=b|0;return+ +cA(a,b)}function cD(a,b,c){a=a|0;b=b|0;c=c|0;return+ +cA(a,b)}function cE(a,b,c){a=a|0;b=b|0;c=c|0;return+ +cA(a,b)}function cF(a){a=a|0;return+ +cA(a,0)}function cG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e|0;e=f;c[e>>2]=d;c[e+4>>2]=0;cI(a,b,f|0)}function cH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e|0;e=f;c[e>>2]=d;c[e+4>>2]=0;cJ(a,b,f|0)}function cI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[(aX()|0)>>2]|0;f=c[r>>2]|0;av(c[o>>2]|0,336,(y=i,i=i+8|0,c[y>>2]=f,y)|0)|0;if((b|0)!=0){f=c[o>>2]|0;aQ(f|0,b|0,d|0)|0;d=c[o>>2]|0;aE(480,2,1,d|0)|0}d=c[o>>2]|0;b=at(e|0)|0;av(d|0,392,(y=i,i=i+8|0,c[y>>2]=b,y)|0)|0;aH(a|0)}function cJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[r>>2]|0;av(c[o>>2]|0,440,(y=i,i=i+8|0,c[y>>2]=e,y)|0)|0;if((b|0)!=0){e=c[o>>2]|0;aQ(e|0,b|0,d|0)|0}aC(10,c[o>>2]|0)|0;aH(a|0)}function cK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function cL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+e|0;if((e|0)>=20){d=d&255;e=b&3;g=d|d<<8|d<<16|d<<24;h=f&~3;if(e){e=b+4-e|0;while((b|0)<(e|0)){a[b]=d;b=b+1|0}}while((b|0)<(h|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b]=d;b=b+1|0}}function cM(b){b=b|0;var c=0;c=b;while(a[c]|0){c=c+1|0}return c-b|0}function cN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(H=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function cO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return(H=e,a-c>>>0|0)|0}function cP(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b<>>32-c;return a<>>c;return a>>>c|(b&(1<>>c-32|0}function cR(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b>>c;return a>>>c|(b&(1<>c-32|0}function cS(b){b=b|0;var c=0;c=a[n+(b>>>24)|0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)|0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)|0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)|0]|0)+24|0}function cT(b){b=b|0;var c=0;c=a[m+(b&255)|0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)|0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)|0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)|0]|0)+24|0}function cU(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=ad(d,c)|0;f=a>>>16;a=(e>>>16)+(ad(d,f)|0)|0;d=b>>>16;b=ad(d,c)|0;return(H=(a>>>16)+(ad(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function cV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=cO(e^a,f^b,e,f)|0;b=H;a=g^e;e=h^f;f=cO((c_(i,b,cO(g^c,h^d,g,h)|0,H,0)|0)^a,H^e,a,e)|0;return(H=H,f)|0}function cW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+8|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=cO(h^a,j^b,h,j)|0;b=H;a=cO(k^d,l^e,k,l)|0;c_(m,b,a,H,g)|0;a=cO(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=H;i=f;return(H=j,a)|0}function cX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=cU(e,a)|0;f=H;return(H=(ad(b,a)|0)+(ad(d,e)|0)+f|f&0,c|0|0)|0}function cY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=c_(a,b,c,d,0)|0;return(H=H,e)|0}function cZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+8|0;g=f|0;c_(a,b,d,e,g)|0;i=f;return(H=c[g+4>>2]|0,c[g>>2]|0)|0}function c_(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;g=a;h=b;i=h;j=d;k=e;l=k;if((i|0)==0){m=(f|0)!=0;if((l|0)==0){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return(H=n,o)|0}else{if(!m){n=0;o=0;return(H=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(H=n,o)|0}}m=(l|0)==0;do{if((j|0)==0){if(m){if((f|0)!=0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return(H=n,o)|0}if((g|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return(H=n,o)|0}p=l-1|0;if((p&l|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=p&i|b&0}n=0;o=i>>>((cT(l|0)|0)>>>0);return(H=n,o)|0}p=(cS(l|0)|0)-(cS(i|0)|0)|0;if(p>>>0<=30){q=p+1|0;r=31-p|0;s=q;t=i<>>(q>>>0);u=i>>>(q>>>0);v=0;w=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(H=n,o)|0}else{if(!m){r=(cS(l|0)|0)-(cS(i|0)|0)|0;if(r>>>0<=31){q=r+1|0;p=31-r|0;x=r-31>>31;s=q;t=g>>>(q>>>0)&x|i<>>(q>>>0)&x;v=0;w=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(H=n,o)|0}p=j-1|0;if((p&j|0)!=0){x=(cS(j|0)|0)+33-(cS(i|0)|0)|0;q=64-x|0;r=32-x|0;y=r>>31;z=x-32|0;A=z>>31;s=x;t=r-1>>31&i>>>(z>>>0)|(i<>>(x>>>0))&A;u=A&i>>>(x>>>0);v=g<>>(z>>>0))&y|g<>31;break}if((f|0)!=0){c[f>>2]=p&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return(H=n,o)|0}else{p=cT(j|0)|0;n=i>>>(p>>>0)|0;o=i<<32-p|g>>>(p>>>0)|0;return(H=n,o)|0}}}while(0);if((s|0)==0){B=w;C=v;D=u;E=t;F=0;G=0}else{g=d|0|0;d=k|e&0;e=cN(g,d,-1,-1)|0;k=H;i=w;w=v;v=u;u=t;t=s;s=0;while(1){I=w>>>31|i<<1;J=s|w<<1;j=u<<1|i>>>31|0;a=u>>>31|v<<1|0;cO(e,k,j,a)|0;b=H;h=b>>31|((b|0)<0?-1:0)<<1;K=h&1;L=cO(j,a,h&g,(((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1)&d)|0;M=H;b=t-1|0;if((b|0)==0){break}else{i=I;w=J;v=M;u=L;t=b;s=K}}B=I;C=J;D=M;E=L;F=0;G=K}K=C;C=0;if((f|0)!=0){c[f>>2]=E;c[f+4>>2]=D}n=(K|0)>>>31|(B|C)<<1|(C<<1|K>>>31)&0|F;o=(K<<1|0>>>31)&-2|G;return(H=n,o)|0}function c$(a,b){a=a|0;b=b|0;a1[a&15](b|0)}function c0(a,b,c){a=a|0;b=b|0;c=c|0;a2[a&15](b|0,c|0)}function c1(a,b){a=a|0;b=b|0;return a3[a&7](b|0)|0}function c2(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a4[a&15](b|0,c|0,d|0)}function c3(a){a=a|0;a5[a&1]()}function c4(a,b,c){a=a|0;b=b|0;c=c|0;return a6[a&1](b|0,c|0)|0}function c5(a){a=a|0;ae(0)}function c6(a,b){a=a|0;b=b|0;ae(1)}function c7(a){a=a|0;ae(2);return 0}function c8(a,b,c){a=a|0;b=b|0;c=c|0;ae(3)}function c9(){ae(4)}function da(a,b){a=a|0;b=b|0;ae(5);return 0}var a1=[c5,c5,ch,c5,cn,c5,cc,c5,cg,c5,cm,c5,c5,c5,c5,c5];var a2=[c6,c6,cw,c6,cy,c6,cx,c6,cz,c6,c6,c6,c6,c6,c6,c6];var a3=[c7,c7,cd,c7,ce,c7,c7,c7];var a4=[c8,c8,cJ,c8,cI,c8,cG,c8,cH,c8,c8,c8,c8,c8,c8,c8];var a5=[c9,c9];var a6=[da,da];return{_crypto_scrypt:bu,_strlen:cM,_free:bM,_realloc:bO,_memset:cL,_malloc:bL,_memcpy:cK,_calloc:bN,runPostSets:bn,stackAlloc:a7,stackSave:a8,stackRestore:a9,setThrew:ba,setTempRet0:bd,setTempRet1:be,setTempRet2:bf,setTempRet3:bg,setTempRet4:bh,setTempRet5:bi,setTempRet6:bj,setTempRet7:bk,setTempRet8:bl,setTempRet9:bm,dynCall_vi:c$,dynCall_vii:c0,dynCall_ii:c1,dynCall_viii:c2,dynCall_v:c3,dynCall_iii:c4}}({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:wa,assert:w,asmPrintInt:function(a,b){s.print("int "+a+","+b)},asmPrintFloat:function(a,b){s.print("float "+a+","+b)},min:Xc,invoke_vi:function(a,b){try{s.dynCall_vi(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&g(c),V.setThrew(1,0)}},invoke_vii:function(a,b,c){try{s.dynCall_vii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&g(d),V.setThrew(1,0)}},invoke_ii:function(a,b){try{return s.dynCall_ii(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&g(c),V.setThrew(1,0)}},invoke_viii:function(a,b,c,d){try{s.dynCall_viii(a,b,c,d)}catch(e){"number"!==typeof e&&"longjmp"!==e&&g(e),V.setThrew(1,0)}},invoke_v:function(a){try{s.dynCall_v(a)}catch(b){"number"!==typeof b&&"longjmp"!==b&&g(b),V.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return s.dynCall_iii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&g(d),V.setThrew(1,0)}},_strncmp:function(a,b,c){for(var d=0;df?1:-1}}return 0},_llvm_va_end:aa(),_sysconf:function(a){switch(a){case 8:return 4096;case 54:;case 56:;case 21:;case 61:;case 63:;case 22:;case 67:;case 23:;case 24:;case 25:;case 26:;case 27:;case 69:;case 28:;case 101:;case 70:;case 71:;case 29:;case 30:;case 199:;case 75:;case 76:;case 32:;case 43:;case 44:;case 80:;case 46:;case 47:;case 45:;case 48:;case 49:;case 42:;case 82:;case 33:;case 7:;case 108:;case 109:;case 107:;case 112:;case 119:;case 121:return 200809;case 13:;case 104:;case 94:;case 95:;case 34:;case 35:;case 77:;case 81:;case 83:;case 84:;case 85:;case 86:;case 87:;case 88:;case 89:;case 90:;case 91:;case 94:;case 95:;case 110:;case 111:;case 113:;case 114:;case 115:;case 116:;case 117:;case 118:;case 120:;case 40:;case 16:;case 79:;case 19:return-1;case 92:;case 93:;case 5:;case 72:;case 6:;case 74:;case 92:;case 93:;case 96:;case 97:;case 98:;case 99:;case 102:;case 103:;case 105:return 1;case 38:;case 66:;case 50:;case 51:;case 4:return 1024;case 15:;case 64:;case 41:return 32;case 55:;case 37:;case 17:return 2147483647;case 18:;case 1:return 47839;case 59:;case 57:return 99;case 68:;case 58:return 2048;case 0:return 2097152;case 3:return 65536;case 14:return 32768;case 73:return 32767;case 39:return 16384;case 60:return 1e3;case 106:return 700;case 52:return 256;case 62:return 255;case 2:return 100;case 65:return 64;case 36:return 20;case 100:return 16;case 20:return 6;case 53:return 4;case 10:return 1}M(N.A);return-1},___cxa_throw:rc,_strerror:zc,_abort:function(){s.abort()},_fprintf:mc,_llvm_eh_exception:U,___cxa_free_exception:sc,_fflush:aa(),___buildEnvironment:wc,__reallyNegative:jc,_strchr:function(a,b){a--;do{a++;var c=A[a];if(c==b){return a}}while(c);return 0},_fputc:Bc,___setErrNo:M,_fwrite:hc,_send:fc,_write:gc,_exit:function(a){Ac(a)},___cxa_find_matching_catch:function(a,b){-1==a&&(a=B[U.m>>2]);-1==b&&(b=B[U.m+4>>2]);var c=Array.prototype.slice.call(arguments,2);0!=b&&!pc(b)&&0==B[B[b>>2]-8>>2]&&(a=B[a>>2]);for(var d=0;d=a},__formatString:kc,___resumeException:function(a){0==B[U.m>>2]&&(B[U.m>>2]=a);g(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")},_llvm_uadd_with_overflow_i32:function(a,b){a>>>=0;b>>>=0;return(V.setTempRet0(4294967295>>0)|0},___cxa_does_inherit:qc,_getenv:xc,_vfprintf:function(a,b,c){return mc(a,b,B[c>>2])},___cxa_begin_catch:function(a){oc.ta--;return a},__ZSt18uncaught_exceptionv:oc,_pwrite:function(a,b,c,d){a=R[a];if(!a){return M(N.$),-1}try{return Ib(a,A,b,c,d)}catch(e){return Zb(e),-1}},___cxa_call_unexpected:function(a){s.P("Unexpected exception thrown, this is not properly supported - aborting");za=l;g(a)},_sbrk:nc,_strerror_r:yc,___errno_location:function(){return rb},___gxx_personality_v0:aa(),___cxa_is_number_type:pc,_time:function(a){var b=Math.floor(Date.now()/1e3);a&&(B[a>>2]=b);return b},__exit:Ac,___cxa_end_catch:uc,STACKTOP:u,STACK_MAX:Ta,tempDoublePtr:qb,ABORT:za,cttz_i8:Wc,ctlz_i8:Vc,NaN:NaN,Infinity:Infinity,_stderr:nb,__ZTVN10__cxxabiv120__si_class_type_infoE:ob,__ZTVN10__cxxabiv117__class_type_infoE:pb,___progname:k},I);s._crypto_scrypt=V._crypto_scrypt;var ic=s._strlen=V._strlen,tc=s._free=V._free;s._realloc=V._realloc;var tb=s._memset=V._memset,Oa=s._malloc=V._malloc,sb=s._memcpy=V._memcpy;s._calloc=V._calloc;var mb=s.runPostSets=V.runPostSets;s.dynCall_vi=V.dynCall_vi;s.dynCall_vii=V.dynCall_vii;s.dynCall_ii=V.dynCall_ii;s.dynCall_viii=V.dynCall_viii;s.dynCall_v=V.dynCall_v;s.dynCall_iii=V.dynCall_iii;var qa=function(a){return V.stackAlloc(a)},ja=function(){return V.stackSave()},ka=function(a){V.stackRestore(a)},lc;function X(a,b){a!=m&&("number"==typeof a?this.p(a):b==m&&"string"!=typeof a?this.k(a,256):this.k(a,b))}function Yc(){return new X(m)}function Zc(a,b){var c=$c[a.charCodeAt(b)];return c==m?-1:c}function ad(a){var b=Yc();b.D(a);return b}function Y(a,b){this.h=a|0;this.j=b|0}Y.Ca={};Y.D=function(a){if(-128<=a&&128>a){var b=Y.Ca[a];if(b){return b}}b=new Y(a|0,0>a?-1:0);-128<=a&&128>a&&(Y.Ca[a]=b);return b};Y.p=function(a){return isNaN(a)||!isFinite(a)?Y.ZERO:a<=-Y.Ea?Y.MIN_VALUE:a+1>=Y.Ea?Y.MAX_VALUE:0>a?Y.p(-a).i():new Y(a%Y.B|0,a/Y.B|0)};Y.v=function(a,b){return new Y(a,b)};Y.k=function(a,b){0==a.length&&g(Error("number format error: empty string"));var c=b||10;(2>c||36h?(h=Y.p(Math.pow(c,h)),e=e.multiply(h).add(Y.p(i))):(e=e.multiply(d),e=e.add(Y.p(i)))}return e};Y.ea=65536;Y.Od=16777216;Y.B=Y.ea*Y.ea;Y.Pd=Y.B/2;Y.Qd=Y.B*Y.ea;Y.eb=Y.B*Y.B;Y.Ea=Y.eb/2;Y.ZERO=Y.D(0);Y.ONE=Y.D(1);Y.Da=Y.D(-1);Y.MAX_VALUE=Y.v(-1,2147483647);Y.MIN_VALUE=Y.v(0,-2147483648);Y.cb=Y.D(16777216);q=Y.prototype;q.Z=function(){return this.j*Y.B+this.ob()};q.toString=function(a){a=a||10;(2>a||36f.length;){f="0"+f}d=""+f+d}};q.ob=function(){return 0<=this.h?this.h:Y.B+this.h};q.G=function(){return 0==this.j&&0==this.h};q.n=function(){return 0>this.j};q.Pa=function(){return 1==(this.h&1)};q.o=function(a){return this.j==a.j&&this.h==a.h};q.Ra=function(){return 0>this.ja(Y.cb)};q.qb=function(a){return 0>>16,c=this.j&65535,d=this.h>>>16,e=a.j>>>16,f=a.j&65535,h=a.h>>>16,i;i=0+((this.h&65535)+(a.h&65535));a=0+(i>>>16);a+=d+h;d=0+(a>>>16);d+=c+f;c=0+(d>>>16);c=c+(b+e)&65535;return Y.v((a&65535)<<16|i&65535,c<<16|d&65535)};q.R=function(a){return this.add(a.i())};q.multiply=function(a){if(this.G()||a.G()){return Y.ZERO}if(this.o(Y.MIN_VALUE)){return a.Pa()?Y.MIN_VALUE:Y.ZERO}if(a.o(Y.MIN_VALUE)){return this.Pa()?Y.MIN_VALUE:Y.ZERO}if(this.n()){return a.n()?this.i().multiply(a.i()):this.i().multiply(a).i()}if(a.n()){return this.multiply(a.i()).i()}if(this.Ra()&&a.Ra()){return Y.p(this.Z()*a.Z())}var b=this.j>>>16,c=this.j&65535,d=this.h>>>16,e=this.h&65535,f=a.j>>>16,h=a.j&65535,i=a.h>>>16,a=a.h&65535,j,n,y,v;v=0+e*a;y=0+(v>>>16);y+=d*a;n=0+(y>>>16);y=(y&65535)+e*i;n+=y>>>16;y&=65535;n+=c*a;j=0+(n>>>16);n=(n&65535)+d*i;j+=n>>>16;n&=65535;n+=e*h;j+=n>>>16;n&=65535;j=j+(b*a+c*i+d*h+e*f)&65535;return Y.v(y<<16|v&65535,j<<16|n)};q.F=function(a){a.G()&&g(Error("division by zero"));if(this.G()){return Y.ZERO}if(this.o(Y.MIN_VALUE)){if(a.o(Y.ONE)||a.o(Y.Da)){return Y.MIN_VALUE}if(a.o(Y.MIN_VALUE)){return Y.ONE}var b=this.Db().F(a).shiftLeft(1);if(b.o(Y.ZERO)){return a.n()?Y.ONE:Y.Da}var c=this.R(a.multiply(b));return b.add(c.F(a))}if(a.o(Y.MIN_VALUE)){return Y.ZERO}if(this.n()){return a.n()?this.i().F(a.i()):this.i().F(a).i()}if(a.n()){return this.F(a.i()).i()}for(var d=Y.ZERO,c=this;c.rb(a);){for(var b=Math.max(1,Math.floor(c.Z()/a.Z())),e=Math.ceil(Math.log(b)/Math.LN2),e=48>=e?1:Math.pow(2,e-48),f=Y.p(b),h=f.multiply(a);h.n()||h.qb(c);){b-=e,f=Y.p(b),h=f.multiply(a)}f.G()&&(f=Y.ONE);d=d.add(f);c=c.R(h)}return d};q.xb=function(){return Y.v(~this.h,~this.j)};q.shiftLeft=function(a){a&=63;if(0==a){return this}var b=this.h;return 32>a?Y.v(b<>>32-a):Y.v(0,b<a?Y.v(this.h>>>a|b<<32-a,b>>a):Y.v(b>>a-32,0<=b?0:-1)};q=X.prototype;q.ga=function(a,b,c,d){for(var e=0,f=0;0<=--d;){var h=a*this[e++]+b[c]+f,f=Math.floor(h/67108864);b[c++]=h&67108863}return f};q.f=26;q.u=67108863;q.K=67108864;q.bb=Math.pow(2,52);q.Aa=26;q.Ba=0;var $c=[],bd,Z;bd=48;for(Z=0;9>=Z;++Z){$c[bd++]=Z}bd=97;for(Z=10;36>Z;++Z){$c[bd++]=Z}bd=65;for(Z=10;36>Z;++Z){$c[bd++]=Z}q=X.prototype;q.copyTo=function(a){for(var b=this.b-1;0<=b;--b){a[b]=this[b]}a.b=this.b;a.c=this.c};q.D=function(a){this.b=1;this.c=0>a?-1:0;0a?this[0]=a+DV:this.b=0};q.k=function(a,b){var c;if(16==b){c=4}else{if(8==b){c=3}else{if(256==b){c=8}else{if(2==b){c=1}else{if(32==b){c=5}else{if(4==b){c=2}else{this.nb(a,b);return}}}}}}this.c=this.b=0;for(var d=a.length,e=p,f=0;0<=--d;){var h=8==c?a[d]&255:Zc(a,d);0>h?"-"==a.charAt(d)&&(e=l):(e=p,0==f?this[this.b++]=h:f+c>this.f?(this[this.b-1]|=(h&(1<>this.f-f):this[this.b-1]|=h<=this.f&&(f-=this.f))}8==c&&0!=(a[0]&128)&&(this.c=-1,0>d|h,h=(this[i]&e)<=this.b){b.b=0}else{var d=a%this.f,e=this.f-d,f=(1<>d;for(var h=c+1;h>d}0>=this.f}if(a.b>=this.f}d+=this.c}else{for(d+=this.c;c>=this.f}d-=a.c}b.c=0>d?-1:0;-1>d?b[c++]=this.K+d:0=d.b)){var e=this.abs();if(e.b>>16)){i=n,j+=16}if(0!=(n=i>>8)){i=n,j+=8}if(0!=(n=i>>4)){i=n,j+=4}if(0!=(n=i>>2)){i=n,j+=2}0!=i>>1&&(j+=1);i=this.f-j;0>this.Ba:0);j=this.bb/n;n=(1<h&&X.ZERO.t(c,c)}}}};q.toString=function(a){if(0>this.c){return"-"+this.i().toString(a)}if(16==a){a=4}else{if(8==a){a=3}else{if(2==a){a=1}else{if(32==a){a=5}else{if(4==a){a=2}else{return this.Fb(a)}}}}}var b=(1<>h)){d=l,e="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c)}for(;0<=f;){h>(h+=this.f-a)):(c=this[f]>>(h-=a)&b,0>=h&&(h+=this.f,--f)),0this.c?this.i():this};q.U=function(a){var b=this.c-a.c;if(0!=b){return b}var c=this.b,b=c-a.b;if(0!=b){return 0>this.c?-b:b}for(;0<=--c;){if(0!=(b=this[c]-a[c])){return b}}return 0};X.ZERO=ad(0);X.ONE=ad(1);q=X.prototype;q.nb=function(a,b){this.D(0);b==m&&(b=10);for(var c=this.S(b),d=Math.pow(b,c),e=p,f=0,h=0,i=0;ij?"-"==a.charAt(i)&&0==this.ra()&&(e=l):(h=b*h+j,++f>=c&&(this.Ia(d),this.Ha(h),h=f=0))}0this.c?-1:0>=this.b||1==this.b&&0>=this[0]?0:1};q.Ia=function(a){this[this.b]=this.ga(a-1,this,0,this.b);++this.b;this.C()};q.Ha=function(a){var b=0;if(0!=a){for(;this.b<=b;){this[this.b++]=0}for(this[b]+=a;this[b]>=this.K;){this[b]-=this.K,++b>=this.b&&(this[this.b++]=0),++this[b]}}};q.Fb=function(a){a==m&&(a=10);if(0==this.ra()||2>a||36this.c){if(1==this.b){return this[0]-this.K}if(0==this.b){return-1}}else{if(1==this.b){return this[0]}if(0==this.b){return 0}}return(this[1]&(1<<32-this.f)-1)<>=this.f}if(a.b>=this.f}d+=this.c}else{for(d+=this.c;c>=this.f}d+=a.c}b.c=0>d?-1:0;0d&&(b[c++]=this.K+d);b.b=c;b.C()};var $={abs:function(a,b){var c=new Y(a,b),c=c.n()?c.i():c;B[qb>>2]=c.h;B[qb+4>>2]=c.j},Ka:function(){$.kb||($.kb=l,$.Xa=new X,$.Xa.k("4294967296",10),$.sa=new X,$.sa.k("18446744073709551616",10),$.xe=new X,$.ye=new X)},me:function(a,b){var c=new X;c.k(b.toString(),10);var d=new X;c.vb(d);c=new X;c.k(a.toString(),10);var e=new X;c.fa(d,e);return e},stringify:function(a,b,c){a=new Y(a,b).toString();c&&"-"==a[0]&&($.Ka(),c=new X,c.k(a,10),a=new X,$.sa.fa(c,a),a=a.toString(10));return a},k:function(a,b,c,d,e){$.Ka();var f=new X;f.k(a,b);a=new X;a.k(c,10);c=new X;c.k(d,10);e&&0>f.U(X.ZERO)&&(d=new X,f.fa($.sa,d),f=d);d=p;0>f.U(a)?(f=a,d=l):0>2]=f.h;B[qb+4>>2]=f.j;d&&g("range error")}};lc=$;var cd,dd;s.callMain=s.$d=function(a){function b(){for(var a=0;3>a;a++){d.push(0)}}w(0==L,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");w(0==Wa.length,"cannot call main when preRun functions remain to be called");a=a||[];ab||(ab=l,Va(Xa));var c=a.length+1,d=[F(J("/bin/this.program"),"i8",Ka)];b();for(var e=0;e>4&15]);encoded.push("0123456789abcdef"[bs[i]&15])}return encoded.join("")}function injectBytes(bs,leftPadding){var p=leftPadding||0;var address=scrypt_raw._malloc(bs.length+p);scrypt_raw.HEAPU8.set(bs,address+p);for(var i=address;i=0){ +var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&!isFinite(value)){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":32}],7:[function(require,module,exports){arguments[4][5][0].apply(exports,arguments)},{dup:5}],8:[function(require,module,exports){(function(global){var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("isarray");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=global.TYPED_ARRAY_SUPPORT!==undefined?global.TYPED_ARRAY_SUPPORT:typedArraySupport();function typedArraySupport(){function Bar(){}try{var arr=new Uint8Array(1);arr.foo=function(){return 42};arr.constructor=Bar;return arr.foo()===42&&arr.constructor===Bar&&typeof arr.subarray==="function"&&arr.subarray(1,1).byteLength===0}catch(e){return false}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Buffer(arg){if(!(this instanceof Buffer)){if(arguments.length>1)return new Buffer(arg,arguments[1]);return new Buffer(arg)}this.length=0;this.parent=undefined;if(typeof arg==="number"){return fromNumber(this,arg)}if(typeof arg==="string"){return fromString(this,arg,arguments.length>1?arguments[1]:"utf8")}return fromObject(this,arg)}function fromNumber(that,length){that=allocate(that,length<0?0:checked(length)|0);if(!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i>>1;if(fromPool)that.parent=rootParent;return that}function checked(length){if(length>=kMaxLength()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength().toString(16)+" bytes")}return length|0}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);delete buf.parent;return buf}Buffer.isBuffer=function isBuffer(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function compare(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError("Arguments must be Buffers")}if(a===b)return 0;var x=a.length;var y=b.length;var i=0;var len=Math.min(x,y);while(i>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;Buffer.prototype.length=undefined;Buffer.prototype.parent=undefined;function slowToString(encoding,start,end){var loweredCase=false;start=start|0;end=end===undefined||end===Infinity?this.length:end|0;if(!encoding)encoding="utf8";if(start<0)start=0;if(end>this.length)end=this.length;if(end<=start)return"";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype.toString=function toString(){var length=this.length|0;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;if(this.length>0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return""};Buffer.prototype.compare=function compare(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return 0;return Buffer.compare(this,b)};Buffer.prototype.indexOf=function indexOf(val,byteOffset){if(byteOffset>2147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;byteOffset>>=0;if(this.length===0)return-1;if(byteOffset>=this.length)return-1;if(byteOffset<0)byteOffset=Math.max(this.length+byteOffset,0);if(typeof val==="string"){if(val.length===0)return-1;return String.prototype.indexOf.call(this,val,byteOffset)}if(Buffer.isBuffer(val)){return arrayIndexOf(this,val,byteOffset)}if(typeof val==="number"){if(Buffer.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,val,byteOffset)}return arrayIndexOf(this,[val],byteOffset)}function arrayIndexOf(arr,val,byteOffset){var foundIndex=-1;for(var i=0;byteOffset+iremaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;iremaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||valuebuf.length)throw new RangeError("index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1;var i=0;this[offset]=value&255;while(++i=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value&255;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=value<0?1:0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=value<0?1:0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||valuebuf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;i--){target[i+targetStart]=this[i+start]}}else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(i=0;i=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if(typeof value==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"base64-js":9,ieee754:10,isarray:11}],9:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(exports){"use strict";var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var PLUS="+".charCodeAt(0);var SLASH="/".charCodeAt(0);var NUMBER="0".charCodeAt(0);var LOWER="a".charCodeAt(0);var UPPER="A".charCodeAt(0);var PLUS_URL_SAFE="-".charCodeAt(0);var SLASH_URL_SAFE="_".charCodeAt(0);function decode(elt){var code=elt.charCodeAt(0);if(code===PLUS||code===PLUS_URL_SAFE)return 62;if(code===SLASH||code===SLASH_URL_SAFE)return 63;if(code0){throw new Error("Invalid string. Length must be a multiple of 4")}var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0;arr=new Arr(b64.length*3/4-placeHolders);l=placeHolders>0?b64.length-4:b64.length;var L=0;function push(v){arr[L++]=v}for(i=0,j=0;i>16);push((tmp&65280)>>8);push(tmp&255)}if(placeHolders===2){tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4;push(tmp&255)}else if(placeHolders===1){tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2;push(tmp>>8&255);push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(num&63)}for(i=0,length=uint8.length-extraBytes;i>2);output+=encode(temp<<4&63);output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1];output+=encode(temp>>10);output+=encode(temp>>4&63);output+=encode(temp<<2&63);output+="=";break}return output}exports.toByteArray=b64ToByteArray;exports.fromByteArray=uint8ToBase64})(typeof exports==="undefined"?this.base64js={}:exports)},{}],10:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],11:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],12:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}throw TypeError('Uncaught, unspecified "error" event.')}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:len=arguments.length;args=new Array(len-1);for(i=1;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else{while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.listenerCount=function(emitter,type){var ret;if(!emitter._events||!emitter._events[type])ret=0;else if(isFunction(emitter._events[type]))ret=1;else ret=emitter._events[type].length;return ret};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],13:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],14:[function(require,module,exports){module.exports=function(obj){return!!(obj!=null&&(obj._isBuffer||obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj)))}},{}],15:[function(require,module,exports){module.exports=Array.isArray||function(arr){return Object.prototype.toString.call(arr)=="[object Array]"}},{}],16:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i1){for(var i=1;i0){if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else{if(state.decoder&&!addToFront&&!encoding)chunk=state.decoder.write(chunk);if(!addToFront)state.reading=false;if(state.flowing&&state.length===0&&!state.sync){stream.emit("data",chunk);stream.read(0)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length=MAX_HWM){n=MAX_HWM}else{n--;for(var p=1;p<32;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(isNaN(n)||util.isNull(n)){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=roundUpToNextPowerOf2(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else return state.length}return n}Readable.prototype.read=function(n){debug("read",n);var state=this._readableState;var nOrig=n;if(!util.isNumber(n)||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(util.isNull(ret)){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended&&state.length===0)endReadable(this);if(!util.isNull(ret))this.emit("data",ret);return ret};function chunkInvalid(state,chunk){var er=null;if(!util.isBuffer(chunk)&&!util.isString(chunk)&&!util.isNullOrUndefined(chunk)&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;if(state.sync)process.nextTick(function(){emitReadable_(stream)});else emitReadable_(stream)}}function emitReadable_(stream){debug("emit readable");stream.emit("readable");flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(function(){maybeReadMore_(stream,state)})}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length=length){if(stringMode)ret=list.join("");else ret=Buffer.concat(list,length);list.length=0}else{if(n0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted){state.ended=true;process.nextTick(function(){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}})}}function forEach(xs,f){for(var i=0,l=xs.length;i1){var cbs=[];for(var c=0;c=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(buffer.length===0){return charStr}break}this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0}},{buffer:8}],31:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],32:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":31,_process:17,inherits:13}],33:[function(require,module,exports){var indexOf=require("indexof");var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);else{var res=[];for(var key in obj)res.push(key);return res}};var forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);else for(var i=0;iuint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function scrub_vec(v){for(var i=0;i>>8^sx&255^99;this.SBOX[x]=sx;this.INV_SBOX[sx]=x;x2=d[x];x4=d[x2];x8=d[x4];t=d[sx]*257^sx*16843008; +this.SUB_MIX[0][x]=t<<24|t>>>8;this.SUB_MIX[1][x]=t<<16|t>>>16;this.SUB_MIX[2][x]=t<<8|t>>>24;this.SUB_MIX[3][x]=t;t=x8*16843009^x4*65537^x2*257^x*16843008;this.INV_SUB_MIX[0][sx]=t<<24|t>>>8;this.INV_SUB_MIX[1][sx]=t<<16|t>>>16;this.INV_SUB_MIX[2][sx]=t<<8|t>>>24;this.INV_SUB_MIX[3][sx]=t;if(x===0){x=xi=1}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}return true};var G=new Global;AES.blockSize=4*4;AES.prototype.blockSize=AES.blockSize;AES.keySize=256/8;AES.prototype.keySize=AES.keySize;function bufferToArray(buf){var len=buf.length/4;var out=new Array(len);var i=-1;while(++i>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255]:void 0,this._keySchedule[ksRow-keySize]^t)}this._invKeySchedule=[];for(invKsRow=0;invKsRow>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[t&255]]}return true};AES.prototype.encryptBlock=function(M){M=bufferToArray(new Buffer(M));var out=this._doCryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf};AES.prototype.decryptBlock=function(M){M=bufferToArray(new Buffer(M));var temp=[M[3],M[1]];M[1]=temp[0];M[3]=temp[1];var out=this._doCryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf};AES.prototype.scrub=function(){scrub_vec(this._keySchedule);scrub_vec(this._invKeySchedule);scrub_vec(this._key)};AES.prototype._doCryptBlock=function(M,keySchedule,SUB_MIX,SBOX){var ksRow,s0,s1,s2,s3,t0,t1,t2,t3;s0=M[0]^keySchedule[0];s1=M[1]^keySchedule[1];s2=M[2]^keySchedule[2];s3=M[3]^keySchedule[3];ksRow=4;for(var round=1;round>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][s3&255]^keySchedule[ksRow++];t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][s0&255]^keySchedule[ksRow++];t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][s1&255]^keySchedule[ksRow++];t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0&255])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];return[fixup_uint32(t0),fixup_uint32(t1),fixup_uint32(t2),fixup_uint32(t3)]};exports.AES=AES}).call(this,require("buffer").Buffer)},{buffer:8}],38:[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");var GHASH=require("./ghash");var xor=require("buffer-xor");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._finID=Buffer.concat([iv,new Buffer([0,0,0,1])]);iv=Buffer.concat([iv,new Buffer([0,0,0,2])]);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;this._alen=0;this._len=0;iv.copy(this._prev);this._mode=mode;var h=new Buffer(4);h.fill(0);this._ghash=new GHASH(this._cipher.encryptBlock(h));this._authTag=null;this._called=false}StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;if(rump<16){rump=new Buffer(rump);rump.fill(0);this._ghash.update(rump)}}this._called=true;var out=this._mode.encrypt(this,chunk);if(this._decrypt){this._ghash.update(chunk)}else{this._ghash.update(out)}this._len+=chunk.length;return out};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag){throw new Error("Unsupported state or unable to authenticate data")}var tag=xor(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt){if(xorTest(tag,this._authTag)){throw new Error("Unsupported state or unable to authenticate data")}}else{this._authTag=tag}this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(!this._decrypt&&Buffer.isBuffer(this._authTag)){return this._authTag}else{throw new Error("Attempting to get auth tag in unsupported state")}};StreamCipher.prototype.setAuthTag=function setAuthTag(tag){if(this._decrypt){this._authTag=tag}else{throw new Error("Attempting to set auth tag in unsupported state")}};StreamCipher.prototype.setAAD=function setAAD(buf){if(!this._called){this._ghash.update(buf);this._alen+=buf.length}else{throw new Error("Attempting to set AAD in unsupported state")}};function xorTest(a,b){var out=0;if(a.length!==b.length){out++}var len=Math.min(a.length,b.length);var i=-1;while(++i16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}return null};Splitter.prototype.flush=function(){if(this.cache.length){return this.cache}};function unpad(last){var padded=last[15];var i=-1;while(++i15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}return null};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=new Buffer(len);var i=-1;while(++i0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31}Vi[0]=Vi[0]>>>1;if(lsb_Vi){Vi[0]=Vi[0]^225<<24}}this.state=fromArray(Zi)};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk)}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,zeros],16))}this.ghash(fromArray([0,abl,0,bl]));return this.state};function toArray(buf){return[buf.readUInt32BE(0),buf.readUInt32BE(4),buf.readUInt32BE(8),buf.readUInt32BE(12)]}function fromArray(out){out=out.map(fixup_uint32);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf}var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function xor(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]}}).call(this,require("buffer").Buffer)},{buffer:8}],43:[function(require,module,exports){exports["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"};exports["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"};exports["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"};exports["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"};exports["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"};exports["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"};exports["aes128"]=exports["aes-128-cbc"];exports["aes192"]=exports["aes-192-cbc"];exports["aes256"]=exports["aes-256-cbc"];exports["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"};exports["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"};exports["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"};exports["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"};exports["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"};exports["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"};exports["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"};exports["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"};exports["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"};exports["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"};exports["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"};exports["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"};exports["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"};exports["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"};exports["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"};exports["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"};exports["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"};exports["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},{}],44:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":51}],45:[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");exports.encrypt=function(self,data,decrypt){var out=new Buffer("");var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=new Buffer("")}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len)}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}}return out};function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out}}).call(this,require("buffer").Buffer)},{buffer:8,"buffer-xor":51}],46:[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value)}return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i>7}return out}}).call(this,require("buffer").Buffer)},{buffer:8}],47:[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad=self._cipher.encryptBlock(self._prev);var out=pad[0]^byteParam;self._prev=Buffer.concat([self._prev.slice(1),new Buffer([decrypt?byteParam:out])]);return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i0;count--){inputOff+=this._buffer(data,inputOff);outputOff+=this._flushBuffer(out,outputOff)}inputOff+=this._buffer(data,inputOff);return out};Cipher.prototype.final=function final(buffer){var first;if(buffer)first=this.update(buffer);var last;if(this.type==="encrypt")last=this._finalEncrypt();else last=this._finalDecrypt();if(first)return first.concat(last);else return last};Cipher.prototype._pad=function _pad(buffer,off){if(off===0)return false;while(off>>1];kL=utils.r28shl(kL,shift);kR=utils.r28shl(kR,shift);utils.pc2(kL,kR,state.keys,i)}};DES.prototype._update=function _update(inp,inOff,out,outOff){var state=this._desState;var l=utils.readUInt32BE(inp,inOff);var r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];if(this.type==="encrypt")this._encrypt(state,l,r,state.tmp,0);else this._decrypt(state,l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];utils.writeUInt32BE(out,l,outOff);utils.writeUInt32BE(out,r,outOff+4)};DES.prototype._pad=function _pad(buffer,off){var value=buffer.length-off;for(var i=off;i>>0;l=t}utils.rip(r,l,out,off)};DES.prototype._decrypt=function _decrypt(state,lStart,rStart,out,off){var l=rStart;var r=lStart;for(var i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(l,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=l;l=(r^f)>>>0;r=t}utils.rip(l,r,out,off)}},{"../des":57,inherits:180,"minimalistic-assert":63}],61:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var des=require("../des");var Cipher=des.Cipher;var DES=des.DES;function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8);var k2=key.slice(8,16);var k3=key.slice(16,24);if(type==="encrypt"){this.ciphers=[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]}else{this.ciphers=[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1 +})]}}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher);module.exports=EDE;EDE.create=function create(options){return new EDE(options)};EDE.prototype._update=function _update(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff);state.ciphers[1]._update(out,outOff,out,outOff);state.ciphers[2]._update(out,outOff,out,outOff)};EDE.prototype._pad=DES.prototype._pad;EDE.prototype._unpad=DES.prototype._unpad},{"../des":57,inherits:180,"minimalistic-assert":63}],62:[function(require,module,exports){"use strict";exports.readUInt32BE=function readUInt32BE(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0};exports.writeUInt32BE=function writeUInt32BE(bytes,value,off){bytes[0+off]=value>>>24;bytes[1+off]=value>>>16&255;bytes[2+off]=value>>>8&255;bytes[3+off]=value&255};exports.ip=function ip(inL,inR,out,off){var outL=0;var outR=0;for(var i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>>j+i&1}}for(var i=6;i>=0;i-=2){for(var j=1;j<=25;j+=8){outR<<=1;outR|=inR>>>j+i&1}for(var j=1;j<=25;j+=8){outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.rip=function rip(inL,inR,out,off){var outL=0;var outR=0;for(var i=0;i<4;i++){for(var j=24;j>=0;j-=8){outL<<=1;outL|=inR>>>j+i&1;outL<<=1;outL|=inL>>>j+i&1}}for(var i=4;i<8;i++){for(var j=24;j>=0;j-=8){outR<<=1;outR|=inR>>>j+i&1;outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.pc1=function pc1(inL,inR,out,off){var outL=0;var outR=0;for(var i=7;i>=5;i--){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var i=1;i<=3;i++){for(var j=0;j<=24;j+=8){outR<<=1;outR|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.r28shl=function r28shl(num,shift){return num<>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function pc2(inL,inR,out,off){var outL=0;var outR=0;var len=pc2table.length>>>1;for(var i=0;i>>pc2table[i]&1}for(var i=len;i>>pc2table[i]&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.expand=function expand(r,out,off){var outL=0;var outR=0;outL=(r&1)<<5|r>>>27;for(var i=23;i>=15;i-=4){outL<<=6;outL|=r>>>i&63}for(var i=11;i>=3;i-=4){outR|=r>>>i&63;outR<<=6}outR|=(r&31)<<1|r>>>31;out[off+0]=outL>>>0;out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function substitute(inL,inR){var out=0;for(var i=0;i<4;i++){var b=inL>>>18-i*6&63;var sb=sTable[i*64+b];out<<=4;out|=sb}for(var i=0;i<4;i++){var b=inR>>>18-i*6&63;var sb=sTable[4*64+i*64+b];out<<=4;out|=sb}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function permute(num){var out=0;for(var i=0;i>>permuteTable[i]&1}return out>>>0};exports.padSplit=function padSplit(num,size,group){var str=num.toString(2);while(str.length0){bufs.push(md_buf)}bufs.push(password);if(salt){bufs.push(salt)}md_buf=md5(Buffer.concat(bufs));bufs=[];i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i];keyLen--;i++}}if(ivLen>0&&i!==md_buf.length){while(true){if(ivLen===0){break}if(i===md_buf.length){break}iv[ii++]=md_buf[i];ivLen--;i++}}if(keyLen===0&&ivLen===0){break}}for(i=0;i0)return left;else return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;else return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}else if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex")base=16;assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-")start++;if(base===16)this._parseHex(number,start);else this._parseBase(number,base,start);if(number[0]==="-")this.negative=1;this.strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i=0;i-=3){var w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(var i=0,j=0;i>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49&&c<=54)r|=c-49+10;else if(c>=17&&c<=22)r|=c-17+10;else r|=c&15}return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i=start;i-=6){var w=parseHex(number,i,i+6);this.words[j]|=w<>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){var w=parseHex(number,start,i+6);this.words[j]|=w<>>26-off&4194303}this.strip()};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0)this.negative=0;return this};BN.prototype.inspect=function inspect(){return(this.red?""};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;var padding=padding|0||1;if(base===16||base==="hex"){var out="";var off=0;var carry=0;for(var i=0;i>>24-off&16777215;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out;off+=2;if(off>=26){off-=26;i--}}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out="0"+out;if(this.negative!==0)out="-"+out;return out}else if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];var out="";var c=this.clone();c.negative=0;while(c.cmpn(0)!==0){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(c.cmpn(0)!==0)out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.cmpn(0)===0)out="0"+out;while(out.length%padding!==0)out="0"+out;if(this.negative!==0)out="-"+out;return out}else{assert(false,"Base should be between 2 and 36")}};BN.prototype.toNumber=function toNumber(){assert(this.bitLength()<=53,"Number can only safely store up to 53 bits");return parseInt(this.toString(),10)};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toArray=function toArray(endian,length){this.strip();var littleEndian=endian==="le";var res=new Array(this.byteLength());res[0]=0;var q=this.clone();if(!littleEndian){for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.iushrn(8);res[res.length-i-1]=b}}else{for(var i=0;q.cmpn(0)!==0;i++){var b=q.andln(255);q.iushrn(8);res[i]=b}}if(length){assert(res.length<=length,"byte array longer than desired length");while(res.length=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0)r++;return r};BN.prototype.bitLength=function bitLength(){var hi=0;var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function zeroBits(){if(this.cmpn(0)===0)return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);else return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);else return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);else return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);else return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;inum.length)return this.clone().ixor(num);else return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);else return num.clone().iuxor(this)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;while(this.length<=off)this.words[this.length++]=0;if(val)this.words[off]=this.words[off]|1<num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i>>26}for(;carry!==0&&i>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;inum.length)return this.clone().iadd(num);else return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a;var b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i>26;this.words[i]=r&67108863}for(;carry!==0&&i>26;this.words[i]=r&67108863}if(carry===0&&i>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out.strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.length=19;var w0=c;c=0;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);w0=w0+lo|0;w0=w0+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w0>>>26)|0;w0&=67108863;var w1=c;c=0;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);w1=w1+lo|0;w1=w1+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w1>>>26)|0;w1&=67108863;lo=Math.imul(al0,bl1);mid=Math.imul(al0,bh1);mid=mid+Math.imul(ah0,bl1)|0;hi=Math.imul(ah0,bh1);w1=w1+lo|0;w1=w1+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w1>>>26)|0;w1&=67108863;var w2=c;c=0;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al1,bl1);mid=Math.imul(al1,bh1);mid=mid+Math.imul(ah1,bl1)|0;hi=Math.imul(ah1,bh1);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al0,bl2);mid=Math.imul(al0,bh2);mid=mid+Math.imul(ah0,bl2)|0;hi=Math.imul(ah0,bh2);w2=w2+lo|0;w2=w2+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w2>>>26)|0;w2&=67108863;var w3=c;c=0;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al2,bl1);mid=Math.imul(al2,bh1);mid=mid+Math.imul(ah2,bl1)|0;hi=Math.imul(ah2,bh1);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al1,bl2);mid=Math.imul(al1,bh2);mid=mid+Math.imul(ah1,bl2)|0;hi=Math.imul(ah1,bh2);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al0,bl3);mid=Math.imul(al0,bh3);mid=mid+Math.imul(ah0,bl3)|0;hi=Math.imul(ah0,bh3);w3=w3+lo|0;w3=w3+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w3>>>26)|0;w3&=67108863;var w4=c;c=0;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al3,bl1);mid=Math.imul(al3,bh1);mid=mid+Math.imul(ah3,bl1)|0;hi=Math.imul(ah3,bh1);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al2,bl2);mid=Math.imul(al2,bh2);mid=mid+Math.imul(ah2,bl2)|0;hi=Math.imul(ah2,bh2);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al1,bl3);mid=Math.imul(al1,bh3);mid=mid+Math.imul(ah1,bl3)|0;hi=Math.imul(ah1,bh3);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al0,bl4);mid=Math.imul(al0,bh4);mid=mid+Math.imul(ah0,bl4)|0;hi=Math.imul(ah0,bh4);w4=w4+lo|0;w4=w4+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w4>>>26)|0;w4&=67108863;var w5=c;c=0;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al4,bl1);mid=Math.imul(al4,bh1);mid=mid+Math.imul(ah4,bl1)|0;hi=Math.imul(ah4,bh1);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al3,bl2);mid=Math.imul(al3,bh2);mid=mid+Math.imul(ah3,bl2)|0;hi=Math.imul(ah3,bh2);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al2,bl3);mid=Math.imul(al2,bh3);mid=mid+Math.imul(ah2,bl3)|0;hi=Math.imul(ah2,bh3);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al1,bl4);mid=Math.imul(al1,bh4);mid=mid+Math.imul(ah1,bl4)|0;hi=Math.imul(ah1,bh4);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al0,bl5);mid=Math.imul(al0,bh5);mid=mid+Math.imul(ah0,bl5)|0;hi=Math.imul(ah0,bh5);w5=w5+lo|0;w5=w5+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w5>>>26)|0;w5&=67108863;var w6=c;c=0;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al5,bl1);mid=Math.imul(al5,bh1);mid=mid+Math.imul(ah5,bl1)|0;hi=Math.imul(ah5,bh1);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al4,bl2);mid=Math.imul(al4,bh2);mid=mid+Math.imul(ah4,bl2)|0;hi=Math.imul(ah4,bh2);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al3,bl3);mid=Math.imul(al3,bh3);mid=mid+Math.imul(ah3,bl3)|0;hi=Math.imul(ah3,bh3);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al2,bl4);mid=Math.imul(al2,bh4);mid=mid+Math.imul(ah2,bl4)|0;hi=Math.imul(ah2,bh4);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al1,bl5);mid=Math.imul(al1,bh5);mid=mid+Math.imul(ah1,bl5)|0;hi=Math.imul(ah1,bh5);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al0,bl6);mid=Math.imul(al0,bh6);mid=mid+Math.imul(ah0,bl6)|0;hi=Math.imul(ah0,bh6);w6=w6+lo|0;w6=w6+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w6>>>26)|0;w6&=67108863;var w7=c;c=0;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al6,bl1);mid=Math.imul(al6,bh1);mid=mid+Math.imul(ah6,bl1)|0;hi=Math.imul(ah6,bh1);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al5,bl2);mid=Math.imul(al5,bh2);mid=mid+Math.imul(ah5,bl2)|0;hi=Math.imul(ah5,bh2);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al4,bl3);mid=Math.imul(al4,bh3);mid=mid+Math.imul(ah4,bl3)|0;hi=Math.imul(ah4,bh3);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al3,bl4);mid=Math.imul(al3,bh4);mid=mid+Math.imul(ah3,bl4)|0;hi=Math.imul(ah3,bh4);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al2,bl5);mid=Math.imul(al2,bh5);mid=mid+Math.imul(ah2,bl5)|0;hi=Math.imul(ah2,bh5);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al1,bl6);mid=Math.imul(al1,bh6);mid=mid+Math.imul(ah1,bl6)|0;hi=Math.imul(ah1,bh6);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al0,bl7);mid=Math.imul(al0,bh7);mid=mid+Math.imul(ah0,bl7)|0;hi=Math.imul(ah0,bh7);w7=w7+lo|0;w7=w7+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w7>>>26)|0;w7&=67108863;var w8=c;c=0;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al7,bl1);mid=Math.imul(al7,bh1);mid=mid+Math.imul(ah7,bl1)|0;hi=Math.imul(ah7,bh1);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al6,bl2);mid=Math.imul(al6,bh2);mid=mid+Math.imul(ah6,bl2)|0;hi=Math.imul(ah6,bh2);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al5,bl3);mid=Math.imul(al5,bh3);mid=mid+Math.imul(ah5,bl3)|0;hi=Math.imul(ah5,bh3);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al4,bl4);mid=Math.imul(al4,bh4);mid=mid+Math.imul(ah4,bl4)|0;hi=Math.imul(ah4,bh4);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0; +c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al3,bl5);mid=Math.imul(al3,bh5);mid=mid+Math.imul(ah3,bl5)|0;hi=Math.imul(ah3,bh5);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al2,bl6);mid=Math.imul(al2,bh6);mid=mid+Math.imul(ah2,bl6)|0;hi=Math.imul(ah2,bh6);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al1,bl7);mid=Math.imul(al1,bh7);mid=mid+Math.imul(ah1,bl7)|0;hi=Math.imul(ah1,bh7);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al0,bl8);mid=Math.imul(al0,bh8);mid=mid+Math.imul(ah0,bl8)|0;hi=Math.imul(ah0,bh8);w8=w8+lo|0;w8=w8+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w8>>>26)|0;w8&=67108863;var w9=c;c=0;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al8,bl1);mid=Math.imul(al8,bh1);mid=mid+Math.imul(ah8,bl1)|0;hi=Math.imul(ah8,bh1);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al7,bl2);mid=Math.imul(al7,bh2);mid=mid+Math.imul(ah7,bl2)|0;hi=Math.imul(ah7,bh2);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al6,bl3);mid=Math.imul(al6,bh3);mid=mid+Math.imul(ah6,bl3)|0;hi=Math.imul(ah6,bh3);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al5,bl4);mid=Math.imul(al5,bh4);mid=mid+Math.imul(ah5,bl4)|0;hi=Math.imul(ah5,bh4);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al4,bl5);mid=Math.imul(al4,bh5);mid=mid+Math.imul(ah4,bl5)|0;hi=Math.imul(ah4,bh5);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al3,bl6);mid=Math.imul(al3,bh6);mid=mid+Math.imul(ah3,bl6)|0;hi=Math.imul(ah3,bh6);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al2,bl7);mid=Math.imul(al2,bh7);mid=mid+Math.imul(ah2,bl7)|0;hi=Math.imul(ah2,bh7);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al1,bl8);mid=Math.imul(al1,bh8);mid=mid+Math.imul(ah1,bl8)|0;hi=Math.imul(ah1,bh8);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al0,bl9);mid=Math.imul(al0,bh9);mid=mid+Math.imul(ah0,bl9)|0;hi=Math.imul(ah0,bh9);w9=w9+lo|0;w9=w9+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w9>>>26)|0;w9&=67108863;var w10=c;c=0;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al8,bl2);mid=Math.imul(al8,bh2);mid=mid+Math.imul(ah8,bl2)|0;hi=Math.imul(ah8,bh2);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al7,bl3);mid=Math.imul(al7,bh3);mid=mid+Math.imul(ah7,bl3)|0;hi=Math.imul(ah7,bh3);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al6,bl4);mid=Math.imul(al6,bh4);mid=mid+Math.imul(ah6,bl4)|0;hi=Math.imul(ah6,bh4);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al5,bl5);mid=Math.imul(al5,bh5);mid=mid+Math.imul(ah5,bl5)|0;hi=Math.imul(ah5,bh5);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al4,bl6);mid=Math.imul(al4,bh6);mid=mid+Math.imul(ah4,bl6)|0;hi=Math.imul(ah4,bh6);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al3,bl7);mid=Math.imul(al3,bh7);mid=mid+Math.imul(ah3,bl7)|0;hi=Math.imul(ah3,bh7);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al2,bl8);mid=Math.imul(al2,bh8);mid=mid+Math.imul(ah2,bl8)|0;hi=Math.imul(ah2,bh8);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al1,bl9);mid=Math.imul(al1,bh9);mid=mid+Math.imul(ah1,bl9)|0;hi=Math.imul(ah1,bh9);w10=w10+lo|0;w10=w10+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w10>>>26)|0;w10&=67108863;var w11=c;c=0;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al8,bl3);mid=Math.imul(al8,bh3);mid=mid+Math.imul(ah8,bl3)|0;hi=Math.imul(ah8,bh3);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al7,bl4);mid=Math.imul(al7,bh4);mid=mid+Math.imul(ah7,bl4)|0;hi=Math.imul(ah7,bh4);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al6,bl5);mid=Math.imul(al6,bh5);mid=mid+Math.imul(ah6,bl5)|0;hi=Math.imul(ah6,bh5);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al5,bl6);mid=Math.imul(al5,bh6);mid=mid+Math.imul(ah5,bl6)|0;hi=Math.imul(ah5,bh6);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al4,bl7);mid=Math.imul(al4,bh7);mid=mid+Math.imul(ah4,bl7)|0;hi=Math.imul(ah4,bh7);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al3,bl8);mid=Math.imul(al3,bh8);mid=mid+Math.imul(ah3,bl8)|0;hi=Math.imul(ah3,bh8);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al2,bl9);mid=Math.imul(al2,bh9);mid=mid+Math.imul(ah2,bl9)|0;hi=Math.imul(ah2,bh9);w11=w11+lo|0;w11=w11+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w11>>>26)|0;w11&=67108863;var w12=c;c=0;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al8,bl4);mid=Math.imul(al8,bh4);mid=mid+Math.imul(ah8,bl4)|0;hi=Math.imul(ah8,bh4);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al7,bl5);mid=Math.imul(al7,bh5);mid=mid+Math.imul(ah7,bl5)|0;hi=Math.imul(ah7,bh5);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al6,bl6);mid=Math.imul(al6,bh6);mid=mid+Math.imul(ah6,bl6)|0;hi=Math.imul(ah6,bh6);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al5,bl7);mid=Math.imul(al5,bh7);mid=mid+Math.imul(ah5,bl7)|0;hi=Math.imul(ah5,bh7);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al4,bl8);mid=Math.imul(al4,bh8);mid=mid+Math.imul(ah4,bl8)|0;hi=Math.imul(ah4,bh8);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al3,bl9);mid=Math.imul(al3,bh9);mid=mid+Math.imul(ah3,bl9)|0;hi=Math.imul(ah3,bh9);w12=w12+lo|0;w12=w12+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w12>>>26)|0;w12&=67108863;var w13=c;c=0;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al8,bl5);mid=Math.imul(al8,bh5);mid=mid+Math.imul(ah8,bl5)|0;hi=Math.imul(ah8,bh5);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al7,bl6);mid=Math.imul(al7,bh6);mid=mid+Math.imul(ah7,bl6)|0;hi=Math.imul(ah7,bh6);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al6,bl7);mid=Math.imul(al6,bh7);mid=mid+Math.imul(ah6,bl7)|0;hi=Math.imul(ah6,bh7);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al5,bl8);mid=Math.imul(al5,bh8);mid=mid+Math.imul(ah5,bl8)|0;hi=Math.imul(ah5,bh8);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al4,bl9);mid=Math.imul(al4,bh9);mid=mid+Math.imul(ah4,bl9)|0;hi=Math.imul(ah4,bh9);w13=w13+lo|0;w13=w13+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w13>>>26)|0;w13&=67108863;var w14=c;c=0;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al8,bl6);mid=Math.imul(al8,bh6);mid=mid+Math.imul(ah8,bl6)|0;hi=Math.imul(ah8,bh6);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al7,bl7);mid=Math.imul(al7,bh7);mid=mid+Math.imul(ah7,bl7)|0;hi=Math.imul(ah7,bh7);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al6,bl8);mid=Math.imul(al6,bh8);mid=mid+Math.imul(ah6,bl8)|0;hi=Math.imul(ah6,bh8);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al5,bl9);mid=Math.imul(al5,bh9);mid=mid+Math.imul(ah5,bl9)|0;hi=Math.imul(ah5,bh9);w14=w14+lo|0;w14=w14+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w14>>>26)|0;w14&=67108863;var w15=c;c=0;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al8,bl7);mid=Math.imul(al8,bh7);mid=mid+Math.imul(ah8,bl7)|0;hi=Math.imul(ah8,bh7);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al7,bl8);mid=Math.imul(al7,bh8);mid=mid+Math.imul(ah7,bl8)|0;hi=Math.imul(ah7,bh8);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al6,bl9);mid=Math.imul(al6,bh9);mid=mid+Math.imul(ah6,bl9)|0;hi=Math.imul(ah6,bh9);w15=w15+lo|0;w15=w15+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w15>>>26)|0;w15&=67108863;var w16=c;c=0;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al8,bl8);mid=Math.imul(al8,bh8);mid=mid+Math.imul(ah8,bl8)|0;hi=Math.imul(ah8,bh8);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al7,bl9);mid=Math.imul(al7,bh9);mid=mid+Math.imul(ah7,bl9)|0;hi=Math.imul(ah7,bh9);w16=w16+lo|0;w16=w16+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w16>>>26)|0;w16&=67108863;var w17=c;c=0;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);w17=w17+lo|0;w17=w17+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w17>>>26)|0;w17&=67108863;lo=Math.imul(al8,bl9);mid=Math.imul(al8,bh9);mid=mid+Math.imul(ah8,bl9)|0;hi=Math.imul(ah8,bh9);w17=w17+lo|0;w17=w17+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w17>>>26)|0;w17&=67108863;var w18=c;c=0;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);w18=w18+lo|0;w18=w18+((mid&8191)<<13)|0;c=c+hi|0;c=c+(mid>>>13)|0;c=c+(w18>>>26)|0;w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1){i++}return 1<>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(var i=2*len;i>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;if(r!==0){var carry=0;for(var i=0;i>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(var i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(var i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<s){this.length-=s;for(var i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0){this.words[0]=0;this.length=1}this.strip();return this};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(r!==0)s++;this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<=67108864;i++){this.words[i]-=67108864;if(i===this.length-1)this.words[i+1]=1;else this.words[i+1]++}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i>26;this.words[i+shift]=w&67108863}if(carry===0)return this.strip();assert(carry===-1);carry=0;for(var i=0;i>26;this.words[i]=w&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(a.cmpn(0)!==0)a.negative^=1}if(q)q.words[j]=qj}if(q)q.strip();a.strip();if(mode!=="div"&&shift!==0)a.iushrn(shift);return{div:q?q:null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(num.cmpn(0)!==0);if(this.negative!==0&&num.negative===0){var res=this.neg().divmod(num,mode);var div;var mod;if(mode!=="mod")div=res.div.neg();if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.neg)mod=mod.add(num)}return{div:div,mod:mod}}else if(this.negative===0&&num.negative!==0){var res=this.divmod(num.neg(),mode);var div;if(mode!=="mod")div=res.div.neg();return{div:div,mod:res.mod}}else if((this.negative&num.negative)!==0){var res=this.neg().divmod(num.neg(),mode);var mod;if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.neg)mod=mod.isub(num)}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode==="div")return{div:this.divn(num.words[0]),mod:null};else if(mode==="mod")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.cmpn(0)===0)return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(p.cmpn(0)!==0);var x=this;var y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(x.cmpn(0)!==0){while(x.isEven()){x.iushrn(1);if(A.isEven()&&B.isEven()){A.iushrn(1);B.iushrn(1)}else{A.iadd(yp).iushrn(1);B.isub(xp).iushrn(1)}}while(y.isEven()){y.iushrn(1);if(C.isEven()&&D.isEven()){C.iushrn(1);D.iushrn(1)}else{C.iadd(yp).iushrn(1);D.isub(xp).iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(p.cmpn(0)!==0);var a=this;var b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){while(a.isEven()){a.iushrn(1);if(x1.isEven())x1.iushrn(1);else x1.iadd(delta).iushrn(1)}while(b.isEven()){b.iushrn(1);if(x2.isEven())x2.iushrn(1);else x2.iadd(delta).iushrn(1)}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res};BN.prototype.gcd=function gcd(num){if(this.cmpn(0)===0)return num.clone();if(num.cmpn(0)===0)return this.clone();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(negative)num=-num;if(this.negative!==0&&!negative)return-1;else if(this.negative===0&&negative)return 1;num&=67108863;this.strip();var res;if(this.length>1){res=1}else{var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;else if(this.length=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.ushl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i>>22;prev=next}input.words[i-10]=prev>>>22;input.length-=9};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var hi;var lo=0;for(var i=0;i>>=26;num.words[i]=lo;carry=hi}if(carry!==0)num.words[num.length++]=carry;return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256")prime=new K256;else if(name==="p224")prime=new P224;else if(name==="p192")prime=new P192;else if(name==="p25519")prime=new P25519;else throw new Error("Unknown prime "+name); primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){var r=a.clone();r.negative^=1;return r.iadd(this.m)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a)};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.cmpn(0)===0)return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);var r=this.pow(a,pow);return r}var q=this.m.subn(1);var s=0;while(q.cmpn(0)!==0&&q.andln(1)===0){s++;q.iushrn(1)}assert(q.cmpn(0)!==0);var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0}start=26}return res};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);if(r===num)return r.clone();else return r};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.cmpn(0)===0||b.cmpn(0)===0)return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module==="undefined"||module,this)},{}],69:[function(require,module,exports){(function(Buffer){var bn=require("bn.js");var randomBytes=require("randombytes");module.exports=crt;function blind(priv){var r=getr(priv);var blinder=r.toRed(bn.mont(priv.modulus)).redPow(new bn(priv.publicExponent)).fromRed();return{blinder:blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv){var blinds=blind(priv);var len=priv.modulus.byteLength();var mod=bn.mont(priv.modulus);var blinded=new bn(msg).mul(blinds.blinder).umod(priv.modulus);var c1=blinded.toRed(bn.mont(priv.prime1));var c2=blinded.toRed(bn.mont(priv.prime2));var qinv=priv.coefficient;var p=priv.prime1;var q=priv.prime2;var m1=c1.redPow(priv.exponent1);var m2=c2.redPow(priv.exponent2);m1=m1.fromRed();m2=m2.fromRed();var h=m1.isub(m2).imul(qinv).umod(p);h.imul(q);m2.iadd(h);return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false,len))}crt.getr=getr;function getr(priv){var len=priv.modulus.byteLength();var r=new bn(randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.umod(priv.prime1)||!r.umod(priv.prime2)){r=new bn(randomBytes(len))}return r}}).call(this,require("buffer").Buffer)},{"bn.js":68,buffer:8,randombytes:227}],70:[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version;elliptic.utils=require("./elliptic/utils");elliptic.rand=require("brorand");elliptic.hmacDRBG=require("./elliptic/hmac-drbg");elliptic.curve=require("./elliptic/curve");elliptic.curves=require("./elliptic/curves");elliptic.ec=require("./elliptic/ec");elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":93,"./elliptic/curve":73,"./elliptic/curves":76,"./elliptic/ec":77,"./elliptic/eddsa":80,"./elliptic/hmac-drbg":83,"./elliptic/utils":85,brorand:86}],71:[function(require,module,exports){"use strict";var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var getNAF=utils.getNAF;var getJSF=utils.getJSF;var assert=utils.assert;function BaseCurve(type,conf){this.type=type;this.p=new bn(conf.p,16);this.red=conf.prime?bn.red(conf.prime):bn.mont(this.p);this.zero=new bn(0).toRed(this.red);this.one=new bn(1).toRed(this.red);this.two=new bn(2).toRed(this.red);this.n=conf.n&&new bn(conf.n,16);this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed);this._wnafT1=new Array(4);this._wnafT2=new Array(4);this._wnafT3=new Array(4);this._wnafT4=new Array(4)}module.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function validate(){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(p,k){assert(p.precomputed);var doubles=p._getDoubles();var naf=getNAF(k,1);var I=(1<=j;k--)nafW=(nafW<<1)+naf[k];repr.push(nafW)}var a=this.jpoint(null,null,null);var b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(var j=0;j=0;i--){for(var k=0;i>=0&&naf[i]===0;i--)k++;if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;var z=naf[i];assert(z!==0);if(p.type==="affine"){if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg())}else{if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}}return p.type==="affine"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(defW,points,coeffs,len){var wndWidth=this._wnafT1;var wnd=this._wnafT2;var naf=this._wnafT3;var max=0;for(var i=0;i=1;i-=2){var a=i-1;var b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a]);naf[b]=getNAF(coeffs[b],wndWidth[b]);max=Math.max(naf[a].length,max);max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0){comb[1]=points[a].add(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}else if(points[a].y.cmp(points[b].y.redNeg())===0){comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].add(points[b].neg())}else{comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}var index=[-3,-1,-5,-7,0,7,5,1,3];var jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max);naf[a]=new Array(max);naf[b]=new Array(max);for(var j=0;j=0;i--){var k=0;while(i>=0){var zero=true;for(var j=0;j=0)k++;acc=acc.dblp(k);if(i<0)break;for(var j=0;j0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type==="affine")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(var i=0;i=Math.ceil((k.bitLength()+1)/doubles.step)};BasePoint.prototype._getDoubles=function _getDoubles(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this];var acc=this;for(var i=0;i";return""};Point.prototype.isInfinity=function isInfinity(){return this.x.cmpn(0)===0&&this.y.cmp(this.z)===0};Point.prototype._extDbl=function _extDbl(){var a=this.x.redSqr();var b=this.y.redSqr();var c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a);var e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);var g=d.redAdd(b);var f=g.redSub(c);var h=d.redSub(b);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function _projDbl(){var b=this.x.redAdd(this.y).redSqr();var c=this.x.redSqr();var d=this.y.redSqr();var nx;var ny;var nz;if(this.curve.twisted){var e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne){nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));ny=f.redMul(e.redSub(d));nz=f.redSqr().redSub(f).redSub(f)}else{var h=this.z.redSqr();var j=f.redSub(h).redISub(h);nx=b.redSub(c).redISub(d).redMul(j);ny=f.redMul(e.redSub(d));nz=f.redMul(j)}}else{var e=c.redAdd(d);var h=this.curve._mulC(this.c.redMul(this.z)).redSqr();var j=e.redSub(h).redSub(h);nx=this.curve._mulC(b.redISub(e)).redMul(j);ny=this.curve._mulC(e).redMul(c.redISub(d));nz=e.redMul(j)}return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function _extAdd(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x));var b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));var c=this.t.redMul(this.curve.dd).redMul(p.t);var d=this.z.redMul(p.z.redAdd(p.z));var e=b.redSub(a);var f=d.redSub(c);var g=d.redAdd(c);var h=b.redAdd(a);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function _projAdd(p){var a=this.z.redMul(p.z);var b=a.redSqr();var c=this.x.redMul(p.x);var d=this.y.redMul(p.y);var e=this.curve.d.redMul(c).redMul(d);var f=b.redSub(e);var g=b.redAdd(e);var tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);var nx=a.redMul(f).redMul(tmp);var ny;var nz;if(this.curve.twisted){ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));nz=f.redMul(g)}else{ny=a.redMul(g).redMul(d.redSub(c));nz=this.curve._mulC(f).redMul(g)}return this.curve.point(nx,ny,nz)};Point.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function mul(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2)};Point.prototype.normalize=function normalize(){if(this.zOne)return this;var zi=this.z.redInvm();this.x=this.x.redMul(zi);this.y=this.y.redMul(zi);if(this.t)this.t=this.t.redMul(zi);this.z=this.curve.one;this.zOne=true;return this};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed()};Point.prototype.eq=function eq(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add},{"../../elliptic":70,"../curve":73,"bn.js":68,inherits:180}],73:[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base");curve.short=require("./short");curve.mont=require("./mont");curve.edwards=require("./edwards")},{"./base":71,"./edwards":72,"./mont":74,"./short":75}],74:[function(require,module,exports){"use strict";var curve=require("../curve");var bn=require("bn.js");var inherits=require("inherits");var Base=curve.base;var elliptic=require("../../elliptic");var utils=elliptic.utils;function MontCurve(conf){Base.call(this,"mont",conf);this.a=new bn(conf.a,16).toRed(this.red);this.b=new bn(conf.b,16).toRed(this.red);this.i4=new bn(4).toRed(this.red).redInvm();this.two=new bn(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function validate(point){var x=point.normalize().x;var x2=x.redSqr();var rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);var y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective");if(x===null&&z===null){this.x=this.curve.one;this.z=this.curve.zero}else{this.x=new bn(x,16);this.z=new bn(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function decodePoint(bytes,enc){return this.point(utils.toArray(bytes,enc),1)};MontCurve.prototype.point=function point(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};Point.prototype.precompute=function precompute(){};Point.prototype._encode=function _encode(){return this.getX().toArray("be",this.curve.p.byteLength())};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"";return""};Point.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0};Point.prototype.dbl=function dbl(){var a=this.x.redAdd(this.z);var aa=a.redSqr();var b=this.x.redSub(this.z);var bb=b.redSqr();var c=aa.redSub(bb);var nx=aa.redMul(bb);var nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function add(){throw new Error("Not supported on Montgomery curve")};Point.prototype.diffAdd=function diffAdd(p,diff){var a=this.x.redAdd(this.z);var b=this.x.redSub(this.z);var c=p.x.redAdd(p.z);var d=p.x.redSub(p.z);var da=d.redMul(a);var cb=c.redMul(b);var nx=diff.z.redMul(da.redAdd(cb).redSqr());var nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function mul(k){var t=k.clone();var a=this;var b=this.curve.point(null,null);var c=this;for(var bits=[];t.cmpn(0)!==0;t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--){if(bits[i]===0){a=a.diffAdd(b,c);b=b.dbl()}else{b=a.diffAdd(b,c);a=a.dbl()}}return b};Point.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")};Point.prototype.eq=function eq(other){return this.getX().cmp(other.getX())===0};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()}},{"../../elliptic":70,"../curve":73,"bn.js":68,inherits:180}],75:[function(require,module,exports){"use strict";var curve=require("../curve");var elliptic=require("../../elliptic");var bn=require("bn.js");var inherits=require("inherits");var Base=curve.base;var assert=elliptic.utils.assert;function ShortCurve(conf){Base.call(this,"short",conf);this.a=new bn(conf.a,16).toRed(this.red);this.b=new bn(conf.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;this.endo=this._getEndomorphism(conf);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4)}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta;var lambda;if(conf.beta){beta=new bn(conf.beta,16).toRed(this.red)}else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1];beta=beta.toRed(this.red)}if(conf.lambda){lambda=new bn(conf.lambda,16)}else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0){lambda=lambdas[0]}else{lambda=lambdas[1];assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}}var basis;if(conf.basis){basis=conf.basis.map(function(vec){return{a:new bn(vec.a,16),b:new bn(vec.b,16)}})}else{basis=this._getEndoBasis(lambda)}return{beta:beta,lambda:lambda,basis:basis}};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(num){var red=num===this.p?this.red:bn.mont(num);var tinv=new bn(2).toRed(red).redInvm();var ntinv=tinv.redNeg();var s=new bn(3).toRed(red).redNeg().redSqrt().redMul(tinv);var l1=ntinv.redAdd(s).fromRed();var l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(lambda){var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2));var u=lambda;var v=this.n.clone();var x1=new bn(1);var y1=new bn(0);var x2=new bn(0);var y2=new bn(1);var a0;var b0;var a1;var b1;var a2;var b2;var prevR;var i=0;var r;var x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u));x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0){a0=prevR.neg();b0=x1;a1=r.neg();b1=x}else if(a1&&++i===2){break}prevR=r;v=u;u=r;x2=x1;x1=x;y2=y1;y1=y}a2=r.neg();b2=x;var len1=a1.sqr().add(b1.sqr());var len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0){a2=a0;b2=b0}if(a1.negative){a1=a1.neg();b1=b1.neg()}if(a2.negative){a2=a2.neg();b2=b2.neg()}return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function _endoSplit(k){var basis=this.endo.basis;var v1=basis[0];var v2=basis[1];var c1=v2.b.mul(k).divRound(this.n);var c2=v1.b.neg().mul(k).divRound(this.n);var p1=c1.mul(v1.a);var p2=c2.mul(v2.a);var q1=c1.mul(v1.b);var q2=c2.mul(v2.b);var k1=k.sub(p1).sub(p2);var k2=q1.add(q2).neg();return{k1:k1,k2:k2}};ShortCurve.prototype.pointFromX=function pointFromX(x,odd){x=new bn(x,16);if(!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);var y=y2.redSqrt();var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.validate=function validate(point){if(point.inf)return true;var x=point.x;var y=point.y;var ax=this.a.redMul(x);var rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(points,coeffs){var npoints=this._endoWnafT1;var ncoeffs=this._endoWnafT2;for(var i=0;i";return""};Point.prototype.isInfinity=function isInfinity(){return this.inf};Point.prototype.add=function add(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x);var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function dbl(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a;var x2=this.x.redSqr();var dyinv=ys1.redInvm();var c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);var nx=c.redSqr().redISub(this.x.redAdd(this.x));var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function getX(){return this.x.fromRed()};Point.prototype.getY=function getY(){return this.y.fromRed()};Point.prototype.mul=function mul(k){k=new bn(k,16);if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.eq=function eq(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function neg(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed;var negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian");if(x===null&&y===null&&z===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new bn(0)}else{this.x=new bn(x,16);this.y=new bn(y,16);this.z=new bn(z,16)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function jpoint(x,y,z){return new JPoint(this,x,y,z)};JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm();var zinv2=zinv.redSqr();var ax=this.x.redMul(zinv2);var ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function add(p){if(this.isInfinity())return p; if(p.isInfinity())return this;var pz2=p.z.redSqr();var z2=this.z.redSqr();var u1=this.x.redMul(pz2);var u2=p.x.redMul(z2);var s1=this.y.redMul(pz2.redMul(p.z));var s2=p.y.redMul(z2.redMul(this.z));var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function mixedAdd(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr();var u1=this.x;var u2=p.x.redMul(z2);var s1=this.y;var s2=p.y.redMul(z2).redMul(this.z);var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function dblp(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var r=this;for(var i=0;i";return""};JPoint.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0}},{"../../elliptic":70,"../curve":73,"bn.js":68,inherits:180}],76:[function(require,module,exports){"use strict";var curves=exports;var hash=require("hash.js");var elliptic=require("../elliptic");var assert=elliptic.utils.assert;function PresetCurve(options){if(options.type==="short")this.curve=new elliptic.curve.short(options);else if(options.type==="edwards")this.curve=new elliptic.curve.edwards(options);else this.curve=new elliptic.curve.mont(options);this.g=this.curve.g;this.n=this.curve.n;this.hash=options.hash;assert(this.g.validate(),"Invalid curve");assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:true,enumerable:true,get:function(){var curve=new PresetCurve(options);Object.defineProperty(curves,name,{configurable:true,enumerable:true,value:curve});return curve}})}defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:false,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:false,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:false,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f "+"5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 "+"f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash.sha384,gRed:false,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 "+"5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 "+"0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b "+"99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd "+"3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 "+"f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash.sha512,gRed:false,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 "+"053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 "+"a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 "+"579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 "+"3fad0761 353c7086 a272c240 88be9476 9fd16650"]});defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["9"]});defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var pre;try{pre=require("./precomputed/secp256k1")}catch(e){pre=undefined}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:false,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"../elliptic":70,"./precomputed/secp256k1":84,"hash.js":87}],77:[function(require,module,exports){"use strict";var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var KeyPair=require("./key");var Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options==="string"){assert(elliptic.curves.hasOwnProperty(options),"Unknown curve "+options);options=elliptic.curves[options]}if(options instanceof elliptic.curves.PresetCurve)options={curve:options};this.curve=options.curve.curve;this.n=this.curve.n;this.nh=this.n.ushrn(1);this.g=this.curve.g;this.g=options.curve.g;this.g.precompute(options.curve.n.bitLength()+1);this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function keyPair(options){return new KeyPair(this,options)};EC.prototype.keyFromPrivate=function keyFromPrivate(priv,enc){return KeyPair.fromPrivate(this,priv,enc)};EC.prototype.keyFromPublic=function keyFromPublic(pub,enc){return KeyPair.fromPublic(this,pub,enc)};EC.prototype.genKeyPair=function genKeyPair(options){if(!options)options={};var drbg=new elliptic.hmacDRBG({hash:this.hash,pers:options.pers,entropy:options.entropy||elliptic.rand(this.hash.hmacStrength),nonce:this.n.toArray()});var bytes=this.n.byteLength();var ns2=this.n.sub(new bn(2));do{var priv=new bn(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;priv.iaddn(1);return this.keyFromPrivate(priv)}while(true)};EC.prototype._truncateToN=function truncateToN(msg,truncOnly){var delta=msg.byteLength()*8-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function sign(msg,key,enc,options){if(typeof enc==="object"){options=enc;enc=null}if(!options)options={};key=this.keyFromPrivate(key,enc);msg=this._truncateToN(new bn(msg,16));var bytes=this.n.byteLength();var bkey=key.getPrivate().toArray();for(var i=bkey.length;i=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX();var r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));s=s.umod(this.n);if(s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);if(options.canonical&&s.cmp(this.nh)>0){s=this.n.sub(s);recoveryParam^=1}return new Signature({r:r,s:s,recoveryParam:recoveryParam})}while(true)};EC.prototype.verify=function verify(msg,signature,key,enc){msg=this._truncateToN(new bn(msg,16));key=this.keyFromPublic(key,enc);signature=new Signature(signature,"hex");var r=signature.r;var s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;var sinv=s.invm(this.n);var u1=sinv.mul(msg).umod(this.n);var u2=sinv.mul(r).umod(this.n);var p=this.g.mulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.getX().umod(this.n).cmp(r)===0};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits");signature=new Signature(signature,enc);var n=this.n;var e=new bn(msg);var r=signature.r;var s=signature.s;var isYOdd=j&1;var isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error("Unable to find sencond key candinate");if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var eNeg=n.sub(e);var rInv=signature.r.invm(n);return r.mul(s).add(this.g.mul(eNeg)).mul(rInv)};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){signature=new Signature(signature,enc);if(signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime=this.recoverPubKey(e,signature,i);if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../../elliptic":70,"./key":78,"./signature":79,"bn.js":68}],78:[function(require,module,exports){"use strict";var bn=require("bn.js");function KeyPair(ec,options){this.ec=ec;this.priv=null;this.pub=null;if(options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair;KeyPair.fromPublic=function fromPublic(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub:pub,pubEnc:enc})};KeyPair.fromPrivate=function fromPrivate(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv:priv,privEnc:enc})};KeyPair.prototype.validate=function validate(){var pub=this.getPublic();if(pub.isInfinity())return{result:false,reason:"Invalid public key"};if(!pub.validate())return{result:false,reason:"Public key is not a point"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:false,reason:"Public key * N != O"};return{result:true,reason:null}};KeyPair.prototype.getPublic=function getPublic(compact,enc){if(typeof compact==="string"){enc=compact;compact=null}if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact)};KeyPair.prototype.getPrivate=function getPrivate(enc){if(enc==="hex")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function _importPrivate(key,enc){this.priv=new bn(key,enc||16);this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function _importPublic(key,enc){if(key.x||key.y){this.pub=this.ec.curve.point(key.x,key.y);return}this.pub=this.ec.curve.decodePoint(key,enc)};KeyPair.prototype.derive=function derive(pub){return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function sign(msg,enc,options){return this.ec.sign(msg,this,enc,options)};KeyPair.prototype.verify=function verify(msg,signature){return this.ec.verify(msg,signature,this)};KeyPair.prototype.inspect=function inspect(){return""}},{"bn.js":68}],79:[function(require,module,exports){"use strict";var bn=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;assert(options.r&&options.s,"Signature without r or s");this.r=new bn(options.r,16);this.s=new bn(options.s,16);if(options.recoveryParam!==null)this.recoveryParam=options.recoveryParam;else this.recoveryParam=null}module.exports=Signature;function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&128)){return initial}var octetLen=initial&15;var val=0;for(var i=0,off=p.place;i>>3);arr.push(octets|128);while(--octets){arr.push(len>>>(octets<<3)&255)}arr.push(len)}Signature.prototype.toDER=function toDER(enc){var r=this.r.toArray();var s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);r=rmPadding(r);s=rmPadding(s);while(!s[0]&&!(s[1]&128)){s=s.slice(1)}var arr=[2];constructLength(arr,r.length);arr=arr.concat(r);arr.push(2);constructLength(arr,s.length);var backHalf=arr.concat(s);var res=[48];constructLength(res,backHalf.length);res=res.concat(backHalf);return utils.encode(res,enc)}},{"../../elliptic":70,"bn.js":68}],80:[function(require,module,exports){"use strict";var hash=require("hash.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var parseBytes=utils.parseBytes;var KeyPair=require("./key");var Signature=require("./signature");function EDDSA(curve){assert(curve==="ed25519","only tested with ed25519 so far");if(!(this instanceof EDDSA))return new EDDSA(curve);var curve=elliptic.curves[curve].curve;this.curve=curve;this.g=curve.g;this.g.precompute(curve.n.bitLength()+1);this.pointClass=curve.point().constructor;this.encodingLength=Math.ceil(curve.n.bitLength()/8);this.hash=hash.sha512}module.exports=EDDSA;EDDSA.prototype.sign=function sign(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret);var r=this.hashInt(key.messagePrefix(),message);var R=this.g.mul(r);var Rencoded=this.encodePoint(R);var s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv());var S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})};EDDSA.prototype.verify=function verify(message,sig,pub){message=parseBytes(message);sig=this.makeSignature(sig);var key=this.keyFromPublic(pub);var h=this.hashInt(sig.Rencoded(),key.pubBytes(),message);var SG=this.g.mul(sig.S());var RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)};EDDSA.prototype.hashInt=function hashInt(){var hash=this.hash();for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function init(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._update(entropy.concat(add||[]));this.reseed=1};HmacDRBG.prototype.generate=function generate(len,enc,add,addEnc){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");if(typeof enc!=="string"){addEnc=add;add=enc;enc=null}if(add){add=utils.toArray(add,addEnc);this._update(add)}var temp=[];while(temp.length>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(var i=0;i=0){var z;if(k.isOdd()){var mod=k.andln(ws-1);if(mod>(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else{z=0}naf.push(z);var shift=k.cmpn(0)!==0&&k.andln(ws-1)===0?w+1:1;for(var i=1;i0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3;var m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0){u1=0}else{var m8=k1.andln(7)+d1&7;if((m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14}jsf[0].push(u1);var u2;if((m24&1)===0){u2=0}else{var m8=k2.andln(7)+d2&7;if((m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24}jsf[1].push(u2);if(2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1);k2.iushrn(1)}return jsf}utils.getJSF=getJSF;function cachedProperty(obj,computer){var name=computer.name;var key="_"+name;obj.prototype[name]=function cachedProperty(){return this[key]!==undefined?this[key]:this[key]=computer.call(this)}}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes==="string"?utils.toArray(bytes,"hex"):bytes}utils.parseBytes=parseBytes;function intFromLE(bytes){return new bn(bytes,"hex","le")}utils.intFromLE=intFromLE},{"bn.js":68}],86:[function(require,module,exports){var r;module.exports=function rand(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function generate(len){return this._rand(len)};if(typeof window==="object"){if(window.crypto&&window.crypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.crypto.getRandomValues(arr);return arr}}else if(window.msCrypto&&window.msCrypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.msCrypto.getRandomValues(arr);return arr}}else{Rand.prototype._rand=function(){throw new Error("Not implemented yet")}}}else{try{var crypto=require("cry"+"pto");Rand.prototype._rand=function _rand(n){return crypto.randomBytes(n)}}catch(e){Rand.prototype._rand=function _rand(n){var res=new Uint8Array(n);for(var i=0;i=this._delta8){msg=this.pending;var r=msg.length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length);if(this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&255;res[i++]=len>>>16&255;res[i++]=len>>>8&255;res[i++]=len&255}else{res[i++]=len&255;res[i++]=len>>>8&255;res[i++]=len>>>16&255;res[i++]=len>>>24&255;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;for(var t=8;tthis.blockSize)key=(new this.Hash).update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i