var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a<i;a++)pre+=" ";Module.print(pre+"^")}function parseNested(){i++;if(func[i]==="K")i++;var parts=[];while(func[i]!=="E"){if(func[i]==="S"){i++;var next=func.indexOf("_",i);var num=func.substring(i,next)||0;parts.push(subs[num]||"?");i=next+1;continue}if(func[i]==="C"){parts.push(parts[parts.length-1]);i+=2;continue}var size=parseInt(func.substr(i));var pre=size.toString().length;if(!size||!pre){i--;break}var curr=func.substr(i+pre,size);parts.push(curr);subs.push(curr);i+=pre+size}i++;return parts}function parse(rawList,limit,allowVoid){limit=limit||Infinity;var ret="",list=[];function flushList(){return"("+list.join(", ")+")"}var name;if(func[i]==="N"){name=parseNested().join("::");limit--;if(limit===0)return rawList?[name]:name}else{if(func[i]==="K"||first&&func[i]==="L")i++;var size=parseInt(func.substr(i));if(size){var pre=size.toString().length;name=func.substr(i+pre,size);i+=pre+size}}first=false;if(func[i]==="I"){i++;var iList=parse(true);var iRet=parse(true,1,true);ret+=iRet[0]+" "+name+"<"+iList.join(", ")+">"}else{ret=name}paramLoop:while(i<func.length&&limit-->0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||6e7;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer);HEAP16=new Int16Array(buffer);HEAP32=new Int32Array(buffer);HEAPU8=new Uint8Array(buffer);HEAPU16=new Uint16Array(buffer);HEAPU32=new Uint32Array(buffer);HEAPF32=new Float32Array(buffer);HEAPF64=new Float64Array(buffer);HEAP32[0]=255;assert(HEAPU8[0]===255&&HEAPU8[3]===0,"Typed arrays 2 must be run on a little-endian system");Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value}function reSign(value,bits,ignore){if(value<=0){return value}var half=bits<=32?Math.abs(1<<bits-1):Math.pow(2,bits-1);if(value>=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+646928;__ATINIT__.push();memoryInitializer="basis.js.mem";var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var ERRNO_MESSAGES={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:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"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",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can   access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(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}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=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;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"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)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new 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.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}}),runIter:(function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()})},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:(function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([(new Uint8Array(byteArray)).buffer],{type:Browser.getMimetype(name)})}}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append((new Uint8Array(byteArray)).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",(function(){finish(audio)}),false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}),wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:(function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle})};function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_ii":invoke_ii,"invoke_v":invoke_v,"invoke_viiiiii":invoke_viiiiii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"___assert_fail":___assert_fail,"___cxa_allocate_exception":___cxa_allocate_exception,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_sbrk":_sbrk,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_sysconf":_sysconf,"_pthread_self":_pthread_self,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_set_main_loop":_emscripten_set_main_loop,"___cxa_throw":___cxa_throw,"___lock":___lock,"_abort":_abort,"_pthread_cleanup_push":_pthread_cleanup_push,"_time":_time,"___syscall140":___syscall140,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=global.NaN,r=global.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=global.Math.min;var $=global.Math.clz32;var aa=env.abort;var ba=env.assert;var ca=env.invoke_iiii;var da=env.invoke_viiiii;var ea=env.invoke_vi;var fa=env.invoke_ii;var ga=env.invoke_v;var ha=env.invoke_viiiiii;var ia=env.invoke_viiii;var ja=env._pthread_cleanup_pop;var ka=env.___syscall6;var la=env.___setErrNo;var ma=env.___assert_fail;var na=env.___cxa_allocate_exception;var oa=env.__ZSt18uncaught_exceptionv;var pa=env._emscripten_set_main_loop_timing;var qa=env._sbrk;var ra=env._emscripten_memcpy_big;var sa=env.___resumeException;var ta=env.___cxa_find_matching_catch;var ua=env._sysconf;var va=env._pthread_self;var wa=env.___syscall54;var xa=env.___unlock;var ya=env._emscripten_set_main_loop;var za=env.___cxa_throw;var Aa=env.___lock;var Ba=env._abort;var Ca=env._pthread_cleanup_push;var Da=env._time;var Ea=env.___syscall140;var Fa=env.___syscall146;var Ga=0.0;
// EMSCRIPTEN_START_FUNCS
function Oa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Pa(){return i|0}function Qa(a){a=a|0;i=a}function Ra(a,b){a=a|0;b=b|0;i=a;j=b}function Sa(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function Ta(b){b=b|0;a[k>>0]=a[b>>0];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 Ua(b){b=b|0;a[k>>0]=a[b>>0];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 Va(a){a=a|0;B=a}function Wa(){return B|0}function Xa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=b+4|0;g=c[f>>2]|0;h=c[b>>2]|0;i=g-h>>4;if(i>>>0>=d>>>0){if(i>>>0>d>>>0?(j=h+(d<<4)|0,(g|0)!=(j|0)):0)c[f>>2]=g+(~((0-j+(g+-16)|0)>>>4)<<4)}else yb(b,d-i|0);if(!d)return;else k=0;do{i=c[b>>2]|0;g=c[e+(k<<2)>>2]|0;a[i+(k<<4)>>0]=g&3;a[i+(k<<4)+1>>0]=g>>>2&3;a[i+(k<<4)+2>>0]=g>>>4&3;a[i+(k<<4)+3>>0]=g>>>6&3;a[i+(k<<4)+4>>0]=g>>>8&3;a[i+(k<<4)+5>>0]=g>>>10&3;a[i+(k<<4)+6>>0]=g>>>12&3;a[i+(k<<4)+7>>0]=g>>>14&3;a[i+(k<<4)+8>>0]=g>>>16&3;a[i+(k<<4)+9>>0]=g>>>18&3;a[i+(k<<4)+10>>0]=g>>>20&3;a[i+(k<<4)+11>>0]=g>>>22&3;a[i+(k<<4)+12>>0]=g>>>24&3;a[i+(k<<4)+13>>0]=g>>>26&3;a[i+(k<<4)+14>>0]=g>>>28&3;a[i+(k<<4)+15>>0]=g>>>30;k=k+1|0}while((k|0)!=(d|0));return}function Ya(){var b=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;b=i;i=i+96|0;e=b+64|0;f=b;if(!(a[641762]|0))g=0;else{i=b;return}do{a[e+g>>0]=g<<3|g>>>2;g=g+1|0}while((g|0)!=32);h=0;do{g=641763+(h<<1)|0;j=641763+(h<<1)+1|0;k=0;l=256;while(1){m=k&255;n=d[e+k>>0]|0;o=0;p=l;while(1){q=d[e+o>>0]|0;r=((((q<<1)+n|0)>>>0)/3|0)-h|0;s=q-n|0;q=(((s|0)>-1?s:0-s|0)>>5)+((r|0)>-1?r:0-r|0)|0;if((q|0)<(p|0)){a[g>>0]=o;a[j>>0]=m;t=q}else t=p;o=o+1|0;if((o|0)==32){u=t;break}else p=t}p=k+1|0;if((p|0)==32)break;else{k=p;l=u}}h=h+1|0}while((h|0)!=256);v=0;do{h=642275+(v<<1)|0;u=642275+(v<<1)+1|0;t=0;l=256;while(1){k=t&255;j=0;g=l;while(1){p=(d[e+j>>0]|0)-v|0;o=(p|0)>-1?p:0-p|0;if((o|0)<(g|0)){a[h>>0]=j;a[u>>0]=k;w=o}else w=g;j=j+1|0;if((j|0)==32){x=w;break}else g=w}g=t+1|0;if((g|0)==32)break;else{t=g;l=x}}v=v+1|0}while((v|0)!=256);v=0;do{a[f+v>>0]=v<<2|v>>>4;v=v+1|0}while((v|0)!=64);y=0;do{v=642787+(y<<1)|0;x=642787+(y<<1)+1|0;w=0;e=256;while(1){l=w&255;t=d[f+w>>0]|0;u=0;h=e;while(1){g=d[f+u>>0]|0;j=((((g<<1)+t|0)>>>0)/3|0)-y|0;k=g-t|0;g=(((k|0)>-1?k:0-k|0)>>5)+((j|0)>-1?j:0-j|0)|0;if((g|0)<(h|0)){a[v>>0]=u;a[x>>0]=l;z=g}else z=h;u=u+1|0;if((u|0)==64){A=z;break}else h=z}h=w+1|0;if((h|0)==64)break;else{w=h;e=A}}y=y+1|0}while((y|0)!=256);B=0;do{y=643299+(B<<1)|0;A=643299+(B<<1)+1|0;z=0;e=256;while(1){w=z&255;x=0;v=e;while(1){h=(d[f+x>>0]|0)-B|0;u=(h|0)>-1?h:0-h|0;if((u|0)<(v|0)){a[y>>0]=x;a[A>>0]=w;C=u}else C=v;x=x+1|0;if((x|0)==64){D=C;break}else v=C}v=z+1|0;if((v|0)==64)break;else{z=v;e=D}}B=B+1|0}while((B|0)!=256);c[127258]=0;c[127262]=1;c[127257]=2;c[127261]=3;c[127266]=4;c[127256]=5;B=0;do{D=d[643819+(B<<2)+2>>0]|0;C=a[643815+D>>0]|0;a[643859+(B<<2)>>0]=a[643811+D>>0]|0;a[643899+(B<<2)>>0]=C;C=d[643819+(B<<2)+3>>0]|0;D=a[643815+C>>0]|0;a[643859+(B<<2)+1>>0]=a[643811+C>>0]|0;a[643899+(B<<2)+1>>0]=D;D=d[643819+(B<<2)+1>>0]|0;C=a[643815+D>>0]|0;a[643859+(B<<2)+2>>0]=a[643811+D>>0]|0;a[643899+(B<<2)+2>>0]=C;C=d[643819+(B<<2)>>0]|0;D=a[643815+C>>0]|0;a[643859+(B<<2)+3>>0]=a[643811+C>>0]|0;a[643899+(B<<2)+3>>0]=D;B=B+1|0}while((B|0)!=10);c[127271]=0;c[127276]=1;c[127281]=2;c[127286]=3;c[127274]=4;c[127278]=5;c[127273]=6;c[127277]=7;c[127282]=8;c[127272]=9;B=0;do{D=a[643939+(B<<2)+2>>0]|0;a[644131+(B<<2)>>0]=D;a[644323+(B<<2)>>0]=15-(D&255);D=a[643939+(B<<2)+3>>0]|0;a[644131+(B<<2)+1>>0]=D;a[644323+(B<<2)+1>>0]=15-(D&255);D=a[643939+(B<<2)+1>>0]|0;a[644131+(B<<2)+2>>0]=D;a[644323+(B<<2)+2>>0]=15-(D&255);D=a[643939+(B<<2)>>0]|0;a[644131+(B<<2)+3>>0]=D;a[644323+(B<<2)+3>>0]=15-(D&255);B=B+1|0}while((B|0)!=48);a[641762]=1;i=b;return}function Za(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,sb=0,tb=0,ub=0;m=i;i=i+352|0;n=m+264|0;o=m+224|0;p=m+188|0;q=m+152|0;r=m+116|0;s=m+76|0;t=m+80|0;u=m+40|0;v=m+328|0;w=m+312|0;x=m+4|0;y=m+296|0;z=m+280|0;A=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;B=o;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=p;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=q;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=r;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));c[n>>2]=h;h=n+4|0;c[h>>2]=g;g=n+8|0;c[g>>2]=0;D=n+12|0;c[D>>2]=0;if(((_a(n,o)|0?_a(n,p)|0:0)?_a(n,q)|0:0)?_a(n,r)|0:0){E=c[D>>2]|0;do if(!E)if(!(c[n>>2]|0)){c[D>>2]=8;F=c[g>>2]|0;G=8;break}else{H=c[h>>2]|0;c[h>>2]=H+1;I=c[g>>2]|(d[H>>0]|0);c[g>>2]=I;c[D>>2]=8;F=I;G=8;break}else{F=c[g>>2]|0;G=E}while(0);E=F&1;c[g>>2]=F>>>1;c[D>>2]=G+-1;G=(E|0)==0;F=e+4|0;I=c[F>>2]|0;H=c[e>>2]|0;J=I-H>>3;if(J>>>0>=f>>>0){if(J>>>0>f>>>0?(K=H+(f<<3)|0,(I|0)!=(K|0)):0)c[F>>2]=I+(~((I+-8-K|0)>>>3)<<3)}else zb(e,f-J|0);a[s>>0]=16;a[s+1>>0]=16;a[s+2>>0]=16;a[s+3>>0]=0;if(f){J=r+12|0;K=E<<1^3;E=o+12|0;I=o+24|0;F=p+12|0;H=p+24|0;L=q+12|0;M=q+24|0;N=r+24|0;O=0;P=0;do{Q=c[D>>2]|0;if(Q>>>0<16){R=(c[n>>2]|0)==0;S=15-Q&-8;T=Q;do{if(R)U=0;else{V=c[h>>2]|0;c[h>>2]=V+1;U=d[V>>0]|0}V=c[g>>2]|U<<T;c[g>>2]=V;T=T+8|0;c[D>>2]=T}while(T>>>0<16);W=V;X=W;Y=Q+8+S|0}else{X=c[g>>2]|0;Y=Q}T=c[(c[J>>2]|0)+((X&1023)<<2)>>2]|0;if((T|0)>-1){Z=T>>16;_=T&65535}else{R=c[N>>2]|0;V=10;$=T;while(1){T=V+1|0;aa=b[R+((X>>>V&1)+~$<<1)>>1]|0;ba=aa<<16>>16;if(aa<<16>>16<0){V=T;$=ba}else{Z=T;_=ba;break}}}c[g>>2]=X>>>Z;c[D>>2]=Y-Z;P=_+P&7;a[(c[e>>2]|0)+(O<<3)+4>>0]=P;$=0;do{V=s+$|0;R=a[V>>0]|0;do if((R&255)>=10){Q=c[D>>2]|0;S=Q>>>0<16;if((R&255)<22){if(S){ba=(c[n>>2]|0)==0;T=15-Q&-8;aa=Q;do{if(ba)ca=0;else{da=c[h>>2]|0;c[h>>2]=da+1;ca=d[da>>0]|0}da=c[g>>2]|ca<<aa;c[g>>2]=da;aa=aa+8|0;c[D>>2]=aa}while(aa>>>0<16);ea=da;fa=ea;ga=Q+8+T|0}else{fa=c[g>>2]|0;ga=Q}aa=c[(c[F>>2]|0)+((fa&1023)<<2)>>2]|0;if((aa|0)>-1){ha=aa>>16;ia=aa&65535}else{ba=c[H>>2]|0;da=10;ja=aa;while(1){aa=da+1|0;ka=b[ba+((fa>>>da&1)+~ja<<1)>>1]|0;la=ka<<16>>16;if(ka<<16>>16<0){da=aa;ja=la}else{ha=aa;ia=la;break}}}c[g>>2]=fa>>>ha;c[D>>2]=ga-ha;ma=ia;break}else{if(S){ja=(c[n>>2]|0)==0;da=15-Q&-8;ba=Q;do{if(ja)na=0;else{T=c[h>>2]|0;c[h>>2]=T+1;na=d[T>>0]|0}T=c[g>>2]|na<<ba;c[g>>2]=T;ba=ba+8|0;c[D>>2]=ba}while(ba>>>0<16);oa=T;pa=oa;qa=Q+8+da|0}else{pa=c[g>>2]|0;qa=Q}ba=c[(c[L>>2]|0)+((pa&1023)<<2)>>2]|0;if((ba|0)>-1){ra=ba>>16;sa=ba&65535}else{ja=c[M>>2]|0;S=10;T=ba;while(1){ba=S+1|0;la=b[ja+((pa>>>S&1)+~T<<1)>>1]|0;aa=la<<16>>16;if(la<<16>>16<0){S=ba;T=aa}else{ra=ba;sa=aa;break}}}c[g>>2]=pa>>>ra;c[D>>2]=qa-ra;ma=sa;break}}else{T=c[D>>2]|0;if(T>>>0<16){S=(c[n>>2]|0)==0;ja=15-T&-8;Q=T;do{if(S)ta=0;else{da=c[h>>2]|0;c[h>>2]=da+1;ta=d[da>>0]|0}da=c[g>>2]|ta<<Q;c[g>>2]=da;Q=Q+8|0;c[D>>2]=Q}while(Q>>>0<16);ua=da;va=ua;wa=T+8+ja|0}else{va=c[g>>2]|0;wa=T}Q=c[(c[E>>2]|0)+((va&1023)<<2)>>2]|0;if((Q|0)>-1){xa=Q>>16;ya=Q&65535}else{S=c[I>>2]|0;da=10;aa=Q;while(1){Q=da+1|0;ba=b[S+((va>>>da&1)+~aa<<1)>>1]|0;la=ba<<16>>16;if(ba<<16>>16<0){da=Q;aa=la}else{xa=Q;ya=la;break}}}c[g>>2]=va>>>xa;c[D>>2]=wa-xa;ma=ya}while(0);aa=(R&255)+ma&31;a[(c[e>>2]|0)+(O<<3)+$>>0]=aa;a[V>>0]=aa;$=$+1|0}while(($|0)!=(K|0));if(!G){$=(c[e>>2]|0)+(O<<3)|0;a[$+1>>0]=a[$>>0]|0;$=(c[e>>2]|0)+(O<<3)|0;a[$+2>>0]=a[$>>0]|0}O=O+1|0}while((O|0)!=(f|0))}f=e+12|0;O=e+16|0;G=c[O>>2]|0;K=c[f>>2]|0;ma=(G-K|0)/7|0;if(ma>>>0>=j>>>0){if(ma>>>0>j>>>0?(ya=K+(j*7|0)|0,(G|0)!=(ya|0)):0)c[O>>2]=G+(~(((0-ya+(G+-7)|0)>>>0)/7|0)*7|0)}else Ab(f,j-ma|0);c[n>>2]=l;c[h>>2]=k;c[g>>2]=0;c[D>>2]=0;B=t;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));a:do if(l){ma=k+1|0;c[h>>2]=ma;G=d[k>>0]|0;ya=G>>>1;c[g>>2]=ya;c[D>>2]=7;if(G&1){O=ya&15;c[h>>2]=k+2;K=d[ma>>0]|0;xa=K<<3&8|G>>>5;c[g>>2]=K>>>1;c[D>>2]=7;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));K=(xa|0)!=0;if(K?!(_a(n,u)|0):0)za=1;else if(!j)za=0;else{wa=(O|0)==0;va=u+12|0;I=u+24|0;E=e+24|0;ua=w+12|0;ta=w+6|0;sa=w+5|0;ra=w+4|0;qa=w+2|0;pa=w+3|0;M=w+1|0;L=w+7|0;oa=w+8|0;na=w+9|0;ia=w+10|0;ha=w+11|0;ga=0;do{if(wa)Aa=0;else Aa=$a(n,O)|0;if(K){fa=c[D>>2]|0;if(fa>>>0<16){H=(c[n>>2]|0)==0;F=15-fa&-8;ea=fa;do{if(H)Ba=0;else{ca=c[h>>2]|0;c[h>>2]=ca+1;Ba=d[ca>>0]|0}ca=c[g>>2]|Ba<<ea;c[g>>2]=ca;ea=ea+8|0;c[D>>2]=ea}while(ea>>>0<16);Ca=ca;Da=Ca;Ea=fa+8+F|0}else{Da=c[g>>2]|0;Ea=fa}ea=c[(c[va>>2]|0)+((Da&1023)<<2)>>2]|0;if((ea|0)>-1){Fa=ea>>16;Ga=ea&65535}else{H=c[I>>2]|0;V=10;R=ea;while(1){ea=V+1|0;ca=b[H+((Da>>>V&1)+~R<<1)>>1]|0;s=ca<<16>>16;if(ca<<16>>16<0){V=ea;R=s}else{Fa=ea;Ga=s;break}}}c[g>>2]=Da>>>Fa;c[D>>2]=Ea-Fa;Ha=Ga}else Ha=0;R=c[E>>2]|0;a[ua>>0]=Ha&3;a[ta>>0]=Ha>>>2&1;a[sa>>0]=Ha>>>3&1;a[w>>0]=Ha>>>4&3;a[ra>>0]=Ha>>>6&1;a[qa>>0]=Ha>>>7&1;a[pa>>0]=Ha>>>8&1;a[M>>0]=Ha>>>9&1;a[L>>0]=Ha>>>10&1;a[oa>>0]=Ha>>>11&1;a[na>>0]=Ha>>>12&1;a[ia>>0]=Ha>>>13&1;a[ha>>0]=Ha>>>14&1;rb(v,(c[R>>2]|0)+(Aa<<4)|0,w);R=0;do{V=R<<2;H=c[f>>2]|0;fa=3-(R>>>3)|0;F=H+(ga*7|0)+fa|0;s=d[644556+(d[v+V>>0]|0)>>0]|0;ea=~(1<<R);a[F>>0]=(d[F>>0]|0)&ea|(s&1)<<R;F=fa+-2+(H+(ga*7|0))|0;a[F>>0]=(d[F>>0]|0)&ea|s>>>1<<R;s=c[f>>2]|0;ea=R+4|0;F=3-(ea>>>3)|0;H=s+(ga*7|0)+F|0;fa=d[644556+(d[v+(V|1)>>0]|0)>>0]|0;ca=~(1<<ea);a[H>>0]=(d[H>>0]|0)&ca|(fa&1)<<ea;H=F+-2+(s+(ga*7|0))|0;a[H>>0]=(d[H>>0]|0)&ca|fa>>>1<<ea;ea=c[f>>2]|0;fa=R+8|0;ca=3-(fa>>>3)|0;H=ea+(ga*7|0)+ca|0;s=fa&7;fa=d[644556+(d[v+(V|2)>>0]|0)>>0]|0;F=~(1<<s);a[H>>0]=(d[H>>0]|0)&F|(fa&1)<<s;H=ca+-2+(ea+(ga*7|0))|0;a[H>>0]=(d[H>>0]|0)&F|fa>>>1<<s;s=c[f>>2]|0;fa=R+12|0;F=3-(fa>>>3)|0;H=s+(ga*7|0)+F|0;ea=fa&7;fa=d[644556+(d[v+(V|3)>>0]|0)>>0]|0;V=~(1<<ea);a[H>>0]=(d[H>>0]|0)&V|(fa&1)<<ea;H=F+-2+(s+(ga*7|0))|0;a[H>>0]=(d[H>>0]|0)&V|fa>>>1<<ea;R=R+1|0}while((R|0)!=4);ab((c[f>>2]|0)+(ga*7|0)|0);ga=ga+1|0}while(ga>>>0<j>>>0);za=0}ga=c[u+24>>2]|0;ha=ga;if(ga){ia=u+28|0;na=c[ia>>2]|0;if((na|0)!=(ga|0))c[ia>>2]=na+(~((na+-2-ha|0)>>>1)<<1);Qb(ga)}ga=c[u+12>>2]|0;ha=ga;if(ga){na=u+16|0;ia=c[na>>2]|0;if((ia|0)!=(ga|0))c[na>>2]=ia+(~((ia+-4-ha|0)>>>2)<<2);Qb(ga)}ga=c[u>>2]|0;if(ga){ha=u+4|0;if((c[ha>>2]|0)!=(ga|0))c[ha>>2]=ga;Qb(ga)}if(!za){Ia=225;break}else{Ja=0;break}}ga=G>>>2;c[g>>2]=ga;c[D>>2]=6;if(!(ya&1)){c[g>>2]=G>>>3;c[D>>2]=5;if(!(ga&1)){Ia=198;break}if(!j){Ia=225;break}else Ka=0;while(1){ha=0;do{ia=c[D>>2]|0;do if(ia>>>0<8)if(!(c[n>>2]|0)){na=ia;while(1){oa=na+8|0;if(na>>>0>4294967287)na=oa;else{La=oa;break}}c[D>>2]=La;Ma=c[g>>2]|0;Na=La;break}else{na=c[h>>2]|0;oa=ia;L=c[g>>2]|0;while(1){M=na;na=na+1|0;c[h>>2]=na;pa=(d[M>>0]|0)<<oa|L;c[g>>2]=pa;M=oa+8|0;c[D>>2]=M;if(oa>>>0<=4294967287){Ma=pa;Na=M;break}else{oa=M;L=pa}}}else{Ma=c[g>>2]|0;Na=ia}while(0);c[g>>2]=Ma>>>8;c[D>>2]=Na+-8;ia=c[f>>2]|0;L=3-(ha>>>3)|0;oa=ia+(Ka*7|0)+L|0;na=d[644556+(Ma&3)>>0]|0;pa=~(1<<ha);a[oa>>0]=(d[oa>>0]|0)&pa|(na&1)<<ha;oa=L+-2+(ia+(Ka*7|0))|0;a[oa>>0]=(d[oa>>0]|0)&pa|na>>>1<<ha;na=c[f>>2]|0;pa=ha+4|0;oa=3-(pa>>>3)|0;ia=na+(Ka*7|0)+oa|0;L=d[644556+(Ma>>>2&3)>>0]|0;M=~(1<<pa);a[ia>>0]=(d[ia>>0]|0)&M|(L&1)<<pa;ia=oa+-2+(na+(Ka*7|0))|0;a[ia>>0]=(d[ia>>0]|0)&M|L>>>1<<pa;pa=c[f>>2]|0;L=ha+8|0;M=3-(L>>>3)|0;ia=pa+(Ka*7|0)+M|0;na=L&7;L=d[644556+(Ma>>>4&3)>>0]|0;oa=~(1<<na);a[ia>>0]=(d[ia>>0]|0)&oa|(L&1)<<na;ia=M+-2+(pa+(Ka*7|0))|0;a[ia>>0]=(d[ia>>0]|0)&oa|L>>>1<<na;na=c[f>>2]|0;L=ha+12|0;oa=3-(L>>>3)|0;ia=na+(Ka*7|0)+oa|0;pa=L&7;L=d[644556+(Ma>>>6&3)>>0]|0;M=~(1<<pa);a[ia>>0]=(d[ia>>0]|0)&M|(L&1)<<pa;ia=oa+-2+(na+(Ka*7|0))|0;a[ia>>0]=(d[ia>>0]|0)&M|L>>>1<<pa;ha=ha+1|0}while((ha|0)!=4);ab((c[f>>2]|0)+(Ka*7|0)|0);Ka=Ka+1|0;if((Ka|0)==(j|0)){Ia=225;break a}}}ya=ga&15;c[h>>2]=k+2;ha=d[ma>>0]|0;pa=ha<<2&12|G>>>6;c[g>>2]=ha>>>2;c[D>>2]=6;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(_a(n,u)|0){B=x;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));G=(pa|0)!=0;if(G?!(_a(n,x)|0):0)Oa=1;else if(!j)Oa=0;else{ma=u+12|0;ga=u+24|0;ha=(ya|0)==0;L=x+12|0;M=x+24|0;ia=e+24|0;na=z+12|0;oa=z+6|0;qa=z+5|0;ra=z+4|0;sa=z+2|0;ta=z+3|0;ua=z+1|0;E=z+7|0;I=z+8|0;va=z+9|0;K=z+10|0;O=z+11|0;wa=0;xa=0;R=0;do{if(!R){ea=c[D>>2]|0;if(ea>>>0<16){fa=(c[n>>2]|0)==0;V=15-ea&-8;H=ea;do{if(fa)Pa=0;else{s=c[h>>2]|0;c[h>>2]=s+1;Pa=d[s>>0]|0}s=c[g>>2]|Pa<<H;c[g>>2]=s;H=H+8|0;c[D>>2]=H}while(H>>>0<16);Qa=s;Ra=Qa;Sa=ea+8+V|0}else{Ra=c[g>>2]|0;Sa=ea}H=c[(c[ma>>2]|0)+((Ra&1023)<<2)>>2]|0;if((H|0)>-1){Ta=H>>16;Ua=H&65535}else{fa=c[ga>>2]|0;s=10;F=H;while(1){H=s+1|0;ca=b[fa+((Ra>>>s&1)+~F<<1)>>1]|0;P=ca<<16>>16;if(ca<<16>>16<0){s=H;F=P}else{Ta=H;Ua=P;break}}}c[g>>2]=Ra>>>Ta;c[D>>2]=Sa-Ta;Va=Ua;Wa=8}else{Va=wa;Wa=R}R=Wa+-1|0;wa=Va>>>1;if(!(Va&1)){F=0;do{s=c[D>>2]|0;do if(s>>>0<8)if(!(c[n>>2]|0)){fa=s;while(1){ea=fa+8|0;if(fa>>>0>4294967287)fa=ea;else{Xa=ea;break}}c[D>>2]=Xa;Ya=c[g>>2]|0;Za=Xa;break}else{fa=s;ea=c[g>>2]|0;while(1){V=c[h>>2]|0;c[h>>2]=V+1;P=(d[V>>0]|0)<<fa|ea;c[g>>2]=P;V=fa+8|0;c[D>>2]=V;if(fa>>>0>4294967287){fa=V;ea=P}else{Ya=P;Za=V;break}}}else{Ya=c[g>>2]|0;Za=s}while(0);c[g>>2]=Ya>>>8;c[D>>2]=Za+-8;s=c[f>>2]|0;ea=3-(F>>>3)|0;fa=s+(xa*7|0)+ea|0;V=d[644556+(Ya&3)>>0]|0;P=~(1<<F);a[fa>>0]=(d[fa>>0]|0)&P|(V&1)<<F;fa=ea+-2+(s+(xa*7|0))|0;a[fa>>0]=(d[fa>>0]|0)&P|V>>>1<<F;V=c[f>>2]|0;P=F+4|0;fa=3-(P>>>3)|0;s=V+(xa*7|0)+fa|0;ea=d[644556+(Ya>>>2&3)>>0]|0;H=~(1<<P);a[s>>0]=(d[s>>0]|0)&H|(ea&1)<<P;s=fa+-2+(V+(xa*7|0))|0;a[s>>0]=(d[s>>0]|0)&H|ea>>>1<<P;P=c[f>>2]|0;ea=F+8|0;H=3-(ea>>>3)|0;s=P+(xa*7|0)+H|0;V=ea&7;ea=d[644556+(Ya>>>4&3)>>0]|0;fa=~(1<<V);a[s>>0]=(d[s>>0]|0)&fa|(ea&1)<<V;s=H+-2+(P+(xa*7|0))|0;a[s>>0]=(d[s>>0]|0)&fa|ea>>>1<<V;V=c[f>>2]|0;ea=F+12|0;fa=3-(ea>>>3)|0;s=V+(xa*7|0)+fa|0;P=ea&7;ea=d[644556+(Ya>>>6&3)>>0]|0;H=~(1<<P);a[s>>0]=(d[s>>0]|0)&H|(ea&1)<<P;s=fa+-2+(V+(xa*7|0))|0;a[s>>0]=(d[s>>0]|0)&H|ea>>>1<<P;F=F+1|0}while((F|0)!=4)}else{if(ha)bb=0;else bb=$a(n,ya)|0;if(G){F=c[D>>2]|0;if(F>>>0<16){P=(c[n>>2]|0)==0;ea=15-F&-8;H=F;do{if(P)cb=0;else{s=c[h>>2]|0;c[h>>2]=s+1;cb=d[s>>0]|0}s=c[g>>2]|cb<<H;c[g>>2]=s;H=H+8|0;c[D>>2]=H}while(H>>>0<16);db=s;eb=db;fb=F+8+ea|0}else{eb=c[g>>2]|0;fb=F}H=c[(c[L>>2]|0)+((eb&1023)<<2)>>2]|0;if((H|0)>-1){gb=H>>16;hb=H&65535}else{P=c[M>>2]|0;s=10;V=H;while(1){H=s+1|0;fa=b[P+((eb>>>s&1)+~V<<1)>>1]|0;ca=fa<<16>>16;if(fa<<16>>16<0){s=H;V=ca}else{gb=H;hb=ca;break}}}c[g>>2]=eb>>>gb;c[D>>2]=fb-gb;ib=hb}else ib=0;V=c[ia>>2]|0;a[na>>0]=ib&3;a[oa>>0]=ib>>>2&1;a[qa>>0]=ib>>>3&1;a[z>>0]=ib>>>4&3;a[ra>>0]=ib>>>6&1;a[sa>>0]=ib>>>7&1;a[ta>>0]=ib>>>8&1;a[ua>>0]=ib>>>9&1;a[E>>0]=ib>>>10&1;a[I>>0]=ib>>>11&1;a[va>>0]=ib>>>12&1;a[K>>0]=ib>>>13&1;a[O>>0]=ib>>>14&1;rb(y,(c[V>>2]|0)+(bb<<4)|0,z);V=0;do{s=V<<2;P=c[f>>2]|0;F=3-(V>>>3)|0;ea=P+(xa*7|0)+F|0;ca=d[644556+(d[y+s>>0]|0)>>0]|0;H=~(1<<V);a[ea>>0]=(d[ea>>0]|0)&H|(ca&1)<<V;ea=F+-2+(P+(xa*7|0))|0;a[ea>>0]=(d[ea>>0]|0)&H|ca>>>1<<V;ca=c[f>>2]|0;H=V+4|0;ea=3-(H>>>3)|0;P=ca+(xa*7|0)+ea|0;F=d[644556+(d[y+(s|1)>>0]|0)>>0]|0;fa=~(1<<H);a[P>>0]=(d[P>>0]|0)&fa|(F&1)<<H;P=ea+-2+(ca+(xa*7|0))|0;a[P>>0]=(d[P>>0]|0)&fa|F>>>1<<H;H=c[f>>2]|0;F=V+8|0;fa=3-(F>>>3)|0;P=H+(xa*7|0)+fa|0;ca=F&7;F=d[644556+(d[y+(s|2)>>0]|0)>>0]|0;ea=~(1<<ca);a[P>>0]=(d[P>>0]|0)&ea|(F&1)<<ca;P=fa+-2+(H+(xa*7|0))|0;a[P>>0]=(d[P>>0]|0)&ea|F>>>1<<ca;ca=c[f>>2]|0;F=V+12|0;ea=3-(F>>>3)|0;P=ca+(xa*7|0)+ea|0;H=F&7;F=d[644556+(d[y+(s|3)>>0]|0)>>0]|0;s=~(1<<H);a[P>>0]=(d[P>>0]|0)&s|(F&1)<<H;P=ea+-2+(ca+(xa*7|0))|0;a[P>>0]=(d[P>>0]|0)&s|F>>>1<<H;V=V+1|0}while((V|0)!=4)}ab((c[f>>2]|0)+(xa*7|0)|0);xa=xa+1|0}while(xa>>>0<j>>>0);Oa=0}xa=c[x+24>>2]|0;O=xa;if(xa){K=x+28|0;va=c[K>>2]|0;if((va|0)!=(xa|0))c[K>>2]=va+(~((va+-2-O|0)>>>1)<<1);Qb(xa)}xa=c[x+12>>2]|0;O=xa;if(xa){va=x+16|0;K=c[va>>2]|0;if((K|0)!=(xa|0))c[va>>2]=K+(~((K+-4-O|0)>>>2)<<2);Qb(xa)}xa=c[x>>2]|0;if(xa){O=x+4|0;if((c[O>>2]|0)!=(xa|0))c[O>>2]=xa;Qb(xa)}jb=Oa}else jb=1;xa=c[u+24>>2]|0;O=xa;if(xa){K=u+28|0;va=c[K>>2]|0;if((va|0)!=(xa|0))c[K>>2]=va+(~((va+-2-O|0)>>>1)<<1);Qb(xa)}xa=c[u+12>>2]|0;O=xa;if(xa){va=u+16|0;K=c[va>>2]|0;if((K|0)!=(xa|0))c[va>>2]=K+(~((K+-4-O|0)>>>2)<<2);Qb(xa)}xa=c[u>>2]|0;if(xa){O=u+4|0;if((c[O>>2]|0)!=(xa|0))c[O>>2]=xa;Qb(xa)}if(!jb)Ia=225;else Ja=0}else{c[g>>2]=0;c[D>>2]=5;Ia=198}while(0);if((Ia|0)==198)if(_a(n,t)|0){c[A>>2]=0;if(!j)Ia=225;else{jb=t+12|0;u=t+24|0;Oa=0;do{if(!Oa){x=0;do{y=c[D>>2]|0;do if(y>>>0<8)if(!(c[n>>2]|0)){z=y;while(1){bb=z+8|0;if(z>>>0>4294967287)z=bb;else{kb=bb;break}}c[D>>2]=kb;lb=c[g>>2]|0;mb=kb;break}else{z=c[h>>2]|0;bb=y;ib=c[g>>2]|0;while(1){hb=z;z=z+1|0;c[h>>2]=z;gb=(d[hb>>0]|0)<<bb|ib;c[g>>2]=gb;hb=bb+8|0;c[D>>2]=hb;if(bb>>>0<=4294967287){lb=gb;mb=hb;break}else{bb=hb;ib=gb}}}else{lb=c[g>>2]|0;mb=y}while(0);c[g>>2]=lb>>>8;c[D>>2]=mb+-8;a[A+x>>0]=lb;y=c[f>>2]|0;ib=3-(x>>>3)|0;bb=y+ib|0;z=d[644556+(lb&3)>>0]|0;gb=~(1<<x);a[bb>>0]=(d[bb>>0]|0)&gb|(z&1)<<x;bb=y+(ib+-2)|0;a[bb>>0]=(d[bb>>0]|0)&gb|z>>>1<<x;z=c[f>>2]|0;gb=x+4|0;bb=3-(gb>>>3)|0;ib=z+bb|0;y=d[644556+(lb>>>2&3)>>0]|0;hb=~(1<<gb);a[ib>>0]=(d[ib>>0]|0)&hb|(y&1)<<gb;ib=z+(bb+-2)|0;a[ib>>0]=(d[ib>>0]|0)&hb|y>>>1<<gb;gb=c[f>>2]|0;y=x+8|0;hb=3-(y>>>3)|0;ib=gb+hb|0;bb=y&7;y=d[644556+(lb>>>4&3)>>0]|0;z=~(1<<bb);a[ib>>0]=(d[ib>>0]|0)&z|(y&1)<<bb;ib=gb+(hb+-2)|0;a[ib>>0]=(d[ib>>0]|0)&z|y>>>1<<bb;bb=c[f>>2]|0;y=x+12|0;z=3-(y>>>3)|0;ib=bb+z|0;hb=y&7;y=d[644556+(lb>>>6&3)>>0]|0;gb=~(1<<hb);a[ib>>0]=(d[ib>>0]|0)&gb|(y&1)<<hb;ib=bb+(z+-2)|0;a[ib>>0]=(d[ib>>0]|0)&gb|y>>>1<<hb;x=x+1|0}while((x|0)!=4);ab(c[f>>2]|0)}else{x=0;do{hb=c[D>>2]|0;do if(hb>>>0<16){y=15-hb&-8;if(!(c[n>>2]|0)){gb=hb;while(1){ib=gb+8|0;if(ib>>>0<16)gb=ib;else{nb=ib;break}}c[D>>2]=nb;ob=c[g>>2]|0;pb=hb+8+y|0;break}else{gb=hb;do{ib=c[h>>2]|0;c[h>>2]=ib+1;z=c[g>>2]|(d[ib>>0]|0)<<gb;c[g>>2]=z;gb=gb+8|0;c[D>>2]=gb}while(gb>>>0<16);qb=z;ob=qb;pb=hb+8+y|0;break}}else{ob=c[g>>2]|0;pb=hb}while(0);hb=c[(c[jb>>2]|0)+((ob&1023)<<2)>>2]|0;if((hb|0)>-1){sb=hb>>16;tb=hb&65535}else{gb=c[u>>2]|0;z=10;ib=hb;while(1){hb=z+1|0;bb=b[gb+((ob>>>z&1)+~ib<<1)>>1]|0;fb=bb<<16>>16;if(bb<<16>>16<0){z=hb;ib=fb}else{sb=hb;tb=fb;break}}}c[g>>2]=ob>>>sb;c[D>>2]=pb-sb;ib=A+x|0;z=(d[ib>>0]|0)^tb;a[ib>>0]=z;ib=c[f>>2]|0;gb=3-(x>>>3)|0;fb=ib+(Oa*7|0)+gb|0;hb=d[644556+(z&3)>>0]|0;bb=~(1<<x);a[fb>>0]=(d[fb>>0]|0)&bb|(hb&1)<<x;fb=gb+-2+(ib+(Oa*7|0))|0;a[fb>>0]=(d[fb>>0]|0)&bb|hb>>>1<<x;hb=c[f>>2]|0;bb=x+4|0;fb=3-(bb>>>3)|0;ib=hb+(Oa*7|0)+fb|0;gb=d[644556+(z>>>2&3)>>0]|0;eb=~(1<<bb);a[ib>>0]=(d[ib>>0]|0)&eb|(gb&1)<<bb;ib=fb+-2+(hb+(Oa*7|0))|0;a[ib>>0]=(d[ib>>0]|0)&eb|gb>>>1<<bb;bb=c[f>>2]|0;gb=x+8|0;eb=3-(gb>>>3)|0;ib=bb+(Oa*7|0)+eb|0;hb=gb&7;gb=d[644556+(z>>>4&3)>>0]|0;fb=~(1<<hb);a[ib>>0]=(d[ib>>0]|0)&fb|(gb&1)<<hb;ib=eb+-2+(bb+(Oa*7|0))|0;a[ib>>0]=(d[ib>>0]|0)&fb|gb>>>1<<hb;hb=c[f>>2]|0;gb=x+12|0;fb=3-(gb>>>3)|0;ib=hb+(Oa*7|0)+fb|0;bb=gb&7;gb=d[644556+(z>>>6&3)>>0]|0;z=~(1<<bb);a[ib>>0]=(d[ib>>0]|0)&z|(gb&1)<<bb;ib=fb+-2+(hb+(Oa*7|0))|0;a[ib>>0]=(d[ib>>0]|0)&z|gb>>>1<<bb;x=x+1|0}while((x|0)!=4);ab((c[f>>2]|0)+(Oa*7|0)|0)}Oa=Oa+1|0}while((Oa|0)!=(j|0));Ia=225}}else Ja=0;if((Ia|0)==225)Ja=1;Ia=c[t+24>>2]|0;j=Ia;if(Ia){Oa=t+28|0;f=c[Oa>>2]|0;if((f|0)!=(Ia|0))c[Oa>>2]=f+(~((f+-2-j|0)>>>1)<<1);Qb(Ia)}Ia=c[t+12>>2]|0;j=Ia;if(Ia){f=t+16|0;Oa=c[f>>2]|0;if((Oa|0)!=(Ia|0))c[f>>2]=Oa+(~((Oa+-4-j|0)>>>2)<<2);Qb(Ia)}Ia=c[t>>2]|0;if(Ia){j=t+4|0;if((c[j>>2]|0)!=(Ia|0))c[j>>2]=Ia;Qb(Ia)}ub=Ja}else ub=0;Ja=c[r+24>>2]|0;Ia=Ja;if(Ja){j=r+28|0;t=c[j>>2]|0;if((t|0)!=(Ja|0))c[j>>2]=t+(~((t+-2-Ia|0)>>>1)<<1);Qb(Ja)}Ja=c[r+12>>2]|0;Ia=Ja;if(Ja){t=r+16|0;j=c[t>>2]|0;if((j|0)!=(Ja|0))c[t>>2]=j+(~((j+-4-Ia|0)>>>2)<<2);Qb(Ja)}Ja=c[r>>2]|0;if(Ja){Ia=r+4|0;if((c[Ia>>2]|0)!=(Ja|0))c[Ia>>2]=Ja;Qb(Ja)}Ja=c[q+24>>2]|0;Ia=Ja;if(Ja){r=q+28|0;j=c[r>>2]|0;if((j|0)!=(Ja|0))c[r>>2]=j+(~((j+-2-Ia|0)>>>1)<<1);Qb(Ja)}Ja=c[q+12>>2]|0;Ia=Ja;if(Ja){j=q+16|0;r=c[j>>2]|0;if((r|0)!=(Ja|0))c[j>>2]=r+(~((r+-4-Ia|0)>>>2)<<2);Qb(Ja)}Ja=c[q>>2]|0;if(Ja){Ia=q+4|0;if((c[Ia>>2]|0)!=(Ja|0))c[Ia>>2]=Ja;Qb(Ja)}Ja=c[p+24>>2]|0;Ia=Ja;if(Ja){q=p+28|0;r=c[q>>2]|0;if((r|0)!=(Ja|0))c[q>>2]=r+(~((r+-2-Ia|0)>>>1)<<1);Qb(Ja)}Ja=c[p+12>>2]|0;Ia=Ja;if(Ja){r=p+16|0;q=c[r>>2]|0;if((q|0)!=(Ja|0))c[r>>2]=q+(~((q+-4-Ia|0)>>>2)<<2);Qb(Ja)}Ja=c[p>>2]|0;if(Ja){Ia=p+4|0;if((c[Ia>>2]|0)!=(Ja|0))c[Ia>>2]=Ja;Qb(Ja)}Ja=c[o+24>>2]|0;Ia=Ja;if(Ja){p=o+28|0;q=c[p>>2]|0;if((q|0)!=(Ja|0))c[p>>2]=q+(~((q+-2-Ia|0)>>>1)<<1);Qb(Ja)}Ja=c[o+12>>2]|0;Ia=Ja;if(Ja){q=o+16|0;p=c[q>>2]|0;if((p|0)!=(Ja|0))c[q>>2]=p+(~((p+-4-Ia|0)>>>2)<<2);Qb(Ja)}Ja=c[o>>2]|0;if(!Ja){i=m;return ub|0}Ia=o+4|0;if((c[Ia>>2]|0)!=(Ja|0))c[Ia>>2]=Ja;Qb(Ja);i=m;return ub|0}function _a(e,f){e=e|0;f=f|0;var 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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;g=i;i=i+64|0;h=g+36|0;j=g;k=c[f>>2]|0;l=f+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[f+12>>2]|0;l=f+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[f+24>>2]|0;m=f+28|0;l=c[m>>2]|0;if((k|0)!=(l|0))c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);k=e+12|0;l=c[k>>2]|0;do if(l>>>0<14){m=e+8|0;n=e+4|0;o=l+(13-l&-8)|0;if(!(c[e>>2]|0)){p=o+8|0;c[k>>2]=p;q=m;r=c[m>>2]|0;s=p;break}p=c[n>>2]|0;t=l;u=c[m>>2]|0;while(1){v=p;p=p+1|0;c[n>>2]=p;w=(d[v>>0]|0)<<t|u;c[m>>2]=w;t=t+8|0;c[k>>2]=t;if(t>>>0>=14){x=w;break}else u=w}q=m;r=x;s=o+8|0}else{u=e+8|0;q=u;r=c[u>>2]|0;s=l}while(0);l=r&16383;c[q>>2]=r>>>14;q=s+-14|0;c[k>>2]=q;if(!l){y=1;i=g;return y|0}x=h;u=x+21|0;do{a[x>>0]=0;x=x+1|0}while((x|0)<(u|0));do if(q>>>0<5){t=e+8|0;p=e+4|0;n=q+(18-s&-8)|0;if(!(c[e>>2]|0)){w=n+8|0;c[k>>2]=w;z=t;A=c[t>>2]|0;B=w;break}w=c[p>>2]|0;v=q;C=c[t>>2]|0;while(1){D=w;w=w+1|0;c[p>>2]=w;E=(d[D>>0]|0)<<v|C;c[t>>2]=E;v=v+8|0;c[k>>2]=v;if(v>>>0>=5){F=E;break}else C=E}z=t;A=F;B=n+8|0}else{C=e+8|0;z=C;A=c[C>>2]|0;B=q}while(0);q=A&31;c[z>>2]=A>>>5;z=B+-5|0;c[k>>2]=z;if((q+-1|0)>>>0>20){y=0;i=g;return y|0}if(q){q=e+8|0;B=e+4|0;F=A&31;A=z;z=0;do{do if(A>>>0<3){s=2-A&-8;if(!(c[e>>2]|0)){C=A+8+s|0;c[k>>2]=C;G=c[q>>2]|0;H=C;break}C=c[B>>2]|0;v=A;w=c[q>>2]|0;while(1){p=C;C=C+1|0;c[B>>2]=C;o=(d[p>>0]|0)<<v|w;c[q>>2]=o;v=v+8|0;c[k>>2]=v;if(v>>>0>=3){I=o;break}else w=o}G=I;H=A+8+s|0}else{G=c[q>>2]|0;H=A}while(0);c[q>>2]=G>>>3;A=H+-3|0;c[k>>2]=A;a[h+(d[644515+z>>0]|0)>>0]=G&7;z=z+1|0}while((z|0)!=(F|0))}x=j;u=x+36|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(u|0));if(nb(j,21,h)|0){h=Pb(l)|0;Ec(h|0,0,r&16383|0)|0;r=e+8|0;x=e+4|0;u=j+12|0;F=j+24|0;z=0;a:while(1){G=c[k>>2]|0;do if(G>>>0<16){A=15-G&-8;if(!(c[e>>2]|0)){H=G;while(1){q=H+8|0;if(q>>>0<16)H=q;else{J=q;break}}c[k>>2]=J;K=c[r>>2]|0;L=G+8+A|0;break}else{H=G;do{s=c[x>>2]|0;c[x>>2]=s+1;q=c[r>>2]|(d[s>>0]|0)<<H;c[r>>2]=q;H=H+8|0;c[k>>2]=H}while(H>>>0<16);M=q;K=M;L=G+8+A|0;break}}else{K=c[r>>2]|0;L=G}while(0);G=c[(c[u>>2]|0)+((K&1023)<<2)>>2]|0;if((G|0)>-1){N=G>>16;O=G&65535}else{H=c[F>>2]|0;q=10;s=G;while(1){G=q+1|0;I=b[H+((K>>>q&1)+~s<<1)>>1]|0;B=I<<16>>16;if(I<<16>>16<0){q=G;s=B}else{N=G;O=B;break}}}s=K>>>N;c[r>>2]=s;q=L-N|0;c[k>>2]=q;b:do if((O|0)<17){a[h+z>>0]=O;P=z+1|0}else switch(O|0){case 17:{do if(q>>>0<3){H=L+8+(N+2-L&-8)|0;if(!(c[e>>2]|0)){B=H-N|0;c[k>>2]=B;Q=s;R=B;break}else{S=q;T=s}while(1){B=c[x>>2]|0;c[x>>2]=B+1;G=(d[B>>0]|0)<<S|T;c[r>>2]=G;S=S+8|0;c[k>>2]=S;if(S>>>0>=3){U=G;break}else T=G}Q=U;R=H-N|0}else{Q=s;R=q}while(0);c[r>>2]=Q>>>3;c[k>>2]=R+-3;P=z+3+(Q&7)|0;break b;break}case 18:{do if(q>>>0<7){A=L+8+(N+6-L&-8)|0;if(!(c[e>>2]|0)){G=A-N|0;c[k>>2]=G;V=s;W=G;break}else{X=q;Y=s}while(1){G=c[x>>2]|0;c[x>>2]=G+1;B=(d[G>>0]|0)<<X|Y;c[r>>2]=B;X=X+8|0;c[k>>2]=X;if(X>>>0>=7){Z=B;break}else Y=B}V=Z;W=A-N|0}else{V=s;W=q}while(0);c[r>>2]=V>>>7;c[k>>2]=W+-7;P=z+11+(V&127)|0;break b;break}default:{if(!z){_=0;break a}if((O|0)==19){do if(q>>>0<2){H=L+8+(N+1-L&-8)|0;if(!(c[e>>2]|0)){B=H-N|0;c[k>>2]=B;$=s;aa=B;break}else{ba=q;ca=s}while(1){B=c[x>>2]|0;c[x>>2]=B+1;G=(d[B>>0]|0)<<ba|ca;c[r>>2]=G;ba=ba+8|0;c[k>>2]=ba;if(ba>>>0>=2){da=G;break}else ca=G}$=da;aa=H-N|0}else{$=s;aa=q}while(0);c[r>>2]=$>>>2;c[k>>2]=aa+-2;ea=($&3)+3|0}else{do if(q>>>0<7){A=L+8+(N+6-L&-8)|0;if(!(c[e>>2]|0)){G=A-N|0;c[k>>2]=G;fa=s;ga=G;break}else{ha=q;ia=s}while(1){G=c[x>>2]|0;c[x>>2]=G+1;B=(d[G>>0]|0)<<ha|ia;c[r>>2]=B;ha=ha+8|0;c[k>>2]=ha;if(ha>>>0>=7){ja=B;break}else ia=B}fa=ja;ga=A-N|0}else{fa=s;ga=q}while(0);c[r>>2]=fa>>>7;c[k>>2]=ga+-7;ea=(fa&127)+7|0}H=a[h+(z+-1)>>0]|0;B=z;G=ea;while(1){if(B>>>0>=l>>>0){_=0;break a}I=B+1|0;a[h+B>>0]=H;G=G+-1|0;if(!G){P=I;break}else B=I}}}while(0);if(P>>>0<l>>>0)z=P;else{ka=P;la=79;break}}if((la|0)==79)if((ka|0)==(l|0))_=nb(f,l,h)|0;else _=0;Qb(h);ma=_}else ma=0;_=c[j+24>>2]|0;h=_;if(_){l=j+28|0;f=c[l>>2]|0;if((f|0)!=(_|0))c[l>>2]=f+(~((f+-2-h|0)>>>1)<<1);Qb(_)}_=c[j+12>>2]|0;h=_;if(_){f=j+16|0;l=c[f>>2]|0;if((l|0)!=(_|0))c[f>>2]=l+(~((l+-4-h|0)>>>2)<<2);Qb(_)}_=c[j>>2]|0;if(_){h=j+4|0;if((c[h>>2]|0)!=(_|0))c[h>>2]=_;Qb(_)}y=ma;i=g;return y|0}function $a(a,b){a=a|0;b=b|0;var 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;if(b>>>0<=25){if(!b){e=a+8|0;f=a+12|0;g=0;h=e;i=f;j=c[e>>2]|0;k=c[f>>2]|0}else{f=a+12|0;e=c[f>>2]|0;a:do if(e>>>0<b>>>0){l=a+8|0;m=a+4|0;if(!(c[a>>2]|0))n=e;else{o=e;while(1){p=c[m>>2]|0;c[m>>2]=p+1;q=c[l>>2]|(d[p>>0]|0)<<o;c[l>>2]=q;p=o+8|0;c[f>>2]=p;if(p>>>0<b>>>0)o=p;else{r=l;s=q;t=p;break a}}}while(1){o=n+8|0;if(o>>>0<b>>>0)n=o;else{u=o;break}}c[f>>2]=u;r=l;s=c[l>>2]|0;t=u}else{o=a+8|0;r=o;s=c[o>>2]|0;t=e}while(0);g=s&(1<<b)+-1;h=r;i=f;j=s;k=t}c[h>>2]=j>>>b;c[i>>2]=k-b;v=g;return v|0}g=a+12|0;k=c[g>>2]|0;b:do if(k>>>0<25){i=a+8|0;j=a+4|0;if(!(c[a>>2]|0))w=k;else{h=k;while(1){t=c[j>>2]|0;c[j>>2]=t+1;s=c[i>>2]|(d[t>>0]|0)<<h;c[i>>2]=s;t=h+8|0;c[g>>2]=t;if(t>>>0<25)h=t;else{x=i;y=s;z=t;break b}}}while(1){h=w+8|0;if(h>>>0<25)w=h;else{A=h;break}}c[g>>2]=A;x=i;y=c[i>>2]|0;z=A}else{h=a+8|0;x=h;y=c[h>>2]|0;z=k}while(0);k=y&33554431;A=y>>>25;c[x>>2]=A;y=z+-25|0;c[g>>2]=y;z=b+-25|0;if(!z){B=0;C=A;D=y}else{c:do if(y>>>0<z>>>0){b=a+4|0;if(!(c[a>>2]|0))E=y;else{w=y;h=A;while(1){j=c[b>>2]|0;c[b>>2]=j+1;l=h|(d[j>>0]|0)<<w;c[x>>2]=l;j=w+8|0;c[g>>2]=j;if(j>>>0<z>>>0){w=j;h=l}else{F=l;G=j;break c}}}while(1){h=E+8|0;if(h>>>0<z>>>0)E=h;else{H=h;break}}c[g>>2]=H;F=A;G=H}else{F=A;G=y}while(0);B=(F&(1<<z)+127)<<25;C=F;D=G}c[x>>2]=C>>>z;c[g>>2]=D-z;v=B|k;return v|0}function ab(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=i;i=i+16|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g=0;do{h=3-(g>>>3)|0;j=f+((d[644560+((d[b+(h+-2)>>0]|0)>>>g<<1&2|(d[b+h>>0]|0)>>>g&1)>>0]|0)<<2)|0;c[j>>2]=(c[j>>2]|0)+1;j=g+4|0;h=3-(j>>>3)|0;k=f+((d[644560+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;k=g+8|0;j=k&7;h=3-(k>>>3)|0;k=f+((d[644560+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;k=g+12|0;j=k&7;h=3-(k>>>3)|0;k=f+((d[644560+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;g=g+1|0}while((g|0)!=4);g=b+4|0;a[g>>0]=3;k=b+5|0;a[k>>0]=0;j=b+6|0;a[j>>0]=0;if(!(c[f>>2]|0)){l=0;m=3}else{a[j>>0]=1;a[g>>0]=0;l=1;m=0}if(!(c[f+4>>2]|0)){n=l;o=m}else{b=l+1<<24>>24;a[j>>0]=b;if((m&255)>1){a[g>>0]=1;p=1}else p=m;a[k>>0]=1;n=b;o=p}if(!(c[f+8>>2]|0))q=n;else{p=n+1<<24>>24;a[j>>0]=p;if((o&255)>2)a[g>>0]=2;a[k>>0]=2;q=p}if(!(c[f+12>>2]|0)){i=e;return}a[j>>0]=q+1<<24>>24;a[k>>0]=3;i=e;return}function bb(a,b,e){a=a|0;b=b|0;e=e|0;var 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;f=i;i=i+16|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g>>2]=e;e=g+4|0;c[e>>2]=b;b=g+8|0;c[b>>2]=0;h=g+12|0;c[h>>2]=0;if(!(_a(g,a+28|0)|0)){j=0;i=f;return j|0}if(!(_a(g,a+64|0)|0)){j=0;i=f;return j|0}if(!(_a(g,a+100|0)|0)){j=0;i=f;return j|0}if(!(_a(g,a+136|0)|0)){j=0;i=f;return j|0}k=c[h>>2]|0;do if(k>>>0<13){l=k+(12-k&-8)|0;if(!(c[g>>2]|0)){m=l+8|0;c[h>>2]=m;n=c[b>>2]|0;o=m;break}m=c[e>>2]|0;p=k;q=c[b>>2]|0;while(1){r=m;m=m+1|0;c[e>>2]=m;s=(d[r>>0]|0)<<p|q;c[b>>2]=s;p=p+8|0;c[h>>2]=p;if(p>>>0>=13){t=s;break}else q=s}n=t;o=l+8|0}else{n=c[b>>2]|0;o=k}while(0);c[b>>2]=n>>>13;c[h>>2]=o+-13;c[a+172>>2]=n&8191;j=1;i=f;return j|0}function cb(f,g,h,j,k,l,m,n,o,p){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,yb=0,zb=0,Ab=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0;q=i;i=i+192|0;r=q+120|0;s=q+56|0;t=q+24|0;u=q+8|0;v=q+40|0;w=q;x=Z(j,h)|0;y=f+172|0;z=c[y>>2]|0;c[v>>2]=0;A=v+4|0;c[A>>2]=0;c[v+8>>2]=0;if(!z)C=0;else{pb(v,z);C=c[y>>2]|0}D=v+12|0;c[D>>2]=z>>>1;z=f+16|0;E=f+12|0;F=C+(((c[z>>2]|0)-(c[E>>2]|0)|0)/7|0)|0;C=w;c[C>>2]=0;c[C+4>>2]=0;C=w+3|0;a[C>>0]=3;G=(m|0)==3;if(G){H=vc(x*12|0)|0;if(!H)I=0;else{J=H+(x<<3)|0;K=H;L=6}}else{J=0;K=0;L=6}a:do if((L|0)==6){H=f+176|0;M=(c[f+180>>2]|0)-(c[H>>2]|0)>>2;do if(M>>>0<h>>>0){Bb(H,h-M|0);N=f+188|0;O=f+192|0;P=c[O>>2]|0;Q=c[N>>2]|0;R=P-Q>>2;if(R>>>0<h>>>0){Bb(N,h-R|0);break}if(R>>>0>h>>>0?(R=Q+(h<<2)|0,(P|0)!=(R|0)):0)c[O>>2]=P+(~((P+-4-R|0)>>>2)<<2)}while(0);b:do if(j){M=(h|0)==0;H=(l|0)==0;R=f+40|0;P=f+52|0;O=f+76|0;Q=f+4|0;N=f+88|0;S=f+112|0;T=f+148|0;U=f+160|0;V=f+124|0;W=w+1|0;X=w+2|0;Y=w+4|0;_=w+5|0;$=w+6|0;aa=w+7|0;ba=r+1|0;ca=r+2|0;da=r+3|0;ea=p^1;fa=s+12|0;ga=r+1|0;ha=r+2|0;ia=r+3|0;ja=r+1|0;ka=r+2|0;la=r+3|0;ma=r+1|0;na=r+2|0;oa=r+3|0;pa=k;qa=0;ra=0;sa=0;ta=0;ua=0;va=0;wa=0;xa=0;c:while(1){ya=sa&1;d:do if(M){za=ra;Aa=qa;Ba=pa;Ca=ta;Da=ua;Ea=va;Fa=wa;Ga=xa}else{Ha=(ya|0)==0;Ia=f+176+((ya^1)*12|0)|0;Ja=f+176+(ya*12|0)|0;Ka=Z(sa,h)|0;La=(sa|0)==0;Ma=(sa|0)!=0;Na=pa;Oa=ra;Pa=qa;Qa=0;Ra=ta;Sa=ua;Ta=va;Ua=wa;Va=xa;while(1){do if(!(Qa&1)){if(!Ha){Wa=Pa;Xa=Oa;Ya=Na;Za=d[(c[Ja>>2]|0)+(Qa<<2)+2>>0]|0;_a=Ta;$a=Va;break}if(!Ta){if(Pa>>>0<16){ab=15-Pa&-8;bb=Na;cb=Pa;db=Oa;while(1){if(H){eb=0;fb=bb}else{eb=d[bb>>0]|0;fb=bb+1|0}gb=eb<<cb|db;cb=cb+8|0;if(cb>>>0>=16){hb=fb;ib=gb;break}else{bb=fb;db=gb}}jb=ib;kb=Pa+8+ab|0;lb=hb}else{jb=Oa;kb=Pa;lb=Na}db=c[(c[R>>2]|0)+((jb&1023)<<2)>>2]|0;if((db|0)>-1){mb=db>>16;nb=db&65535}else{bb=c[P>>2]|0;cb=10;gb=db;while(1){db=cb+1|0;ob=b[bb+((jb>>>cb&1)+~gb<<1)>>1]|0;qb=ob<<16>>16;if(ob<<16>>16<0){cb=db;gb=qb}else{mb=db;nb=qb;break}}}gb=jb>>>mb;cb=kb-mb|0;if((nb|0)==256){bb=cb;ab=lb;qb=gb;db=0;ob=0;while(1){do if(bb>>>0<5){rb=4-bb|0;if(H){sb=qb;tb=bb+8+(rb&-8)|0;ub=ab;break}vb=rb>>>3;rb=vb<<3;wb=ab;yb=bb;zb=qb;while(1){Ab=d[wb>>0]<<yb|zb;yb=yb+8|0;if(yb>>>0>=5){Cb=Ab;break}else{wb=wb+1|0;zb=Ab}}sb=Cb;tb=bb+8+rb|0;ub=ab+(vb+1)|0}else{sb=qb;tb=bb;ub=ab}while(0);zb=sb>>>5;wb=tb+-5|0;yb=(sb&15)<<db|ob;db=db+4|0;if(db>>>0>31|(sb&16|0)==0){Db=ub;Eb=zb;Fb=wb;Gb=yb;break}else{bb=wb;ab=ub;qb=zb;ob=yb}}Hb=Eb;Ib=Fb;Jb=Db;Kb=Gb+2|0;Lb=Va}else{Hb=gb;Ib=cb;Jb=lb;Kb=0;Lb=nb}}else{Hb=Oa;Ib=Pa;Jb=Na;Kb=Ta+-1|0;Lb=Va}a[(c[Ia>>2]|0)+(Qa<<2)+2>>0]=Lb>>>4;Wa=Ib;Xa=Hb;Ya=Jb;Za=Lb;_a=Kb;$a=Lb}else{Wa=Pa;Xa=Oa;Ya=Na;Za=Ra;_a=Ta;$a=Va}while(0);ob=Za>>>2;switch(Za&3|0){case 0:{if(!Qa){L=43;break c}else{Mb=Wa;Nb=Xa;Ob=Ya;Pb=Ua}break}case 1:{if(La){L=46;break c}Mb=Wa;Nb=Xa;Ob=Ya;Pb=e[(c[Ia>>2]|0)+(Qa<<2)>>1]|0;break}case 2:{if(!(Ma&(Qa|0)!=0)){L=50;break c}Mb=Wa;Nb=Xa;Ob=Ya;Pb=e[(c[Ia>>2]|0)+(Qa+-1<<2)>>1]|0;break}default:{if(Wa>>>0<16){qb=15-Wa&-8;ab=Ya;bb=Wa;db=Xa;while(1){if(H){Rb=0;Sb=ab}else{Rb=d[ab>>0]|0;Sb=ab+1|0}yb=Rb<<bb|db;bb=bb+8|0;if(bb>>>0>=16){Tb=Sb;Ub=yb;break}else{ab=Sb;db=yb}}Vb=Ub;Wb=Wa+8+qb|0;Xb=Tb}else{Vb=Xa;Wb=Wa;Xb=Ya}db=c[(c[O>>2]|0)+((Vb&1023)<<2)>>2]|0;if((db|0)>-1){Yb=db>>16;Zb=db&65535}else{ab=c[N>>2]|0;bb=10;yb=db;while(1){db=bb+1|0;zb=b[ab+((Vb>>>bb&1)+~yb<<1)>>1]|0;wb=zb<<16>>16;if(zb<<16>>16<0){bb=db;yb=wb}else{Yb=db;Zb=wb;break}}}yb=Zb+Ua|0;bb=(c[Q>>2]|0)-(c[f>>2]|0)>>3;Mb=Wb-Yb|0;Nb=Vb>>>Yb;Ob=Xb;Pb=yb-(yb>>>0<bb>>>0?0:bb)|0}}b[(c[Ja>>2]|0)+(Qa<<2)>>1]=Pb;if(!Sa){if(Mb>>>0<16){bb=15-Mb&-8;yb=Ob;ab=Mb;qb=Nb;while(1){if(H){_b=0;$b=yb}else{_b=d[yb>>0]|0;$b=yb+1|0}wb=_b<<ab|qb;ab=ab+8|0;if(ab>>>0>=16){ac=$b;bc=wb;break}else{yb=$b;qb=wb}}cc=bc;dc=Mb+8+bb|0;ec=ac}else{cc=Nb;dc=Mb;ec=Ob}qb=c[(c[S>>2]|0)+((cc&1023)<<2)>>2]|0;if((qb|0)>-1){fc=qb>>16;gc=qb&65535}else{yb=c[V>>2]|0;ab=10;wb=qb;while(1){qb=ab+1|0;db=b[yb+((cc>>>ab&1)+~wb<<1)>>1]|0;zb=db<<16>>16;if(db<<16>>16<0){ab=qb;wb=zb}else{fc=qb;gc=zb;break}}}wb=cc>>>fc;ab=dc-fc|0;if((gc|0)==(F|0)){if(ab>>>0<16){yb=dc+8+(fc+15-dc&-8)|0;bb=ec;zb=ab;qb=wb;while(1){if(H){hc=0;ic=bb}else{hc=d[bb>>0]|0;ic=bb+1|0}db=hc<<zb|qb;zb=zb+8|0;if(zb>>>0>=16){jc=ic;kc=db;break}else{bb=ic;qb=db}}lc=kc;mc=jc;nc=yb-fc|0}else{lc=wb;mc=ec;nc=ab}qb=c[(c[T>>2]|0)+((lc&1023)<<2)>>2]|0;if((qb|0)>-1){oc=qb>>16;pc=qb&65535}else{bb=c[U>>2]|0;zb=10;db=qb;while(1){qb=zb+1|0;Ab=b[bb+((lc>>>zb&1)+~db<<1)>>1]|0;qc=Ab<<16>>16;if(Ab<<16>>16<0){zb=qb;db=qc}else{oc=qb;pc=qc;break}}}db=lc>>>oc;zb=nc-oc|0;if((pc|0)==63){bb=db;yb=mc;qc=zb;qb=0;Ab=0;while(1){if(qc>>>0<8)if(H){rc=qc;while(1){sc=rc+8|0;if(rc>>>0>4294967287)rc=sc;else{tc=yb;uc=bb;xc=sc;break}}}else{rc=yb;cb=qc;gb=bb;while(1){sc=rc+1|0;yc=d[rc>>0]<<cb|gb;zc=cb+8|0;if(cb>>>0>4294967287){rc=sc;cb=zc;gb=yc}else{tc=sc;uc=yc;xc=zc;break}}}else{tc=yb;uc=bb;xc=qc}gb=uc>>>8;cb=xc+-8|0;rc=(uc&127)<<qb|Ab;qb=qb+7|0;if(qb>>>0>31|(uc&128|0)==0){Ac=gb;Bc=cb;Cc=tc;Dc=rc;break}else{bb=gb;yb=tc;qc=cb;Ab=rc}}}else{Ac=db;Bc=zb;Cc=mc;Dc=pc}if((Dc+3|0)>>>0>x>>>0){L=94;break c}Hc=Ac;Ic=Bc;Jc=Cc;Kc=Dc+2|0;Lc=((c[z>>2]|0)-(c[E>>2]|0)|0)/7|0}else{Hc=wb;Ic=ab;Jc=ec;Kc=0;Lc=gc}}else{Hc=Nb;Ic=Mb;Jc=Ob;Kc=Sa+-1|0;Lc=((c[z>>2]|0)-(c[E>>2]|0)|0)/7|0}Ab=c[E>>2]|0;qc=((c[z>>2]|0)-Ab|0)/7|0;if((Lc|0)<(qc|0))if((c[y>>2]|0)!=0?(yb=c[D>>2]|0,c[D>>2]=yb+1,bb=c[v>>2]|0,c[bb+(yb<<2)>>2]=Lc,yb=c[D>>2]|0,(yb|0)==((c[A>>2]|0)-bb>>2|0)):0){c[D>>2]=yb>>>1;Mc=Lc}else Mc=Lc;else{yb=Lc-qc|0;bb=c[v>>2]|0;qb=bb+(yb<<2)|0;rc=c[qb>>2]|0;if((Lc|0)==(qc|0))Mc=rc;else{qc=bb+(yb>>>1<<2)|0;yb=c[qc>>2]|0;c[qc>>2]=rc;c[qb>>2]=yb;Mc=rc}}rc=c[f>>2]|0;yb=rc+(Pb<<3)|0;qb=a[yb>>0]|0;qc=a[yb+1>>0]|0;bb=d[yb+2>>0]|0;yb=(qc&255)<31?(qc&255)<<5:992;qc=(bb>>>0<31?bb:31)|yb;bb=c[w>>2]|0;cb=((yb|((qb&255)<31?(qb&255)<<10:31744))>>>7&248|bb&7)&255;a[w>>0]=cb;qb=(qc>>>2&248|bb>>>8&7)&255;a[W>>0]=qb;yb=(bb>>>16&7|qc<<3)&255;a[X>>0]=yb;qc=rc+(Pb<<3)+4|0;rc=bb>>>24&31|d[qc>>0]<<5;a[C>>0]=rc;bb=rc&227|d[qc>>0]<<2;a[C>>0]=bb;qc=Ab+(Mc*7|0)|0;switch(m|0){case 0:{rc=Z(Qa+Ka|0,n)|0;c[g+rc>>2]=c[w>>2];gb=a[Ab+(Mc*7|0)+1>>0]|0;zc=a[Ab+(Mc*7|0)+2>>0]|0;yc=a[Ab+(Mc*7|0)+3>>0]|0;a[g+(rc+4)>>0]=a[qc>>0]|0;a[g+(rc+5)>>0]=gb;a[g+(rc+6)>>0]=zc;a[g+(rc+7)>>0]=yc;break}case 1:{yc=a[Ab+(Mc*7|0)+1>>0]|0;rc=a[Ab+(Mc*7|0)+2>>0]|0;zc=a[Ab+(Mc*7|0)+3>>0]|0;a[Y>>0]=a[qc>>0]|0;a[_>>0]=yc;a[$>>0]=rc;a[aa>>0]=zc;zc=Z(Qa+Ka|0,n)|0;rc=g+zc|0;yc=a[Ab+(Mc*7|0)+4>>0]|0;gb=a[Ab+(Mc*7|0)+5>>0]|0;sc=a[Ab+(Mc*7|0)+6>>0]|0;Nc=yc&255;Oc=gb&255;Pc=c[w>>2]|0;Qc=Pc>>>3&31;Rc=Pc>>>11&31;Sc=Pc>>>19&31;a[r>>0]=Qc;a[ba>>0]=Rc;a[ca>>0]=Sc;a[da>>0]=-1;Pc=bb>>>5&7;do if(yc<<24>>24==gb<<24>>24){xb(t,r,Pc);Tc=c[t+(Nc<<2)>>2]|0;Uc=Tc&255;Vc=Tc>>>8&255;Wc=Tc>>>16&255;Tc=d[642787+(Vc<<1)>>0]<<5|d[641763+(Uc<<1)>>0]<<11|d[641763+(Wc<<1)>>0];Xc=d[642787+(Vc<<1)+1>>0]<<5|d[641763+(Uc<<1)+1>>0]<<11|d[641763+(Wc<<1)+1>>0];if((Xc|0)==(Tc|0)&ea)if(!Tc){Yc=1;Zc=0;_c=0;$c=0;ad=85}else{bd=Tc+-1|0;cd=0;L=109}else{bd=Xc;cd=170;L=109}if((L|0)==109){L=0;Xc=Tc>>>0<bd>>>0;Wc=Xc?bd:Tc;Uc=Xc?Tc:bd;Yc=Wc&255;Zc=Uc&255;_c=(Wc&65535)>>>8&255;$c=(Uc&65535)>>>8&255;ad=(Xc?cd|85:cd)&255}a[rc>>0]=Yc;a[g+(zc+1)>>0]=_c;a[g+(zc+2)>>0]=Zc;a[g+(zc+3)>>0]=$c;Ec(g+(zc+4)|0,ad|0,4)|0}else{if(!(gb<<24>>24==3&(yc<<24>>24==0&(sc<<24>>24==2&(Pc|0)==7)))){Xc=Pc<<5;Uc=(c[509020+(Nc<<4)+(Oc<<2)>>2]|0)*10|0;Wc=Uc+((Xc|Qc)*60|0)|0;Tc=Uc+((Xc|Rc)*60|0)|0;Vc=Uc+((Xc|Sc)*60|0)|0;Xc=(e[571612+(Tc<<2)+2>>1]|0)+(e[510172+(Wc<<2)+2>>1]|0)+(e[510172+(Vc<<2)+2>>1]|0)|0;Uc=(e[571612+((Tc|1)<<2)+2>>1]|0)+(e[510172+((Wc|1)<<2)+2>>1]|0)+(e[510172+((Vc|1)<<2)+2>>1]|0)|0;dd=Uc>>>0<Xc>>>0;ed=dd?Uc:Xc;Xc=(e[571612+(Tc+2<<2)+2>>1]|0)+(e[510172+(Wc+2<<2)+2>>1]|0)+(e[510172+(Vc+2<<2)+2>>1]|0)|0;Uc=Xc>>>0<ed>>>0;fd=Uc?Xc:ed;ed=(e[571612+(Tc+3<<2)+2>>1]|0)+(e[510172+(Wc+3<<2)+2>>1]|0)+(e[510172+(Vc+3<<2)+2>>1]|0)|0;Xc=ed>>>0<fd>>>0;gd=Xc?ed:fd;fd=(e[571612+(Tc+4<<2)+2>>1]|0)+(e[510172+(Wc+4<<2)+2>>1]|0)+(e[510172+(Vc+4<<2)+2>>1]|0)|0;ed=fd>>>0<gd>>>0;hd=ed?fd:gd;gd=(e[571612+(Tc+5<<2)+2>>1]|0)+(e[510172+(Wc+5<<2)+2>>1]|0)+(e[510172+(Vc+5<<2)+2>>1]|0)|0;fd=gd>>>0<hd>>>0;id=fd?gd:hd;hd=(e[571612+(Tc+6<<2)+2>>1]|0)+(e[510172+(Wc+6<<2)+2>>1]|0)+(e[510172+(Vc+6<<2)+2>>1]|0)|0;gd=hd>>>0<id>>>0;jd=gd?hd:id;id=(e[571612+(Tc+7<<2)+2>>1]|0)+(e[510172+(Wc+7<<2)+2>>1]|0)+(e[510172+(Vc+7<<2)+2>>1]|0)|0;hd=id>>>0<jd>>>0;kd=hd?id:jd;jd=(e[571612+(Tc+8<<2)+2>>1]|0)+(e[510172+(Wc+8<<2)+2>>1]|0)+(e[510172+(Vc+8<<2)+2>>1]|0)|0;id=jd>>>0<kd>>>0;ld=((e[571612+(Tc+9<<2)+2>>1]|0)+(e[510172+(Wc+9<<2)+2>>1]|0)+(e[510172+(Vc+9<<2)+2>>1]|0)|0)>>>0<(id?jd:kd)>>>0?9:id?8:hd?7:gd?6:fd?5:ed?4:Xc?3:Uc?2:dd&1;dd=ld+Wc|0;Wc=ld+Tc|0;Tc=ld+Vc|0;Vc=d[510172+(dd<<2)>>0]<<11&63488|d[510172+(Tc<<2)>>0]|d[571612+(Wc<<2)>>0]<<5;Uc=d[510172+(dd<<2)+1>>0]<<11&63488|d[510172+(Tc<<2)+1>>0]|d[571612+(Wc<<2)+1>>0]<<5;Wc=Vc>>>0<Uc>>>0;Tc=Wc?Uc:Vc;dd=Wc?Vc:Uc;Uc=Wc?643899:643859;Wc=Tc&65535;a[rc>>0]=Tc;Vc=g+(zc+1)|0;a[Vc>>0]=(Wc&65535)>>>8;Xc=g+(zc+2)|0;a[Xc>>0]=dd;ed=g+(zc+3)|0;a[ed>>0]=(dd&65535)>>>8;if((Tc|0)!=(dd|0)){dd=d[aa>>0]|0;fd=d[_>>0]|0;gd=fd<<4&240|dd&15;hd=fd&240|dd>>>4;dd=d[$>>0]|0;fd=d[Y>>0]|0;id=fd<<4&240|dd&15;kd=fd&240|dd>>>4;dd=d[(d[644820+hd>>0]|0)+(Uc+(ld<<2))>>0]<<2|d[(d[644820+gd>>0]|0)+(Uc+(ld<<2))>>0]|d[(d[644820+id>>0]|0)+(Uc+(ld<<2))>>0]<<4|d[(d[644820+kd>>0]|0)+(Uc+(ld<<2))>>0]<<6;fd=d[(d[645076+hd>>0]|0)+(Uc+(ld<<2))>>0]<<2|d[(d[645076+gd>>0]|0)+(Uc+(ld<<2))>>0]|d[(d[645076+id>>0]|0)+(Uc+(ld<<2))>>0]<<4|d[(d[645076+kd>>0]|0)+(Uc+(ld<<2))>>0]<<6;jd=d[(d[645332+hd>>0]|0)+(Uc+(ld<<2))>>0]<<2|d[(d[645332+gd>>0]|0)+(Uc+(ld<<2))>>0]|d[(d[645332+id>>0]|0)+(Uc+(ld<<2))>>0]<<4|d[(d[645332+kd>>0]|0)+(Uc+(ld<<2))>>0]<<6;a[g+(zc+4)>>0]=d[(d[644564+hd>>0]|0)+(Uc+(ld<<2))>>0]<<2|d[(d[644564+gd>>0]|0)+(Uc+(ld<<2))>>0]|d[(d[644564+id>>0]|0)+(Uc+(ld<<2))>>0]<<4|d[(d[644564+kd>>0]|0)+(Uc+(ld<<2))>>0]<<6;a[g+(zc+5)>>0]=dd;a[g+(zc+6)>>0]=fd;a[g+(zc+7)>>0]=jd;break}if(p)md=0;else{jd=(Tc|0)==0;fd=jd?1:Wc;a[rc>>0]=fd;a[Vc>>0]=(fd&65535)>>>8;fd=jd?0:Tc+65535&65535;a[Xc>>0]=fd;a[ed>>0]=(fd&65535)>>>8;md=jd?85:0}Ec(g+(zc+4)|0,md|0,4)|0;break}xb(s,r,7);jd=c[s>>2]|0;fd=c[fa>>2]|0;ed=d[643299+((jd>>>8&255)<<1)>>0]<<5|d[642275+((jd&255)<<1)>>0]<<11|d[642275+((jd>>>16&255)<<1)>>0];jd=d[643299+((fd>>>8&255)<<1)>>0]<<5|d[642275+((fd&255)<<1)>>0]<<11|d[642275+((fd>>>16&255)<<1)>>0];if((jd|0)==(ed|0))if(!ed){nd=1;od=0;pd=0;qd=0;rd=1;sd=1}else{td=ed+-1|0;ud=0;L=115}else{td=jd;ud=1;L=115}if((L|0)==115){L=0;jd=ed>>>0<td>>>0;fd=jd?td:ed;Xc=jd?ed:td;nd=fd&255;od=Xc&255;pd=(fd&65535)>>>8&255;qd=(Xc&65535)>>>8&255;rd=jd?0:ud;sd=jd&1}a[rc>>0]=nd;a[g+(zc+1)>>0]=pd;a[g+(zc+2)>>0]=od;a[g+(zc+3)>>0]=qd;jd=0;do{Xc=7-(jd>>>3)|0;fd=jd+4|0;ed=7-(fd>>>3)|0;Tc=jd+8|0;Vc=Tc&7;Wc=7-(Tc>>>3)|0;Tc=jd+12|0;dd=Tc&7;ld=7-(Tc>>>3)|0;a[rc+4+jd>>0]=(((d[w+(ld+-2)>>0]|0)>>>dd<<1&2|(d[w+ld>>0]|0)>>>dd&1|0)==1?rd:sd)<<6|((((d[w+(Wc+-2)>>0]|0)>>>Vc<<1&2|(d[w+Wc>>0]|0)>>>Vc&1|0)==1?rd:sd)<<4&48|((((d[w+(ed+-2)>>0]|0)>>>fd<<1&2|(d[w+ed>>0]|0)>>>fd&1|0)==1?rd:sd)<<2&12|(((d[w+(Xc+-2)>>0]|0)>>>jd<<1&2|(d[w+Xc>>0]|0)>>>jd&1|0)==1?rd:sd)&3));jd=jd+1|0}while((jd|0)!=4)}while(0);break}case 2:{rc=a[Ab+(Mc*7|0)+1>>0]|0;zc=a[Ab+(Mc*7|0)+2>>0]|0;Sc=a[Ab+(Mc*7|0)+3>>0]|0;a[Y>>0]=a[qc>>0]|0;a[_>>0]=rc;a[$>>0]=zc;a[aa>>0]=Sc;Sc=Z(Qa+Ka|0,n)|0;zc=g+Sc|0;rc=a[Ab+(Mc*7|0)+4>>0]|0;Rc=a[Ab+(Mc*7|0)+5>>0]|0;Qc=a[Ab+(Mc*7|0)+6>>0]|0;Oc=rc&255;Nc=Rc&255;a[r>>0]=(cb&255)>>>3;Pc=(qb&255)>>>3;a[ga>>0]=Pc;a[ha>>0]=(yb&255)>>>3;a[ia>>0]=-1;sc=bb>>>5&7;e:do if(rc<<24>>24==Rc<<24>>24){xb(t,r,sc);yc=a[t+(Oc<<2)+1>>0]|0;a[zc>>0]=yc;a[g+(Sc+1)>>0]=yc;yc=g+(Sc+2)|0;a[yc>>0]=0;a[yc+1>>0]=0;a[yc+2>>0]=0;a[yc+3>>0]=0;a[yc+4>>0]=0;a[yc+5>>0]=0}else{if(Qc<<24>>24==2){xb(s,r,sc);yc=a[s+(Nc<<2)+1>>0]|0;a[zc>>0]=a[s+(Oc<<2)+1>>0]|0;a[g+(Sc+1)>>0]=yc;yc=0;while(1){gb=yc<<2;ab=0;do{wb=(ab<<2)+yc|0;zb=wb&7;db=7-(wb>>>3)|0;wb=(ab+gb|0)*3|0;jd=wb>>>3;Xc=wb&7;fd=zc+2+jd|0;ed=d[fd>>0]|0;Vc=wb>>>0<40;if(Vc)vd=d[jd+1+(zc+2)>>0]<<8|ed;else vd=ed;ed=vd&~(7<<Xc)|((a[645588+((d[w+(db+-2)>>0]|0)>>>zb<<1&2|(d[w+db>>0]|0)>>>zb&1)>>0]|0)==Rc<<24>>24&1)<<Xc;a[fd>>0]=ed;if(Vc)a[jd+1+(zc+2)>>0]=ed>>>8;ab=ab+1|0}while((ab|0)!=4);yc=yc+1|0;if((yc|0)==4)break e}}switch(rc<<24>>24){case 0:{if(Rc<<24>>24!=3)if(Rc<<24>>24==2)wd=2;else L=148;else wd=0;break}case 1:{if(Rc<<24>>24!=3)if(Rc<<24>>24==2)wd=3;else L=148;else wd=1;break}default:L=148}if((L|0)==148){L=0;wd=4}yc=wd>>>0>3?0:wd;ab=sc<<5|Pc&255;a[zc>>0]=a[633052+(ab<<4)+(yc<<2)>>0]|0;a[g+(Sc+1)>>0]=a[633052+(ab<<4)+(yc<<2)+1>>0]|0;gb=e[633052+(ab<<4)+(yc<<2)+2>>1]|0;yc=0;do{ab=yc<<2;ed=0;do{jd=(ed<<2)+yc|0;Vc=jd&7;fd=7-(jd>>>3)|0;jd=(ed+ab|0)*3|0;Xc=jd>>>3;zb=jd&7;db=zc+2+Xc|0;wb=d[db>>0]|0;Wc=jd>>>0<40;if(Wc)xd=d[Xc+1+(zc+2)>>0]<<8|wb;else xd=wb;wb=xd&~(7<<zb)|(gb>>>((d[645588+((d[w+(fd+-2)>>0]|0)>>>Vc<<1&2|(d[w+fd>>0]|0)>>>Vc&1)>>0]|0)*3|0)&7)<<zb;a[db>>0]=wb;if(Wc)a[Xc+1+(zc+2)>>0]=wb>>>8;ed=ed+1|0}while((ed|0)!=4);yc=yc+1|0}while((yc|0)!=4)}while(0);break}case 3:{zc=a[Ab+(Mc*7|0)+1>>0]|0;Sc=a[Ab+(Mc*7|0)+2>>0]|0;Pc=a[Ab+(Mc*7|0)+3>>0]|0;a[Y>>0]=a[qc>>0]|0;a[_>>0]=zc;a[$>>0]=Sc;a[aa>>0]=Pc;Pc=Qa+Ka|0;Sc=w;zc=c[Sc>>2]|0;sc=c[Sc+4>>2]|0;Sc=K+(Pc<<3)|0;c[Sc>>2]=zc;c[Sc+4>>2]=sc;sc=zc>>>3&31;Sc=bb>>>5&7;Rc=d[Ab+(Mc*7|0)+5>>0]|0;rc=zc>>>21&7;Oc=zc>>>13&7;Nc=zc>>>8;Qc=zc>>>16;zc=sc<<3|sc>>>2;sc=c[509148+(Sc<<4)+(d[Ab+(Mc*7|0)+4>>0]<<2)>>2]|0;yc=sc+zc|0;if(yc>>>0>255)if((yc|0)<0){yd=0;L=152}else zd=255;else{yd=yc;L=152}if((L|0)==152){L=0;zd=yd}yc=Nc&248|Oc;Oc=sc+yc|0;if(Oc>>>0>255)if((Oc|0)<0){Ad=0;L=155}else Bd=255;else{Ad=Oc;L=155}if((L|0)==155){L=0;Bd=Ad}Oc=Qc&248|rc;rc=sc+Oc|0;if(rc>>>0>255)if((rc|0)<0){Cd=0;L=158}else Dd=255;else{Cd=rc;L=158}if((L|0)==158){L=0;Dd=Cd}rc=Dd&255;sc=c[509148+(Sc<<4)+(Rc<<2)>>2]|0;Rc=sc+zc|0;if(Rc>>>0>255)if((Rc|0)<0){Ed=0;L=161}else Fd=255;else{Ed=Rc;L=161}if((L|0)==161){L=0;Fd=Ed}Rc=sc+yc|0;if(Rc>>>0>255)if((Rc|0)<0){Gd=0;L=164}else Hd=255;else{Gd=Rc;L=164}if((L|0)==164){L=0;Hd=Gd}Rc=sc+Oc|0;if(Rc>>>0>255)if((Rc|0)<0){Id=0;L=167}else Jd=255;else{Id=Rc;L=167}if((L|0)==167){L=0;Jd=Id}c[J+(Pc<<2)>>2]=((((zd&255)*31|0)>>>0)/255|0)<<10|((((Bd&255)*31|0)>>>0)/255|0)<<5|(((rc&255)/17|0)&255)<<1|(((((Jd&255)*31|0)+254|0)>>>0)/255|0|(((((Fd&255)*31|0)+254|0)>>>0)/255|0)<<10|(((((Hd&255)*31|0)+254|0)>>>0)/255|0)<<5)<<16|-2147450880;break}case 4:{rc=a[Ab+(Mc*7|0)+1>>0]|0;Pc=a[Ab+(Mc*7|0)+2>>0]|0;Rc=a[Ab+(Mc*7|0)+3>>0]|0;a[Y>>0]=a[qc>>0]|0;a[_>>0]=rc;a[$>>0]=Pc;a[aa>>0]=Rc;Rc=Z(Qa+Ka|0,n)|0;Pc=g+Rc|0;rc=a[Ab+(Mc*7|0)+4>>0]|0;Oc=rc&255;sc=d[Ab+(Mc*7|0)+5>>0]|0;yc=c[w>>2]|0;zc=yc>>>29;Sc=yc>>>3&31;Qc=yc>>>11&31;Nc=yc>>>19&31;if((d[Ab+(Mc*7|0)+6>>0]|0)<3){yc=Pc;gb=c[yc+4>>2]&-2147352577|2147352576;ed=Pc;c[ed>>2]=c[yc>>2]&-128|64;c[ed+4>>2]=gb;a[r>>0]=Sc;a[ja>>0]=Qc;a[ka>>0]=Nc;a[la>>0]=-1;xb(t,r,zc);gb=c[t+(Oc<<2)>>2]|0;ed=((gb>>>8&1)+(gb&1)+(gb>>>16&1)|0)>>>0>1;yc=c[t+(sc<<2)>>2]|0;ab=((yc>>>8&1)+(yc&1)+(yc>>>16&1)|0)>>>0>1;wb=gb>>>1&127;Xc=Pc;Wc=c[Xc>>2]|0;db=c[Xc+4>>2]|0;Xc=Gc(wb|0,0,7)|0;zb=B;Vc=gb>>>9&127;fd=Gc(Vc|0,0,21)|0;jd=B;dd=gb>>>17&127;gb=Gc(dd|0,0,35)|0;ld=B;Tc=Gc(ed&1|0,0,63)|0;Uc=B;kd=yc>>>1&127;id=Gc(kd|0,0,14)|0;gd=B;hd=yc>>>9&127;Kd=Gc(hd|0,0,28)|0;Ld=B;Md=yc>>>17&127;yc=Gc(Md|0,0,42)|0;Nd=Xc|Wc&127|fd|gb|id|Kd|yc|Tc;Tc=zb|db&2147352576|jd|ld|gd|Ld|B|Uc;Uc=Pc;c[Uc>>2]=Nd;c[Uc+4>>2]=Tc;Uc=Gc(kd|0,0,7)|0;kd=B;Ld=Gc(hd|0,0,21)|0;hd=B;gd=Gc(Md|0,0,35)|0;Md=B;ld=Gc(wb|0,0,14)|0;wb=B;jd=Gc(Vc|0,0,28)|0;Vc=B;db=Gc(dd|0,0,42)|0;dd=jd|ld|db|Uc|Ld|gd;gd=Vc|wb|B|kd|hd|Md;Md=Nd;Nd=Tc;Tc=ab&1;hd=0;kd=ab&1;ab=ed&1;ed=1;wb=0;Vc=0;while(1){Ld=Md;Uc=Nd;db=kd;ld=Tc;jd=ab;zb=hd;yc=ed;Kd=wb;id=0;while(1){gb=(id<<2)+Vc|0;fd=gb&7;Wc=7-(gb>>>3)|0;gb=(a[645588+((d[w+(Wc+-2)>>0]|0)>>>fd<<1&2|(d[w+Wc>>0]|0)>>>fd&1)>>0]|0)==rc<<24>>24?Kd:Kd^15;do if(!(id|Vc)){if(!(gb&8)){Od=ld;Pd=zb;Qd=Ld;Rd=Uc;Sd=jd;Td=db;Ud=3;Vd=gb;Wd=Kd;break}fd=Gc(db|0,0,63)|0;Wc=dd|Ld&127|fd;fd=gd|Uc&2147352576|B;Xc=Pc;c[Xc>>2]=Wc;c[Xc+4>>2]=fd;Od=jd|ld&-2;Pd=zb;Qd=Wc;Rd=fd;Sd=db;Td=jd;Ud=3;Vd=0;Wd=15}else{Od=ld;Pd=zb;Qd=Ld;Rd=Uc;Sd=jd;Td=db;Ud=4;Vd=gb;Wd=Kd}while(0);gb=Gc(Vd|0,0,yc|0)|0;fd=gb|Od;gb=B|Pd;Wc=Ud+yc|0;id=id+1|0;if((id|0)==4){Xd=Sd;Yd=Td;Zd=Wc;_d=fd;$d=gb;ae=Qd;be=Rd;ce=Wd;break}else{Ld=Qd;Uc=Rd;db=Td;ld=fd;jd=Sd;zb=gb;yc=Wc;Kd=Wd}}Kd=Vc+1|0;if((Kd|0)==4){de=_d;ee=$d;break}else{Md=ae;Nd=be;Tc=_d;hd=$d;kd=Yd;ab=Xd;ed=Zd;wb=ce;Vc=Kd}}Vc=g+(Rc+8)|0;c[Vc>>2]=de;c[Vc+4>>2]=ee}else{Vc=zc<<5;wb=c[491608+((Sc|Vc)<<2)>>2]|0;ed=(c[509084+(Oc<<4)+(sc<<2)>>2]|0)*48|0;ab=c[491608+((Qc|Vc)<<2)>>2]|0;kd=c[491608+((Nc|Vc)<<2)>>2]|0;Vc=(c[ab+(ed<<2)>>2]|0)+(c[wb+(ed<<2)>>2]|0)+(c[kd+(ed<<2)>>2]|0)<<14;hd=ed|1;Tc=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|1;hd=ed|2;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|2;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed|3;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|3;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed|4;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|4;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed|5;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|5;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed|6;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|6;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed|7;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|7;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed|8;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|8;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed|9;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|9;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed|10;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|10;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed|11;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|11;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed|12;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|12;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed|13;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|13;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed|14;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|14;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed|15;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|15;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+16|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|16;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+17|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|17;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+18|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|18;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+19|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|19;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+20|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|20;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+21|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|21;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+22|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|22;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+23|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|23;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+24|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|24;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+25|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|25;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+26|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|26;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+27|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|27;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+28|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|28;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+29|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|29;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+30|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|30;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+31|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|31;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+32|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|32;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+33|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|33;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+34|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|34;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+35|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|35;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+36|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|36;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+37|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|37;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+38|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|38;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+39|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|39;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+40|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|40;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+41|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|41;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+42|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|42;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+43|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|43;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+44|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|44;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=ed+45|0;Nd=(c[ab+(Vc<<2)>>2]|0)+(c[wb+(Vc<<2)>>2]|0)+(c[kd+(Vc<<2)>>2]|0)<<14|45;Vc=Nd>>>0<Tc>>>0?Nd:Tc;Tc=ed+46|0;Nd=(c[ab+(Tc<<2)>>2]|0)+(c[wb+(Tc<<2)>>2]|0)+(c[kd+(Tc<<2)>>2]|0)<<14|46;Tc=Nd>>>0<hd>>>0?Nd:hd;hd=ed+47|0;Nd=(c[ab+(hd<<2)>>2]|0)+(c[wb+(hd<<2)>>2]|0)+(c[kd+(hd<<2)>>2]|0)<<14|47;hd=Nd>>>0<Vc>>>0?Nd:Vc;Vc=(Tc>>>0<hd>>>0?Tc:hd)&255;hd=Pc;Tc=c[hd>>2]&-128|64;Nd=c[hd+4>>2]&-2147352577|2147352576;hd=Pc;c[hd>>2]=Tc;c[hd+4>>2]=Nd;hd=d[aa>>0]|0;Md=d[_>>0]|0;gd=Vc+ed|0;ed=wb+(gd<<2)|0;wb=(c[ed>>2]|0)>>>18&127;if(!(a[(d[645588+(Md<<1&2|hd&1)>>0]|0)+(643939+(Vc<<2))>>0]&8)){dd=Gc(wb|0,0,7)|0;rc=dd|Tc&-16320;dd=B|Nd;Kd=Pc;c[Kd>>2]=rc;c[Kd+4>>2]=dd;Kd=ab+(gd<<2)|0;yc=Gc((c[Kd>>2]|0)>>>18|0,0,21)|0;zb=yc&266338304|rc&-266338368;rc=Pc;c[rc>>2]=zb;c[rc+4>>2]=dd;rc=kd+(gd<<2)|0;Gc((c[rc>>2]|0)>>>18|0,0,35)|0;yc=dd&-1017|B&1016;dd=Pc;c[dd>>2]=zb;c[dd+4>>2]=yc;dd=Gc((c[ed>>2]|0)>>>25|0,0,14)|0;jd=zb&-2080832|dd;dd=yc|B;yc=Pc;c[yc>>2]=jd;c[yc+4>>2]=dd;yc=Gc((c[Kd>>2]|0)>>>25|0,0,28)|0;Kd=jd&268435392|yc;yc=dd&-8|B;dd=Pc;c[dd>>2]=Kd;c[dd+4>>2]=yc;dd=Gc((c[rc>>2]|0)>>>25|0,0,42)|0;rc=Pc;c[rc>>2]=Kd&-64|dd;c[rc+4>>2]=yc&2147353599|B;yc=g+(Rc+8)|0;rc=yc;dd=c[rc+4>>2]|0;Kd=yc;c[Kd>>2]=c[rc>>2]|1;c[Kd+4>>2]=dd;fe=yc;ge=1;he=0;ie=644131}else{yc=Gc(wb|0,0,14)|0;wb=yc|Tc&-2080832;Tc=B|Nd;Nd=Pc;c[Nd>>2]=wb;c[Nd+4>>2]=Tc;Nd=ab+(gd<<2)|0;ab=Gc((c[Nd>>2]|0)>>>18|0,0,28)|0;yc=ab&-268435456|wb&268435392;wb=B&7|Tc&-8;Tc=Pc;c[Tc>>2]=yc;c[Tc+4>>2]=wb;Tc=kd+(gd<<2)|0;Gc((c[Tc>>2]|0)>>>18|0,0,42)|0;gd=wb&-130049|B&130048;wb=Pc;c[wb>>2]=yc;c[wb+4>>2]=gd;wb=Gc((c[ed>>2]|0)>>>25|0,0,7)|0;ed=yc&-16320|wb;wb=gd|B;gd=Pc;c[gd>>2]=ed;c[gd+4>>2]=wb;gd=Gc((c[Nd>>2]|0)>>>25|0,0,21)|0;Nd=ed&-266338368|gd;gd=wb|B;wb=Pc;c[wb>>2]=Nd;c[wb+4>>2]=gd;wb=Gc((c[Tc>>2]|0)>>>25|0,0,35)|0;Tc=Pc;c[Tc>>2]=wb|Nd&-64;c[Tc+4>>2]=B|gd&2147482631|-2147483648;gd=g+(Rc+8)|0;Tc=gd;Nd=c[Tc+4>>2]|0;wb=gd;c[wb>>2]=c[Tc>>2]&-2;c[wb+4>>2]=Nd;fe=gd;ge=0;he=0;ie=644323}gd=Md<<4&240|hd&15;Nd=Gc(d[(d[644564+gd>>0]|0)+(ie+(Vc<<2))>>0]|0,0,1)|0;wb=B;Tc=Gc(d[(d[644820+gd>>0]|0)+(ie+(Vc<<2))>>0]|0,0,16)|0;ed=B;yc=d[(d[645076+gd>>0]|0)+(ie+(Vc<<2))>>0]|0;kd=Gc(d[(d[645332+gd>>0]|0)+(ie+(Vc<<2))>>0]|0,0,48)|0;gd=B;ab=Md&240|hd>>>4;hd=Gc(d[(d[644564+ab>>0]|0)+(ie+(Vc<<2))>>0]|0,0,4)|0;Md=B;dd=Gc(d[(d[644820+ab>>0]|0)+(ie+(Vc<<2))>>0]|0,0,20)|0;Kd=B;rc=Gc(d[(d[645076+ab>>0]|0)+(ie+(Vc<<2))>>0]|0,0,36)|0;jd=B;zb=Gc(d[(d[645332+ab>>0]|0)+(ie+(Vc<<2))>>0]|0,0,52)|0;ab=B;ld=d[$>>0]|0;db=d[Y>>0]|0;Uc=db<<4&240|ld&15;Ld=Gc(d[(d[644564+Uc>>0]|0)+(ie+(Vc<<2))>>0]|0,0,8)|0;id=B;Wc=Gc(d[(d[644820+Uc>>0]|0)+(ie+(Vc<<2))>>0]|0,0,24)|0;gb=B;fd=Gc(d[(d[645076+Uc>>0]|0)+(ie+(Vc<<2))>>0]|0,0,40)|0;Xc=B;je=Gc(d[(d[645332+Uc>>0]|0)+(ie+(Vc<<2))>>0]|0,0,56)|0;Uc=B;ke=db&240|ld>>>4;ld=Gc(d[(d[644564+ke>>0]|0)+(ie+(Vc<<2))>>0]|0,0,12)|0;db=B;le=Gc(d[(d[644820+ke>>0]|0)+(ie+(Vc<<2))>>0]|0,0,28)|0;me=B;ne=Gc(d[(d[645076+ke>>0]|0)+(ie+(Vc<<2))>>0]|0,0,44)|0;oe=B;pe=Gc(d[(d[645332+ke>>0]|0)+(ie+(Vc<<2))>>0]|0,0,60)|0;Vc=fe;c[Vc>>2]=Nd|ge|Tc|kd|hd|dd|rc|zb|Ld|Wc|fd|je|ld|le|ne|pe;c[Vc+4>>2]=wb|he|ed|yc|gd|Md|Kd|jd|ab|id|gb|Xc|Uc|db|me|oe|B}break}case 5:{oe=a[Ab+(Mc*7|0)+1>>0]|0;me=a[Ab+(Mc*7|0)+2>>0]|0;db=a[Ab+(Mc*7|0)+3>>0]|0;a[Y>>0]=a[qc>>0]|0;a[_>>0]=oe;a[$>>0]=me;a[aa>>0]=db;db=Z(Qa+Ka|0,n)|0;me=g+db|0;oe=a[Ab+(Mc*7|0)+4>>0]|0;Uc=a[Ab+(Mc*7|0)+5>>0]|0;a[r>>0]=(cb&255)>>>3;Xc=(qb&255)>>>3;a[ma>>0]=Xc;a[na>>0]=(yb&255)>>>3;a[oa>>0]=-1;gb=bb>>>5&7;if(oe<<24>>24==Uc<<24>>24){xb(t,r,gb);b[me>>1]=d[t+((oe&255)<<2)+1>>0]|7424;id=g+(db+2)|0;a[id>>0]=a[641756]|0;a[id+1>>0]=a[641757]|0;a[id+2>>0]=a[641758]|0;a[id+3>>0]=a[641759]|0;a[id+4>>0]=a[641760]|0;a[id+5>>0]=a[641761]|0}else{switch(oe<<24>>24){case 0:{if(Uc<<24>>24!=3)if(Uc<<24>>24==2)qe=2;else L=193;else qe=0;break}case 1:{if(Uc<<24>>24!=3)if(Uc<<24>>24==2)qe=3;else L=193;else qe=1;break}default:L=193}if((L|0)==193){L=0;qe=4}Uc=qe>>>0>3?0:qe;oe=gb<<5|Xc&255;Xc=a[637148+(oe<<4)+(Uc<<2)+1>>0]|0;b[me>>1]=(Xc&255)<<12&65535|d[637148+(oe<<4)+(Uc<<2)>>0]|((Xc&255)>>>4&255)<<8&65535;Xc=e[637148+(oe<<4)+(Uc<<2)+2>>1]|0;Uc=0;oe=0;me=0;while(1){gb=7-(me>>>3)|0;id=Gc(Xc>>>((d[645588+((d[w+(gb+-2)>>0]|0)>>>me<<1&2|(d[w+gb>>0]|0)>>>me&1)>>0]|0)*3|0)&7|0,0,(Z(me,-3)|0)+45|0)|0;gb=B|oe;ab=me+4|0;jd=7-(ab>>>3)|0;Kd=Gc(Xc>>>((d[645588+((d[w+(jd+-2)>>0]|0)>>>ab<<1&2|(d[w+jd>>0]|0)>>>ab&1)>>0]|0)*3|0)&7|0,0,(Z(ab,-3)|0)+45|0)|0;ab=gb|B;gb=me+8|0;jd=gb&7;Md=7-(gb>>>3)|0;gd=Gc(Xc>>>((d[645588+((d[w+(Md+-2)>>0]|0)>>>jd<<1&2|(d[w+Md>>0]|0)>>>jd&1)>>0]|0)*3|0)&7|0,0,(Z(gb,-3)|0)+45|0)|0;gb=ab|B;ab=me+12|0;jd=ab&7;Md=7-(ab>>>3)|0;yc=Gc(Xc>>>((d[645588+((d[w+(Md+-2)>>0]|0)>>>jd<<1&2|(d[w+Md>>0]|0)>>>jd&1)>>0]|0)*3|0)&7|0,0,(Z(ab,-3)|0)+45|0)|0;ab=id|Uc|Kd|gd|yc;yc=gb|B;me=me+1|0;if((me|0)==4){re=ab;se=yc;break}else{Uc=ab;oe=yc}}oe=Fc(re|0,se|0,40)|0;a[g+(db+2)>>0]=oe;a[g+(db+3)>>0]=se;oe=Fc(re|0,se|0,24)|0;a[g+(db+4)>>0]=oe;oe=Fc(re|0,se|0,16)|0;a[g+(db+5)>>0]=oe;oe=Fc(re|0,se|0,8)|0;a[g+(db+6)>>0]=oe;a[g+(db+7)>>0]=re}break}default:{}}Qa=Qa+1|0;if(Qa>>>0>=h>>>0){za=Hc;Aa=Ic;Ba=Jc;Ca=ob;Da=Kc;Ea=_a;Fa=Pb;Ga=$a;break d}else{Na=Jc;Oa=Hc;Pa=Ic;Ra=ob;Sa=Kc;Ta=_a;Ua=Pb;Va=$a}}}while(0);sa=sa+1|0;if(sa>>>0>=j>>>0)break b;else{pa=Ba;qa=Aa;ra=za;ta=Ca;ua=Da;va=Ea;wa=Fa;xa=Ga}}if((L|0)==43){if(!K){I=0;break a}wc(K);I=0;break a}else if((L|0)==46){if(!K){I=0;break a}wc(K);I=0;break a}else if((L|0)==50){if(!K){I=0;break a}wc(K);I=0;break a}else if((L|0)==94){if(!K){I=0;break a}wc(K);I=0;break a}}while(0);if(G){xa=h+-1|0;wa=j+-1|0;if(!xa)te=0;else{va=xa;ua=0;while(1){va=va>>>1;ta=ua+1|0;if(!va){te=ta;break}else ua=ta}}if(!wa)ue=0;else{ua=wa;va=0;while(1){ua=ua>>>1;ta=va+1|0;if(!ua){ue=ta;break}else va=ta}}va=te>>>0<ue>>>0?te:ue;ua=va<<1;ta=(1<<ua)+-1|0;if((j|0)>0){ra=(h|0)>0;qa=(h|0)==(j|0);pa=u+4|0;sa=u+8|0;oa=u+12|0;na=r+32|0;ma=s+32|0;aa=t+4|0;$=r+36|0;_=s+36|0;Y=t+8|0;la=r+40|0;ka=s+40|0;ja=r+16|0;ia=r+4|0;ha=r+20|0;ga=s+16|0;fa=s+4|0;ea=s+20|0;da=r+8|0;ca=r+24|0;ba=s+8|0;X=s+24|0;W=h>>>0>j>>>0;H=o?0:(xa|0)<0?xa:0;U=(o?1:(xa|0)<1?xa:1)&xa;T=0;V=0;while(1){S=0;do{Q=S+V|0;N=Q+-1|0;if(o){ve=N;we=-1}else{ve=(Q|0)<1?0:(N|0)>(wa|0)?wa:N;we=0}N=Z(ve&wa,h)|0;c[t+(S<<2)>>2]=J+(N<<2);Q=c[J+((we&xa)+N<<2)>>2]|0;O=Q&30;c[r+(S<<2)>>2]=((((Q>>>10&31)+(Q>>>5&31)+(O>>>4|O)|0)*255|0)>>>0)/31|0;c[s+(S<<2)>>2]=((((Q>>>26&31)+(Q>>>21&31)+(Q>>>16&31)|0)*255|0)>>>0)/31|0;Q=c[J+(N+H<<2)>>2]|0;O=Q&30;c[r+16+(S<<2)>>2]=((((Q>>>10&31)+(Q>>>5&31)+(O>>>4|O)|0)*255|0)>>>0)/31|0;c[s+16+(S<<2)>>2]=((((Q>>>26&31)+(Q>>>21&31)+(Q>>>16&31)|0)*255|0)>>>0)/31|0;Q=c[J+(N+U<<2)>>2]|0;N=Q&30;c[r+32+(S<<2)>>2]=((((Q>>>10&31)+(Q>>>5&31)+(N>>>4|N)|0)*255|0)>>>0)/31|0;c[s+32+(S<<2)>>2]=((((Q>>>26&31)+(Q>>>21&31)+(Q>>>16&31)|0)*255|0)>>>0)/31|0;S=S+1|0}while((S|0)!=3);if(ra){S=e[641244+(V>>8<<1)>>1]<<16|e[641244+((V&255)<<1)>>1];Q=c[t>>2]|0;N=c[aa>>2]|0;O=c[Y>>2]|0;P=V>>va<<ua;R=c[ia>>2]|0;M=c[ha>>2]|0;ya=c[ja>>2]|0;Va=c[r>>2]|0;Ua=c[fa>>2]|0;Ta=c[ea>>2]|0;Sa=c[ga>>2]|0;Ra=c[s>>2]|0;Pa=c[da>>2]|0;Oa=c[ca>>2]|0;Na=c[ba>>2]|0;Qa=c[X>>2]|0;Ka=T;Ja=0;while(1){Ia=S|e[641244+(Ja>>8<<1)>>1]<<17|e[641244+((Ja&255)<<1)>>1]<<1;do if(!qa){Ma=Ia&ta;if(W){xe=Ma|Ja>>va<<ua;break}else{xe=Ma|P;break}}else xe=Ia;while(0);c[g+(xe<<3)+4>>2]=c[J+(Ka<<2)>>2];Ia=K+(Ka<<3)|0;Ma=c[Ia>>2]|0;La=Ma>>>29;Ha=(d[645592+(Ma>>>11&31)>>0]|0)+(d[645592+(Ma>>>3&31)>>0]|0)+(d[645592+(Ma>>>19&31)>>0]|0)<<4;c[u>>2]=Ha+(c[509276+(La<<4)+8>>2]|0);c[pa>>2]=Ha+(c[509276+(La<<4)+12>>2]|0);c[sa>>2]=Ha+(c[509276+(La<<4)+4>>2]|0);c[oa>>2]=(c[509276+(La<<4)>>2]|0)+Ha;Ja=Ja+1|0;Ha=(o?Ja:(Ja|0)>(xa|0)?xa:Ja)&xa;La=c[Q+(Ha<<2)>>2]|0;Ma=La&30;oe=((((La>>>10&31)+(La>>>5&31)+(Ma>>>4|Ma)|0)*255|0)>>>0)/31|0;Ma=((((La>>>26&31)+(La>>>21&31)+(La>>>16&31)|0)*255|0)>>>0)/31|0;La=c[N+(Ha<<2)>>2]|0;Uc=La&30;me=((((La>>>10&31)+(La>>>5&31)+(Uc>>>4|Uc)|0)*255|0)>>>0)/31|0;Uc=((((La>>>26&31)+(La>>>21&31)+(La>>>16&31)|0)*255|0)>>>0)/31|0;La=c[O+(Ha<<2)>>2]|0;Ha=La&30;Xc=((((La>>>10&31)+(La>>>5&31)+(Ha>>>4|Ha)|0)*255|0)>>>0)/31|0;Ha=((((La>>>26&31)+(La>>>21&31)+(La>>>16&31)|0)*255|0)>>>0)/31|0;La=d[Ia+7>>0]|0;bb=d[Ia+5>>0]|0;yb=bb<<4&240|La&15;qb=bb&240|La>>>4;La=d[Ia+6>>0]|0;bb=d[Ia+4>>0]|0;Ia=bb<<4&240|La&15;cb=bb&240|La>>>4;La=R+M|0;bb=La+ya+Va<<2;Ab=Ua+Ta|0;qc=Ab+Sa+Ra<<2;Rc=qc-bb|0;Pc=(c[u+(d[644564+yb>>0]<<2)>>2]|0)-bb<<4;Nc=(qc|0)<(bb|0);bb=Nc?0-Pc|0:Pc;Pc=Nc?0-Rc|0:Rc;Rc=Va<<1;Nc=ya*6|0;qc=M*6|0;Qc=(R<<1)+qc+Nc+Rc|0;sc=Ra<<1;Oc=Sa*6|0;Sc=Ta*6|0;zc=(Ua<<1)+Sc+Oc+sc|0;yc=zc-Qc|0;ab=(c[u+(d[644564+qb>>0]<<2)>>2]|0)-Qc<<4;gb=(zc|0)<(Qc|0);Qc=gb?0-ab|0:ab;ab=gb?0-yc|0:yc;yc=(R*6|0)+qc+(ya<<1)+Rc|0;Rc=(Ua*6|0)+Sc+(Sa<<1)+sc|0;sc=Rc-yc|0;gb=(c[u+(d[644820+yb>>0]<<2)>>2]|0)-yc<<4;zc=(Rc|0)<(yc|0);yc=zc?0-gb|0:gb;gb=zc?0-sc|0:sc;sc=ya*3|0;zc=R*3|0;Rc=M*9|0;gd=zc+Rc+Va+sc|0;Kd=Sa*3|0;id=Ua*3|0;jd=Ta*9|0;Md=id+jd+Ra+Kd|0;ed=Md-gd|0;wb=(c[u+(d[644820+qb>>0]<<2)>>2]|0)-gd<<4;Vc=(Md|0)<(gd|0);gd=Vc?0-wb|0:wb;wb=Vc?0-ed|0:ed;ed=ya+M<<3;Vc=Sa+Ta<<3;Md=Vc-ed|0;pe=(c[u+(d[644564+Ia>>0]<<2)>>2]|0)-ed<<4;ne=(Vc|0)<(ed|0);ed=ne?0-pe|0:pe;pe=ne?0-Md|0:Md;Md=Nc+qc+(oe<<1)+(me<<1)|0;qc=Oc+Sc+(Ma<<1)+(Uc<<1)|0;Sc=qc-Md|0;Oc=(c[u+(d[644564+cb>>0]<<2)>>2]|0)-Md<<4;Nc=(qc|0)<(Md|0);Md=Nc?0-Oc|0:Oc;Oc=Nc?0-Sc|0:Sc;Sc=M*12|0;Nc=(ya<<2)+Sc|0;qc=Ta*12|0;ne=(Sa<<2)+qc|0;Vc=ne-Nc|0;le=(c[u+(d[644820+Ia>>0]<<2)>>2]|0)-Nc<<4;ld=(ne|0)<(Nc|0);Nc=ld?0-le|0:le;le=ld?0-Vc|0:Vc;Vc=me*3|0;ld=sc+Rc+oe+Vc|0;sc=Uc*3|0;ne=Kd+jd+Ma+sc|0;Kd=ne-ld|0;je=(c[u+(d[644820+cb>>0]<<2)>>2]|0)-ld<<4;fd=(ne|0)<(ld|0);ld=fd?0-je|0:je;je=fd?0-Kd|0:Kd;Kd=La<<3;fd=Ab<<3;ne=fd-Kd|0;Wc=(c[u+(d[645076+yb>>0]<<2)>>2]|0)-Kd<<4;Ld=(fd|0)<(Kd|0);Kd=Ld?0-Wc|0:Wc;Wc=Ld?0-ne|0:ne;ne=(R<<2)+Sc|0;Ld=(Ua<<2)+qc|0;fd=Ld-ne|0;zb=(c[u+(d[645076+qb>>0]<<2)>>2]|0)-ne<<4;rc=(Ld|0)<(ne|0);ne=rc?0-zb|0:zb;zb=rc?0-fd|0:fd;fd=(Pa+Oa<<1)+(La*6|0)|0;La=(Na+Qa<<1)+(Ab*6|0)|0;Ab=La-fd|0;rc=(c[u+(d[645332+yb>>0]<<2)>>2]|0)-fd<<4;yb=(La|0)<(fd|0);fd=yb?0-rc|0:rc;rc=yb?0-Ab|0:Ab;Ab=Oa*3|0;yb=Ab+Pa+Rc+zc|0;zc=Qa*3|0;La=zc+Na+jd+id|0;id=La-yb|0;Ld=(c[u+(d[645332+qb>>0]<<2)>>2]|0)-yb<<4;qb=(La|0)<(yb|0);yb=qb?0-id|0:id;id=qb?0-Ld|0:Ld;Ld=M<<4;qb=Ta<<4;La=qb-Ld|0;dd=(c[u+(d[645076+Ia>>0]<<2)>>2]|0)-Ld<<4;hd=(qb|0)<(Ld|0);Ld=hd?0-La|0:La;La=hd?0-dd|0:dd;dd=(me<<2)+Sc|0;hd=(Uc<<2)+qc|0;qb=hd-dd|0;kd=(c[u+(d[645076+cb>>0]<<2)>>2]|0)-dd<<4;Tc=(hd|0)<(dd|0);dd=Tc?0-qb|0:qb;qb=Tc?0-kd|0:kd;kd=Sc+(Oa<<2)|0;Sc=qc+(Qa<<2)|0;qc=Sc-kd|0;Tc=(c[u+(d[645332+Ia>>0]<<2)>>2]|0)-kd<<4;Ia=(Sc|0)<(kd|0);kd=Ia?0-qc|0:qc;qc=Ia?0-Tc|0:Tc;Tc=Rc+Ab+Vc+Xc|0;Vc=jd+zc+sc+Ha|0;sc=Vc-Tc|0;zc=(c[u+(d[645332+cb>>0]<<2)>>2]|0)-Tc<<4;cb=(Vc|0)<(Tc|0);Tc=cb?0-sc|0:sc;sc=cb?0-zc|0:zc;c[g+(xe<<3)>>2]=((Qc|0)>(ab*13|0)?12:(Qc|0)>(ab<<3|0)?8:(Qc|0)>(ab*3|0)?4:0)|((bb|0)>(Pc*13|0)?3:(bb|0)>(Pc<<3|0)?2:(bb|0)>(Pc*3|0)&1)|((yc|0)>(gb*13|0)?768:(yc|0)>(gb<<3|0)?512:(yc|0)>(gb*3|0)?256:0)|((gd|0)>(wb*13|0)?3072:(gd|0)>(wb<<3|0)?2048:(gd|0)>(wb*3|0)?1024:0)|((ed|0)>(pe*13|0)?48:(ed|0)>(pe<<3|0)?32:(ed|0)>(pe*3|0)?16:0)|((Md|0)>(Oc*13|0)?192:(Md|0)>(Oc<<3|0)?128:(Md|0)>(Oc*3|0)?64:0)|((Nc|0)>(le*13|0)?12288:(Nc|0)>(le<<3|0)?8192:(Nc|0)>(le*3|0)?4096:0)|((ld|0)>(je*13|0)?49152:(ld|0)>(je<<3|0)?32768:(ld|0)>(je*3|0)?16384:0)|((Kd|0)>(Wc*13|0)?196608:(Kd|0)>(Wc<<3|0)?131072:(Kd|0)>(Wc*3|0)?65536:0)|((ne|0)>(zb*13|0)?786432:(ne|0)>(zb<<3|0)?524288:(ne|0)>(zb*3|0)?262144:0)|((fd|0)>(rc*13|0)?50331648:(fd|0)>(rc<<3|0)?33554432:(fd|0)>(rc*3|0)?16777216:0)|((id|0)>(yb*13|0)?201326592:(id|0)>(yb<<3|0)?134217728:(id|0)>(yb*3|0)?67108864:0)|((La|0)>(Ld*13|0)?3145728:(La|0)>(Ld<<3|0)?2097152:(La|0)>(Ld*3|0)?1048576:0)|((qb|0)>(dd*13|0)?12582912:(qb|0)>(dd<<3|0)?8388608:(qb|0)>(dd*3|0)?4194304:0)|((qc|0)>(kd*13|0)?805306368:(qc|0)>(kd<<3|0)?536870912:(qc|0)>(kd*3|0)?268435456:0)|((sc|0)>(Tc*13|0)?-1073741824:(sc|0)>(Tc<<3|0)?-2147483648:(sc|0)>(Tc*3|0)?1073741824:0);if((Ja|0)==(h|0)){ye=Qa;ze=Oa;Ae=Ta;Be=Sa;Ce=M;De=ya;Ee=oe;Fe=Ma;Ge=me;He=Uc;Ie=Xc;Je=Ha;break}else{Tc=Qa;sc=Oa;kd=Sa;qc=Ta;dd=ya;qb=M;M=me;ya=oe;Ta=Uc;Sa=Ma;Oa=Xc;Qa=Ha;Ka=Ka+1|0;Na=Tc;Pa=sc;Ra=kd;Ua=qc;Va=dd;R=qb}}c[na>>2]=Ee;c[ma>>2]=Fe;c[$>>2]=Ge;c[_>>2]=He;c[la>>2]=Ie;c[ka>>2]=Je;c[r>>2]=De;c[ja>>2]=Ee;c[ia>>2]=Ce;c[ha>>2]=Ge;c[s>>2]=Be;c[ga>>2]=Fe;c[fa>>2]=Ae;c[ea>>2]=He;c[da>>2]=ze;c[ca>>2]=Ie;c[ba>>2]=ye;c[X>>2]=Je;Ke=T+h|0}else Ke=T;V=V+1|0;if((V|0)==(j|0))break;else T=Ke}}}if(!K)I=1;else{wc(K);I=1}}while(0);K=c[v>>2]|0;if(!K){i=q;return I|0}v=c[A>>2]|0;if((v|0)!=(K|0))c[A>>2]=v+(~((v+-4-K|0)>>>2)<<2);Qb(K);i=q;return I|0}function db(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=b;Ec(a+36|0,0,172)|0;return}function eb(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(e>>>0<78){f=0;return f|0}if(((d[c+1>>0]|0)<<8|(d[c>>0]|0)|0)!=17011){f=0;return f|0}if(((d[c+3>>0]|0)<<8|(d[c+2>>0]|0)|0)!=19){f=0;return f|0}if(((d[c+5>>0]|0)<<8|(d[c+4>>0]|0)|0)!=77){f=0;return f|0}if((((d[c+10>>0]|0)<<16|(d[c+11>>0]|0)<<24|(d[c+9>>0]|0)<<8|(d[c+8>>0]|0))+77|0)>>>0>e>>>0){f=0;return f|0}e=(d[c+18>>0]|0)<<8|(d[c+19>>0]|0)<<16|(d[c+17>>0]|0);if(!e){f=0;return f|0}b=d[c+14>>0]|0;g=(d[c+15>>0]|0)<<8|(d[c+16>>0]|0)<<16|b;if((g|0)==0|e>>>0>g>>>0){f=0;return f|0}g=a[c+21>>0]|0;if(!((b&1|0)==0|(g&4)==0)){f=0;return f|0}f=(g&1)!=0;return f|0}function fb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(c>>>0<78){e=0;return e|0}if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011){e=0;return e|0}if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19){e=0;return e|0}if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77){e=0;return e|0}if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>c>>>0){e=0;return e|0}e=(d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0);return e|0}function gb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(f>>>0<78){i=0;return i|0}if((d[e+1>>0]<<8|d[e>>0]|0)!=17011){i=0;return i|0}if((d[e+3>>0]<<8|d[e+2>>0]|0)!=19){i=0;return i|0}if((d[e+5>>0]<<8|d[e+4>>0]|0)!=77){i=0;return i|0}if(((d[e+10>>0]<<16|d[e+11>>0]<<24|d[e+9>>0]<<8|d[e+8>>0])+77|0)>>>0>f>>>0){i=0;return i|0}f=d[e+15>>0]<<8|d[e+16>>0]<<16|d[e+14>>0];if(!f){i=0;return i|0}b=e+(d[e+67>>0]<<16|d[e+68>>0]<<24|d[e+66>>0]<<8|d[e+65>>0])|0;j=0;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)==(h|0)?(a[b+(j*23|0)+3>>0]|0)==0:0){k=j;break}j=j+1|0;if(j>>>0>=f>>>0){i=0;l=17;break}}if((l|0)==17)return i|0;if((k|0)<0){i=0;return i|0}if((d[e+18>>0]<<8|d[e+19>>0]<<16|d[e+17>>0])>>>0<=h>>>0){i=0;return i|0}l=k+1|0;a:do if(l>>>0<f>>>0){j=l;m=1;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)!=(h|0)){n=m;break a}o=(d[b+(j*23|0)+3>>0]|0)+1|0;p=m>>>0>o>>>0?m:o;j=j+1|0;if(j>>>0>=f>>>0){n=p;break}else m=p}}else n=1;while(0);c[g>>2]=h;c[g+4>>2]=n;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;e=b+(k*23|0)+10|0;n=b+(k*23|0)+9|0;c[g+16>>2]=(d[e>>0]<<8|d[n>>0])<<2;h=b+(k*23|0)+12|0;f=b+(k*23|0)+11|0;c[g+20>>2]=(d[h>>0]<<8|d[f>>0])<<2;c[g+8>>2]=d[b+(k*23|0)+6>>0]<<8|d[b+(k*23|0)+5>>0];c[g+12>>2]=d[b+(k*23|0)+8>>0]<<8|d[b+(k*23|0)+7>>0];b=d[e>>0]<<8|d[n>>0];c[g+24>>2]=b;n=d[h>>0]<<8|d[f>>0];c[g+28>>2]=n;c[g+32>>2]=Z(n,b)|0;c[g+36>>2]=k;i=1;return i|0}function hb(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;if(e>>>0<78){k=0;return k|0}if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011){k=0;return k|0}if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19){k=0;return k|0}if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77){k=0;return k|0}if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>e>>>0){k=0;return k|0}e=(d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0);if(!e){k=0;return k|0}a=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;l=0;while(1){if(((d[a+(l*23|0)+1>>0]|0)<<8|(d[a+(l*23|0)+2>>0]|0)<<16|(d[a+(l*23|0)>>0]|0)|0)==(f|0)?(d[a+(l*23|0)+3>>0]|0|0)==(g|0):0){m=l;break}l=l+1|0;if(l>>>0>=e>>>0){k=0;n=14;break}}if((n|0)==14)return k|0;if((m|0)<0){k=0;return k|0}if(((d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0))>>>0<=f>>>0){k=0;return k|0}c[h>>2]=(d[a+(m*23|0)+6>>0]|0)<<8|(d[a+(m*23|0)+5>>0]|0);c[i>>2]=(d[a+(m*23|0)+8>>0]|0)<<8|(d[a+(m*23|0)+7>>0]|0);c[j>>2]=Z((d[a+(m*23|0)+12>>0]|0)<<8|(d[a+(m*23|0)+11>>0]|0),(d[a+(m*23|0)+10>>0]|0)<<8|(d[a+(m*23|0)+9>>0]|0))|0;k=1;return k|0}function ib(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if(f>>>0<78){j=0;return j|0}if(((d[e+1>>0]|0)<<8|(d[e>>0]|0)|0)!=17011){j=0;return j|0}if(((d[e+3>>0]|0)<<8|(d[e+2>>0]|0)|0)!=19){j=0;return j|0}if(((d[e+5>>0]|0)<<8|(d[e+4>>0]|0)|0)!=77){j=0;return j|0}if((((d[e+10>>0]|0)<<16|(d[e+11>>0]|0)<<24|(d[e+9>>0]|0)<<8|(d[e+8>>0]|0))+77|0)>>>0>f>>>0){j=0;return j|0}f=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!f){j=0;return j|0}b=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;k=0;while(1){if(((d[b+(k*23|0)+1>>0]|0)<<8|(d[b+(k*23|0)+2>>0]|0)<<16|(d[b+(k*23|0)>>0]|0)|0)==(h|0)?(d[b+(k*23|0)+3>>0]|0|0)==(i|0):0){l=k;break}k=k+1|0;if(k>>>0>=f>>>0){j=0;m=14;break}}if((m|0)==14)return j|0;if((l|0)<0){j=0;return j|0}if(((d[e+18>>0]|0)<<8|(d[e+19>>0]|0)<<16|(d[e+17>>0]|0))>>>0<=h>>>0){j=0;return j|0}c[g>>2]=h;c[g+4>>2]=i;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;e=b+(l*23|0)+10|0;i=b+(l*23|0)+9|0;c[g+16>>2]=((d[e>>0]|0)<<8|(d[i>>0]|0))<<2;h=b+(l*23|0)+12|0;m=b+(l*23|0)+11|0;c[g+20>>2]=((d[h>>0]|0)<<8|(d[m>>0]|0))<<2;c[g+8>>2]=(d[b+(l*23|0)+6>>0]|0)<<8|(d[b+(l*23|0)+5>>0]|0);c[g+12>>2]=(d[b+(l*23|0)+8>>0]|0)<<8|(d[b+(l*23|0)+7>>0]|0);b=(d[e>>0]|0)<<8|(d[i>>0]|0);c[g+24>>2]=b;i=(d[h>>0]|0)<<8|(d[m>>0]|0);c[g+28>>2]=i;c[g+32>>2]=Z(i,b)|0;c[g+36>>2]=l;j=1;return j|0}function jb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0;f=a+8|0;if((c[a+12>>2]|0)!=(c[f>>2]|0)){g=1;return g|0}if(e>>>0<78){g=0;return g|0}if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011){g=0;return g|0}if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19){g=0;return g|0}if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77){g=0;return g|0}if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>e>>>0){g=0;return g|0}if(!(Za(f,(d[b+40>>0]|0)<<8|(d[b+39>>0]|0),b+((d[b+43>>0]|0)<<16|(d[b+44>>0]|0)<<24|(d[b+42>>0]|0)<<8|(d[b+41>>0]|0))|0,(d[b+46>>0]|0)<<8|(d[b+47>>0]|0)<<16|(d[b+45>>0]|0),(d[b+49>>0]|0)<<8|(d[b+48>>0]|0),b+((d[b+52>>0]|0)<<16|(d[b+53>>0]|0)<<24|(d[b+51>>0]|0)<<8|(d[b+50>>0]|0))|0,(d[b+55>>0]|0)<<8|(d[b+56>>0]|0)<<16|(d[b+54>>0]|0))|0)){g=0;return g|0}g=bb(f,b+((d[b+59>>0]|0)<<16|(d[b+60>>0]|0)<<24|(d[b+58>>0]|0)<<8|(d[b+57>>0]|0))|0,(d[b+63>>0]|0)<<16|(d[b+64>>0]|0)<<24|(d[b+62>>0]|0)<<8|(d[b+61>>0]|0))|0;return g|0}function kb(a,b,e,f,g,h,i,j,k){a=a|0;b=b|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;l=a+8|0;if(e>>>0<78|((k&2|0)!=0?1:(c[a+12>>2]|0)==(c[l>>2]|0))){m=0;return m|0}if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011){m=0;return m|0}if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19){m=0;return m|0}if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77){m=0;return m|0}if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>e>>>0){m=0;return m|0}if(((d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0))>>>0<=f>>>0){m=0;return m|0}e=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;a=(d[e+(f*23|0)+10>>0]|0)<<8|(d[e+(f*23|0)+9>>0]|0);n=(d[e+(f*23|0)+12>>0]|0)<<8|(d[e+(f*23|0)+11>>0]|0);if((Z(n,a)|0)>>>0>h>>>0){m=0;return m|0}if((i|0)==3){h=a<<2;if(!a){m=0;return m|0}if(h+262143&h){m=0;return m|0}h=n<<2;if(!n){m=0;return m|0}if(h+262143&h){m=0;return m|0}}m=cb(l,g,a,n,b+((d[e+(f*23|0)+15>>0]|0)<<16|(d[e+(f*23|0)+16>>0]|0)<<24|(d[e+(f*23|0)+14>>0]|0)<<8|(d[e+(f*23|0)+13>>0]|0))|0,(d[e+(f*23|0)+19>>0]|0)<<16|(d[e+(f*23|0)+20>>0]|0)<<24|(d[e+(f*23|0)+18>>0]|0)<<8|(d[e+(f*23|0)+17>>0]|0),i,j,(k&1|0)!=0,(k&8|0)==0)|0;return m|0}function lb(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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;n=i;i=i+16|0;o=n;if((c[b+12>>2]|0)==(c[b+8>>2]|0)){p=0;i=n;return p|0}q=m>>>2;if(f>>>0<78|(m&2|0)!=0){p=0;i=n;return p|0}if(((d[e+1>>0]|0)<<8|(d[e>>0]|0)|0)!=17011){p=0;i=n;return p|0}if(((d[e+3>>0]|0)<<8|(d[e+2>>0]|0)|0)!=19){p=0;i=n;return p|0}if(((d[e+5>>0]|0)<<8|(d[e+4>>0]|0)|0)!=77){p=0;i=n;return p|0}if((((d[e+10>>0]|0)<<16|(d[e+11>>0]|0)<<24|(d[e+9>>0]|0)<<8|(d[e+8>>0]|0))+77|0)>>>0>f>>>0){p=0;i=n;return p|0}r=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;s=(a[e+21>>0]&4)!=0;t=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!t){p=0;i=n;return p|0}else u=0;while(1){if(((d[r+(u*23|0)+1>>0]|0)<<8|(d[r+(u*23|0)+2>>0]|0)<<16|(d[r+(u*23|0)>>0]|0)|0)==(g|0)?(d[r+(u*23|0)+3>>0]|0|0)==(h|0):0){v=u;break}u=u+1|0;if(u>>>0>=t>>>0){p=0;w=42;break}}if((w|0)==42){i=n;return p|0}if((v|0)<0){p=0;i=n;return p|0}if(a[r+(v*23|0)+4>>0]&1){p=0;i=n;return p|0}if(s){w=v+1|0;if(w>>>0>=t>>>0){p=0;i=n;return p|0}if(!(a[r+(w*23|0)+4>>0]&1)){p=0;i=n;return p|0}t=a[r+(v*23|0)+10>>0]|0;u=a[r+(v*23|0)+9>>0]|0;if(((t&255)<<8|u&255|0)!=((d[r+(w*23|0)+10>>0]|0)<<8|(d[r+(w*23|0)+9>>0]|0)|0)){p=0;i=n;return p|0}h=a[r+(v*23|0)+12>>0]|0;g=a[r+(v*23|0)+11>>0]|0;if(((h&255)<<8|g&255|0)==((d[r+(w*23|0)+12>>0]|0)<<8|(d[r+(w*23|0)+11>>0]|0)|0)){x=t;y=u;z=h;A=g}else{p=0;i=n;return p|0}}else{x=a[r+(v*23|0)+10>>0]|0;y=a[r+(v*23|0)+9>>0]|0;z=a[r+(v*23|0)+12>>0]|0;A=a[r+(v*23|0)+11>>0]|0}r=(l&-4|0)==4?16:8;g=Z((z&255)<<8|A&255,(x&255)<<8|y&255)|0;switch(l|0){case 0:{p=kb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,0,r,m)|0;i=n;return p|0}case 1:{p=kb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,1,r,m)|0;i=n;return p|0}case 2:{p=kb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,2,r,m)|0;i=n;return p|0}case 3:{p=kb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,3,r,m)|0;i=n;return p|0}case 4:{p=kb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,4,r,m)|0;i=n;return p|0}case 5:{if(s){if(!(kb(b,e,f,v+1|0,j,k,5,16,m)|0)){p=0;i=n;return p|0}}else if(g){r=0;do{q=r<<4;l=j+q|0;a[l>>0]=255;a[l+1>>0]=29;l=j+(q|2)|0;a[l>>0]=a[641756]|0;a[l+1>>0]=a[641757]|0;a[l+2>>0]=a[641758]|0;a[l+3>>0]=a[641759]|0;a[l+4>>0]=a[641760]|0;a[l+5>>0]=a[641761]|0;r=r+1|0}while((r|0)!=(g|0))}p=kb(b,e,f,v,j+8|0,k,0,16,m)|0;i=n;return p|0}case 6:{if(s){if(!(kb(b,e,f,v+1|0,j,k,2,16,m)|0)){p=0;i=n;return p|0}}else{a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;a[o+5>>0]=0;if(g){r=0;do{l=r<<4;a[j+l>>0]=-1;a[j+(l|1)>>0]=-1;q=j+(l|2)|0;a[q>>0]=a[o>>0]|0;a[q+1>>0]=a[o+1>>0]|0;a[q+2>>0]=a[o+2>>0]|0;a[q+3>>0]=a[o+3>>0]|0;a[q+4>>0]=a[o+4>>0]|0;a[q+5>>0]=a[o+5>>0]|0;r=r+1|0}while((r|0)!=(g|0))}}p=kb(b,e,f,v,j+8|0,k,1,16,m|8)|0;i=n;return p|0}case 7:{if(!(kb(b,e,f,v,j,k,2,16,m)|0)){p=0;i=n;return p|0}if(s){p=kb(b,e,f,v+1|0,j+8|0,k,2,16,m)|0;i=n;return p|0};a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;a[o+5>>0]=0;if(g){m=0;do{k=m<<4;a[j+(k|8)>>0]=-1;a[j+(k|9)>>0]=-1;v=j+(k|10)|0;a[v>>0]=a[o>>0]|0;a[v+1>>0]=a[o+1>>0]|0;a[v+2>>0]=a[o+2>>0]|0;a[v+3>>0]=a[o+3>>0]|0;a[v+4>>0]=a[o+4>>0]|0;a[v+5>>0]=a[o+5>>0]|0;m=m+1|0}while((m|0)!=(g|0))}p=1;i=n;return p|0}default:{p=0;i=n;return p|0}}return 0}function mb(a){a=a|0;var b=0;switch(a|0){case 3:case 2:case 1:case 0:{b=8;break}case 7:case 6:case 5:case 4:{b=16;break}default:b=0}return b|0}function nb(d,e,f){d=d|0;e=e|0;f=f|0;var 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;g=i;i=i+256|0;h=g+128|0;j=g;if(!e){k=c[d>>2]|0;l=d+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[d+12>>2]|0;l=d+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[d+24>>2]|0;m=d+28|0;l=c[m>>2]|0;if((k|0)==(l|0)){n=1;i=g;return n|0}c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);n=1;i=g;return n|0}k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;o=l-m|0;if(o>>>0>=e>>>0)if(o>>>0>e>>>0?(p=m+e|0,(l|0)!=(p|0)):0){c[k>>2]=p;q=m}else q=m;else{ob(d,e-o|0);q=c[d>>2]|0}Hc(q|0,f|0,e|0)|0;q=d+12|0;o=d+16|0;m=c[o>>2]|0;p=c[q>>2]|0;k=p;if((m|0)==(p|0))r=m;else{l=m+(~((m+-4-k|0)>>>2)<<2)|0;c[o>>2]=l;r=l}l=r-k>>2;if(l>>>0>=1024){if(l>>>0>1024?(k=p+4096|0,(r|0)!=(k|0)):0)c[o>>2]=r+(~((r+-4-k|0)>>>2)<<2)}else pb(q,1024-l|0);l=d+24|0;k=d+28|0;d=c[k>>2]|0;r=c[l>>2]|0;o=r;if((d|0)==(r|0))s=d;else{p=d+(~((d+-2-o|0)>>>1)<<1)|0;c[k>>2]=p;s=p}p=e<<1;d=s-o>>1;if(p>>>0<=d>>>0){if(p>>>0<d>>>0?(o=r+(p<<1)|0,(s|0)!=(o|0)):0)c[k>>2]=s+(~((s+-2-o|0)>>>1)<<1)}else qb(l,p-d|0);d=h;p=d+128|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(p|0));d=0;while(1){p=a[f+d>>0]|0;if((p&255)>31){t=0;break}o=h+((p&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;d=d+1|0;if(d>>>0>=e>>>0){u=30;break}}if((u|0)==30){c[j+4>>2]=0;c[j>>2]=0;u=1;d=0;o=0;while(1){p=c[h+(u<<2)>>2]|0;s=p+o|0;k=p+d<<1;u=u+1|0;c[j+(u<<2)>>2]=k;if((u|0)==31){v=s;w=k;break}else{d=k;o=s}}if(!(v>>>0>1&(w|0)!=-2147483648))if((e|0)>0){w=0;v=-1;while(1){o=a[f+w>>0]|0;d=o&255;a:do if(!(o<<24>>24))x=v;else{u=j+(d<<2)|0;h=c[u>>2]|0;c[u>>2]=h+1;u=h;h=d;s=0;while(1){k=u&1|s<<1;h=h+-1|0;if(!h){y=k;z=s;break}else{u=u>>>1;s=k}}if((o&255)<11){s=d<<16|w;if(y>>>0>=1024){x=v;break}u=c[q>>2]|0;h=1<<d;k=y;while(1){c[u+(k<<2)>>2]=s;k=k+h|0;if(k>>>0>=1024){x=v;break a}}}k=(c[q>>2]|0)+((y&1023)<<2)|0;h=c[k>>2]|0;if(!h){c[k>>2]=v;A=v;B=v+-2|0}else{A=h;B=v}h=z>>>9;k=A-(h&1)|0;s=c[l>>2]|0;if((o&255)>11){u=k;p=h&4194303;h=d;r=B;while(1){m=s+(~u<<1)|0;C=b[m>>1]|0;if(!(C<<16>>16)){b[m>>1]=r;D=r;E=r+-2|0}else{D=C<<16>>16;E=r}h=h+-1|0;p=p>>>1;C=D-(p&1)|0;if((h|0)<=11){F=C;G=E;break}else{u=C;r=E}}}else{F=k;G=B}b[s+(~F<<1)>>1]=w;x=G}while(0);w=w+1|0;if((w|0)==(e|0)){H=1;break}else v=x}}else H=1;else H=0;t=H}n=t;i=g;return n|0}function ob(b,d){b=b|0;d=d|0;var 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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if((f-i|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;k=(c[g>>2]|0)+1|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=i-j+d|0;if((k|0)<0)Ob(b);i=j;j=f-i|0;if(j>>>0<1073741823){f=j<<1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=2147483647;p=(c[g>>2]|0)-i|0;q=8}if((q|0)==8){l=o;m=Pb(o)|0;n=p}p=m+n|0;o=m+l|0;l=d;d=p;q=p;while(1){a[d>>0]=0;d=q+1|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-l)|0;Hc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Qb(q);return}function pb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>2>>>0>=b>>>0){Ec(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}g=c[a>>2]|0;i=g;j=(h-i>>2)+b|0;if(j>>>0>1073741823)Ob(a);h=g;k=e-h|0;if(k>>2>>>0<536870911){e=k>>1;k=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h|0;j=e>>2;if(!k){l=0;m=0;n=j;o=e}else{p=k;q=j;r=e;s=8}}else{e=(c[f>>2]|0)-h|0;p=1073741823;q=e>>2;r=e;s=8}if((s|0)==8){l=p;m=Pb(p<<2)|0;n=q;o=r}Ec(m+(n<<2)|0,0,b<<2|0)|0;Hc(m|0,g|0,o|0)|0;c[a>>2]=m;c[f>>2]=m+(n+b<<2);c[d>>2]=m+(l<<2);if(!i)return;Qb(i);return}function qb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>1>>>0>=b>>>0){Ec(g|0,0,b<<1|0)|0;c[f>>2]=g+(b<<1);return}i=c[a>>2]|0;j=i;k=(h-j>>1)+b|0;if((k|0)<0)Ob(a);h=i;l=e-h|0;e=l>>1>>>0<1073741823?(l>>>0<k>>>0?k:l):2147483647;l=g-h|0;h=l>>1;if(!e)m=0;else m=Pb(e<<1)|0;Ec(m+(h<<1)|0,0,b<<1|0)|0;Hc(m|0,i|0,l|0)|0;c[a>>2]=m;c[f>>2]=m+(h+b<<1);c[d>>2]=m+(e<<1);if(!j)return;Qb(j);return}function rb(b,c,e){b=b|0;c=c|0;e=e|0;var 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;f=i;i=i+112|0;g=f+96|0;h=f+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;o=b;p=c;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));if(a[e+8>>0]|0){q=b+1|0;r=a[q>>0]|0;s=b+2|0;t=a[s>>0]|0;u=a[b+4>>0]|0;v=b+5|0;w=a[v>>0]|0;x=b+6|0;y=a[x>>0]|0;z=a[b+8>>0]|0;A=b+9|0;B=a[A>>0]|0;C=b+10|0;D=a[C>>0]|0;E=a[b+12>>0]|0;F=b+13|0;G=a[F>>0]|0;H=b+14|0;I=a[H>>0]|0;a[q>>0]=a[b>>0]|0;a[s>>0]=r;a[b+3>>0]=t;a[v>>0]=u;a[x>>0]=w;a[b+7>>0]=y;a[A>>0]=z;a[C>>0]=B;a[b+11>>0]=D;a[F>>0]=E;a[H>>0]=G;a[b+15>>0]=I}if(a[e+9>>0]|0){I=b+12|0;G=d[I>>0]|d[I+1>>0]<<8|d[I+2>>0]<<16|d[I+3>>0]<<24;H=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;E=b+4|0;F=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24;D=b+8|0;B=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24;a[b>>0]=G;a[b+1>>0]=G>>8;a[b+2>>0]=G>>16;a[b+3>>0]=G>>24;a[E>>0]=H;a[E+1>>0]=H>>8;a[E+2>>0]=H>>16;a[E+3>>0]=H>>24;a[D>>0]=F;a[D+1>>0]=F>>8;a[D+2>>0]=F>>16;a[D+3>>0]=F>>24;a[I>>0]=B;a[I+1>>0]=B>>8;a[I+2>>0]=B>>16;a[I+3>>0]=B>>24}sb(g,b,(a[e+6>>0]|0)!=0,d[e+12>>0]|0);o=b;p=g;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));if(a[e+7>>0]|0){tb(h,b);o=b;p=h;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+10>>0]|0){ub(j,b);o=b;p=j;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+11>>0]|0){o=k;c=o+16|0;do{a[o>>0]=0;o=o+1|0}while((o|0)<(c|0));j=0;do{h=j<<2;g=(j|0)<1?0:h+-4|0;B=j;j=j+1|0;I=(B|0)>2?12:j<<2;B=0;do{F=B+-1|0;D=B;B=B+1|0;H=D+h|0;E=(d[b+H>>0]<<3)-((d[b+(((F|0)<0?0:F)+h)>>0]|0)+(d[b+(D+g)>>0]|0))-(d[b+(((B|0)>3?3:B)+h)>>0]|0)-(d[b+(D+I)>>0]|0)|0;a[k+H>>0]=(E|0)<-3?0:(E|0)>15?3:((E|0)/4|0)&255}while((B|0)!=4)}while((j|0)!=4);o=b;p=k;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+1>>0]|0){vb(l,b);o=b;p=l;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+3>>0]|0){l=b+1|0;k=a[644536+(d[l>>0]|0)>>0]|0;j=b+2|0;B=a[644536+(d[j>>0]|0)>>0]|0;I=b+3|0;h=a[644536+(d[I>>0]|0)>>0]|0;g=b+4|0;E=a[644536+(d[g>>0]|0)>>0]|0;H=b+5|0;D=a[644536+(d[H>>0]|0)>>0]|0;F=b+6|0;G=a[644536+(d[F>>0]|0)>>0]|0;C=b+7|0;z=a[644536+(d[C>>0]|0)>>0]|0;A=b+8|0;y=a[644536+(d[A>>0]|0)>>0]|0;w=b+9|0;x=a[644536+(d[w>>0]|0)>>0]|0;u=b+10|0;v=a[644536+(d[u>>0]|0)>>0]|0;t=b+11|0;r=a[644536+(d[t>>0]|0)>>0]|0;s=b+12|0;q=a[644536+(d[s>>0]|0)>>0]|0;J=b+13|0;K=a[644536+(d[J>>0]|0)>>0]|0;L=b+14|0;M=a[644536+(d[L>>0]|0)>>0]|0;N=b+15|0;O=a[644536+(d[N>>0]|0)>>0]|0;a[b>>0]=a[644536+(d[b>>0]|0)>>0]|0;a[l>>0]=k;a[j>>0]=B;a[I>>0]=h;a[g>>0]=E;a[H>>0]=D;a[F>>0]=G;a[C>>0]=z;a[A>>0]=y;a[w>>0]=x;a[u>>0]=v;a[t>>0]=r;a[s>>0]=q;a[J>>0]=K;a[L>>0]=M;a[N>>0]=O}if(a[e+4>>0]|0){o=m;c=o+16|0;do{a[o>>0]=0;o=o+1|0}while((o|0)<(c|0));O=0;do{N=(d[b+O>>0]|0)+1|0;a[m+O>>0]=N>>>0>3?3:N&255;O=O+1|0}while((O|0)!=16);o=b;p=m;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}m=a[e>>0]|0;if(m<<24>>24){O=m&255;m=b+1|0;N=a[(d[m>>0]|0)+(644540+(O<<2))>>0]|0;M=b+2|0;L=a[(d[M>>0]|0)+(644540+(O<<2))>>0]|0;K=b+3|0;J=a[(d[K>>0]|0)+(644540+(O<<2))>>0]|0;q=b+4|0;s=a[(d[q>>0]|0)+(644540+(O<<2))>>0]|0;r=b+5|0;t=a[(d[r>>0]|0)+(644540+(O<<2))>>0]|0;v=b+6|0;u=a[(d[v>>0]|0)+(644540+(O<<2))>>0]|0;x=b+7|0;w=a[(d[x>>0]|0)+(644540+(O<<2))>>0]|0;y=b+8|0;A=a[(d[y>>0]|0)+(644540+(O<<2))>>0]|0;z=b+9|0;C=a[(d[z>>0]|0)+(644540+(O<<2))>>0]|0;G=b+10|0;F=a[(d[G>>0]|0)+(644540+(O<<2))>>0]|0;D=b+11|0;H=a[(d[D>>0]|0)+(644540+(O<<2))>>0]|0;E=b+12|0;g=a[(d[E>>0]|0)+(644540+(O<<2))>>0]|0;h=b+13|0;I=a[(d[h>>0]|0)+(644540+(O<<2))>>0]|0;B=b+14|0;j=a[(d[B>>0]|0)+(644540+(O<<2))>>0]|0;k=b+15|0;l=a[(d[k>>0]|0)+(644540+(O<<2))>>0]|0;a[b>>0]=a[(d[b>>0]|0)+(644540+(O<<2))>>0]|0;a[m>>0]=N;a[M>>0]=L;a[K>>0]=J;a[q>>0]=s;a[r>>0]=t;a[v>>0]=u;a[x>>0]=w;a[y>>0]=A;a[z>>0]=C;a[G>>0]=F;a[D>>0]=H;a[E>>0]=g;a[h>>0]=I;a[B>>0]=j;a[k>>0]=l}if(a[e+5>>0]|0){l=b+1|0;k=3-(d[l>>0]|0)&255;j=b+2|0;B=3-(d[j>>0]|0)&255;I=b+3|0;h=3-(d[I>>0]|0)&255;g=b+4|0;E=3-(d[g>>0]|0)&255;H=b+5|0;D=3-(d[H>>0]|0)&255;F=b+6|0;G=3-(d[F>>0]|0)&255;C=b+7|0;z=3-(d[C>>0]|0)&255;A=b+8|0;y=3-(d[A>>0]|0)&255;w=b+9|0;x=3-(d[w>>0]|0)&255;u=b+10|0;v=3-(d[u>>0]|0)&255;t=b+11|0;r=3-(d[t>>0]|0)&255;s=b+12|0;q=3-(d[s>>0]|0)&255;J=b+13|0;K=3-(d[J>>0]|0)&255;L=b+14|0;M=3-(d[L>>0]|0)&255;N=b+15|0;m=3-(d[N>>0]|0)&255;a[b>>0]=3-(d[b>>0]|0);a[l>>0]=k;a[j>>0]=B;a[I>>0]=h;a[g>>0]=E;a[H>>0]=D;a[F>>0]=G;a[C>>0]=z;a[A>>0]=y;a[w>>0]=x;a[u>>0]=v;a[t>>0]=r;a[s>>0]=q;a[J>>0]=K;a[L>>0]=M;a[N>>0]=m}if(!(a[e+2>>0]|0)){i=f;return}wb(n,b);o=b;p=n;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));i=f;return}function sb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;if(f){f=e+12|0;c[j>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;f=e+8|0;c[j+4>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;f=e+4|0;c[j+8>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;c[j+12>>2]=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24}else{k=j;l=e;m=k+16|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}k=b;m=k+16|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));switch(g|0){case 0:{k=b;l=j;m=k+16|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));i=h;return}case 1:{a[b>>0]=a[j+12>>0]|0;a[b+1>>0]=a[j+8>>0]|0;a[b+2>>0]=a[j+4>>0]|0;a[b+3>>0]=a[j>>0]|0;a[b+4>>0]=a[j+13>>0]|0;a[b+5>>0]=a[j+9>>0]|0;a[b+6>>0]=a[j+5>>0]|0;a[b+7>>0]=a[j+1>>0]|0;a[b+8>>0]=a[j+14>>0]|0;a[b+9>>0]=a[j+10>>0]|0;a[b+10>>0]=a[j+6>>0]|0;a[b+11>>0]=a[j+2>>0]|0;a[b+12>>0]=a[j+15>>0]|0;a[b+13>>0]=a[j+11>>0]|0;a[b+14>>0]=a[j+7>>0]|0;a[b+15>>0]=a[j+3>>0]|0;i=h;return}case 2:{a[b>>0]=a[j+15>>0]|0;a[b+1>>0]=a[j+14>>0]|0;a[b+2>>0]=a[j+13>>0]|0;a[b+3>>0]=a[j+12>>0]|0;a[b+4>>0]=a[j+11>>0]|0;a[b+5>>0]=a[j+10>>0]|0;a[b+6>>0]=a[j+9>>0]|0;a[b+7>>0]=a[j+8>>0]|0;a[b+8>>0]=a[j+7>>0]|0;a[b+9>>0]=a[j+6>>0]|0;a[b+10>>0]=a[j+5>>0]|0;a[b+11>>0]=a[j+4>>0]|0;a[b+12>>0]=a[j+3>>0]|0;a[b+13>>0]=a[j+2>>0]|0;a[b+14>>0]=a[j+1>>0]|0;a[b+15>>0]=a[j>>0]|0;i=h;return}case 3:{a[b>>0]=a[j+3>>0]|0;a[b+1>>0]=a[j+7>>0]|0;a[b+2>>0]=a[j+11>>0]|0;a[b+3>>0]=a[j+15>>0]|0;a[b+4>>0]=a[j+2>>0]|0;a[b+5>>0]=a[j+6>>0]|0;a[b+6>>0]=a[j+10>>0]|0;a[b+7>>0]=a[j+14>>0]|0;a[b+8>>0]=a[j+1>>0]|0;a[b+9>>0]=a[j+5>>0]|0;a[b+10>>0]=a[j+9>>0]|0;a[b+11>>0]=a[j+13>>0]|0;a[b+12>>0]=a[j>>0]|0;a[b+13>>0]=a[j+4>>0]|0;a[b+14>>0]=a[j+8>>0]|0;a[b+15>>0]=a[j+12>>0]|0;i=h;return}default:{i=h;return}}}function tb(b,c){b=b|0;c=c|0;var 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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;do{f=e<<2;g=e+-1|0;h=g>>>0>3;e=e+1|0;i=e>>>0>3;j=e<<2;k=g<<2;g=0;while(1){if(!h){l=g+-1|0;if(l>>>0>3)m=0;else m=d[c+(l+k)>>0]|0;l=d[c+(g+k)>>0]|0;n=m>>>0>l>>>0?m:l;l=g+1|0;if(l>>>0>3)o=n;else{p=d[c+(l+k)>>0]|0;o=n>>>0>p>>>0?n:p}}else o=0;p=g+-1|0;if(p>>>0>3)q=o;else{n=d[c+(p+f)>>0]|0;q=o>>>0>n>>>0?o:n}n=d[c+(g+f)>>0]|0;p=q>>>0>n>>>0?q:n;n=g+1|0;if(n>>>0>3)r=p;else{l=d[c+(n+f)>>0]|0;r=p>>>0>l>>>0?p:l}if(!i){l=g+-1|0;if(l>>>0>3)s=r;else{p=d[c+(l+j)>>0]|0;s=r>>>0>p>>>0?r:p}p=d[c+(g+j)>>0]|0;l=s>>>0>p>>>0?s:p;p=g+1|0;if(p>>>0>3){t=p;u=l}else{n=d[c+(p+j)>>0]|0;a[b+(g+f)>>0]=l>>>0>n>>>0?l:n;g=p;continue}}else{t=g+1|0;u=r}a[b+(g+f)>>0]=u;if((t|0)==4)break;else g=t}}while((e|0)!=4);return}function ub(b,c){b=b|0;c=c|0;var 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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;do{f=e<<2;g=e+-1|0;h=g>>>0>3;e=e+1|0;i=e>>>0>3;j=e<<2;k=g<<2;g=0;while(1){if(!h){l=g+-1|0;if(l>>>0>3)m=99;else{n=d[c+(l+k)>>0]|0;m=n>>>0>99?99:n}n=d[c+(g+k)>>0]|0;l=m>>>0<n>>>0?m:n;n=g+1|0;if(n>>>0>3)o=l;else{p=d[c+(n+k)>>0]|0;o=l>>>0<p>>>0?l:p}}else o=99;p=g+-1|0;if(p>>>0>3)q=o;else{l=d[c+(p+f)>>0]|0;q=o>>>0<l>>>0?o:l}l=d[c+(g+f)>>0]|0;p=q>>>0<l>>>0?q:l;l=g+1|0;if(l>>>0>3)r=p;else{n=d[c+(l+f)>>0]|0;r=p>>>0<n>>>0?p:n}if(!i){n=g+-1|0;if(n>>>0>3)s=r;else{p=d[c+(n+j)>>0]|0;s=r>>>0<p>>>0?r:p}p=d[c+(g+j)>>0]|0;n=s>>>0<p>>>0?s:p;p=g+1|0;if(p>>>0>3){t=p;u=n}else{l=d[c+(p+j)>>0]|0;a[b+(g+f)>>0]=n>>>0<l>>>0?n:l;g=p;continue}}else{t=g+1|0;u=r}a[b+(g+f)>>0]=u;if((t|0)==4)break;else g=t}}while((e|0)!=4);return}function vb(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=(d[c+1>>0]|0)<<2|(d[c>>0]|0)|(d[c+2>>0]|0)<<4|(d[c+3>>0]|0)<<6|((d[c+5>>0]|0)<<2|(d[c+4>>0]|0)|(d[c+6>>0]|0)<<4|(d[c+7>>0]|0)<<6)<<8|((d[c+9>>0]|0)<<2|(d[c+8>>0]|0)|(d[c+10>>0]|0)<<4|(d[c+11>>0]|0)<<6)<<16|((d[c+13>>0]|0)<<2|(d[c+12>>0]|0)|(d[c+14>>0]|0)<<4|(d[c+15>>0]|0)<<6)<<24;f=b;g=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));f=e;e=0;while(1){g=e<<2;h=f;i=0;while(1){j=i+g|0;k=d[c+j>>0]|0;l=((h|0)==0&1)+h|0;m=((l&65535)*36969|0)+(l>>>16)|0;l=((m|0)==0&1)+m|0;n=((l&65535)*36969|0)+(l>>>16)|0;l=(((n&65535^n>>>16)*6|0)>>>16)+(((m&65535^m>>>16)*6|0)>>>16)|0;a:do switch(l|0){case 0:{o=k+-2|0;break}case 10:{o=k+2|0;break}default:if(l>>>0<3){o=k+-1|0;break a}else{o=k+(l>>>0>7&1)|0;break a}}while(0);a[b+j>>0]=(o|0)<0?0:(o|0)>3?3:o&255;i=i+1|0;if((i|0)==4){p=n;break}else h=n}h=e+1|0;if((h|0)==4)break;else{f=p;e=h}}return}function wb(b,c){b=b|0;c=c|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,t=0,u=0,v=0;d=i;i=i+16|0;e=d;f=d+8|0;g=b;h=g+16|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));g=0;do{h=g<<2;j=g+-1|0;k=j>>>0>3;g=g+1|0;l=g>>>0>3;m=g<<2;n=j<<2;j=0;do{if(!k){o=j+-1|0;if(o>>>0>3)p=0;else{a[f>>0]=a[c+(o+n)>>0]|0;p=1}o=p+1|0;a[f+p>>0]=a[c+(j+n)>>0]|0;q=j+1|0;if(q>>>0>3)r=o;else{a[f+o>>0]=a[c+(q+n)>>0]|0;r=p|2}}else r=0;q=j+-1|0;if(q>>>0>3)s=r;else{a[f+r>>0]=a[c+(q+h)>>0]|0;s=r+1|0}q=j+1|0;if(q>>>0>3)t=s;else{a[f+s>>0]=a[c+(q+h)>>0]|0;t=s+1|0}if(!l){q=j+-1|0;if(q>>>0>3)u=t;else{a[f+t>>0]=a[c+(q+m)>>0]|0;u=t+1|0}q=u+1|0;a[f+u>>0]=a[c+(j+m)>>0]|0;o=j+1|0;if(o>>>0>3)v=q;else{a[f+q>>0]=a[c+(o+m)>>0]|0;v=u+2|0}}else v=t;xc(f,f+v|0,e);a[b+(j+h)>>0]=a[f+(v>>>1)>>0]|0;j=j+1|0}while((j|0)!=4)}while((g|0)!=4);i=d;return}function xb(b,d,e){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,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;f=c[d>>2]|0;d=f&255;g=f>>>5;h=f>>>10&63;i=f>>>13;j=f>>>18&63;f=d<<3&248|d>>>2;d=c[509148+(e<<4)>>2]|0;k=f+d|0;if(k>>>0>255)if((k|0)<0){l=0;m=3}else n=255;else{l=k;m=3}if((m|0)==3)n=l;l=g&248|h;h=d+l|0;if(h>>>0>255)if((h|0)<0){o=0;m=6}else p=255;else{o=h;m=6}if((m|0)==6)p=o;o=i&248|j;j=d+o|0;if(j>>>0>255)if((j|0)<0){q=0;m=9}else r=255;else{q=j;m=9}if((m|0)==9)r=q;a[b>>0]=n;a[b+1>>0]=p;a[b+2>>0]=r;a[b+3>>0]=-1;r=b+4|0;p=c[509148+(e<<4)+4>>2]|0;n=p+f|0;if(n>>>0>255)if((n|0)<0){s=0;m=12}else t=255;else{s=n;m=12}if((m|0)==12)t=s;s=p+l|0;if(s>>>0>255)if((s|0)<0){u=0;m=15}else v=255;else{u=s;m=15}if((m|0)==15)v=u;u=p+o|0;if(u>>>0>255)if((u|0)<0){w=0;m=18}else x=255;else{w=u;m=18}if((m|0)==18)x=w;a[r>>0]=t;a[r+1>>0]=v;a[r+2>>0]=x;a[r+3>>0]=-1;r=b+8|0;x=c[509148+(e<<4)+8>>2]|0;v=x+f|0;if(v>>>0>255)if((v|0)<0){y=0;m=21}else z=255;else{y=v;m=21}if((m|0)==21)z=y;y=x+l|0;if(y>>>0>255)if((y|0)<0){A=0;m=24}else B=255;else{A=y;m=24}if((m|0)==24)B=A;A=x+o|0;if(A>>>0>255)if((A|0)<0){C=0;m=27}else D=255;else{C=A;m=27}if((m|0)==27)D=C;a[r>>0]=z;a[r+1>>0]=B;a[r+2>>0]=D;a[r+3>>0]=-1;r=b+12|0;b=c[509148+(e<<4)+12>>2]|0;e=b+f|0;if(e>>>0>255)if((e|0)<0){E=0;m=30}else F=255;else{E=e;m=30}if((m|0)==30)F=E;E=b+l|0;if(E>>>0>255)if((E|0)<0){G=0;m=33}else H=255;else{G=E;m=33}if((m|0)==33)H=G;G=b+o|0;if(G>>>0>255)if((G|0)<0)I=0;else{J=255;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}else I=G;J=I;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}function yb(b,d){b=b|0;d=d|0;var 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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(f-i>>4>>>0>=d>>>0){j=d;k=h;do{l=k;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));k=(c[g>>2]|0)+16|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=(i-j>>4)+d|0;if(k>>>0>268435455)Ob(b);i=j;j=f-i|0;if(j>>4>>>0<134217727){f=j>>3;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>4;if(!j){n=0;o=0;p=f}else{q=j;r=f;s=8}}else{q=268435455;r=(c[g>>2]|0)-i>>4;s=8}if((s|0)==8){n=q;o=Pb(q<<4)|0;p=r}r=o+(p<<4)|0;q=o+(n<<4)|0;n=d;d=r;s=r;while(1){l=d;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));d=s+16|0;r=d;n=n+-1|0;if(!n){t=r;break}else s=r}s=c[b>>2]|0;n=(c[g>>2]|0)-s|0;d=o+(p-(n>>4)<<4)|0;Hc(d|0,s|0,n|0)|0;c[b>>2]=d;c[g>>2]=t;c[e>>2]=q;if(!s)return;Qb(s);return}function zb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>3>>>0>=b>>>0){i=b;j=g;do{g=j;c[g>>2]=0;c[g+4>>2]=0;j=(c[f>>2]|0)+8|0;c[f>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;j=(h-i>>3)+b|0;if(j>>>0>536870911)Ob(a);h=i;i=e-h|0;if(i>>3>>>0<268435455){e=i>>2;i=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h>>3;if(!i){k=0;l=0;m=e}else{n=i;o=e;p=8}}else{n=536870911;o=(c[f>>2]|0)-h>>3;p=8}if((p|0)==8){k=n;l=Pb(n<<3)|0;m=o}o=l+(m<<3)|0;n=l+(k<<3)|0;k=b;b=o;p=o;while(1){o=b;c[o>>2]=0;c[o+4>>2]=0;b=p+8|0;o=b;k=k+-1|0;if(!k){q=o;break}else p=o}p=c[a>>2]|0;k=(c[f>>2]|0)-p|0;b=l+(m-(k>>3)<<3)|0;Hc(b|0,p|0,k|0)|0;c[a>>2]=b;c[f>>2]=q;c[d>>2]=n;if(!p)return;Qb(p);return}function Ab(b,d){b=b|0;d=d|0;var 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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(((f-i|0)/7|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;k=(c[g>>2]|0)+7|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=((i-j|0)/7|0)+d|0;if(k>>>0>613566756)Ob(b);i=j;j=(f-i|0)/7|0;if(j>>>0<306783378){f=j<<1;j=f>>>0<k>>>0?k:f;f=((c[g>>2]|0)-i|0)/7|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=613566756;p=((c[g>>2]|0)-i|0)/7|0;q=8}if((q|0)==8){l=o;m=Pb(o*7|0)|0;n=p}p=m+(n*7|0)|0;o=m+(l*7|0)|0;l=d;d=p;q=p;while(1){a[d>>0]=0;a[d+1>>0]=0;a[d+2>>0]=0;a[d+3>>0]=0;a[d+4>>0]=0;a[d+5>>0]=0;a[d+6>>0]=0;d=q+7|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+((((l|0)/-7|0)+n|0)*7|0)|0;Hc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Qb(q);return}function Bb(a,d){a=a|0;d=d|0;var 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;e=a+8|0;f=c[e>>2]|0;g=a+4|0;h=c[g>>2]|0;i=h;if(f-i>>2>>>0>=d>>>0){j=d;k=h;do{b[k>>1]=0;b[k+2>>1]=0>>>16;k=(c[g>>2]|0)+4|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[a>>2]|0;k=(i-j>>2)+d|0;if(k>>>0>1073741823)Ob(a);i=j;j=f-i|0;if(j>>2>>>0<536870911){f=j>>1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>2;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=1073741823;p=(c[g>>2]|0)-i>>2;q=8}if((q|0)==8){l=o;m=Pb(o<<2)|0;n=p}p=m+(n<<2)|0;o=m+(l<<2)|0;l=d;d=p;q=p;while(1){b[d>>1]=0;b[d+2>>1]=0>>>16;d=q+4|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[a>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-(l>>2)<<2)|0;Hc(d|0,q|0,l|0)|0;c[a>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Qb(q);return}function Cb(){var a=0,b=0;Ya();if(c[127351]|0)return;a=Pb(12)|0;b=c[127254]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Xa(a,b,492632);c[127351]=a;return}function Db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(!((a|0)!=0&(b|0)!=0)){d=0;return d|0}e=Pb(220)|0;f=e+4|0;db(f,c[127351]|0);c[e+212>>2]=a;c[e+216>>2]=b;if(eb(f,a,b)|0){c[e>>2]=-559038751;d=e;return d|0}else{Nb(e+12|0);Qb(e);d=0;return d|0}return 0}function Eb(a){a=a|0;if(!a)return;if((c[a>>2]|0)!=-559038751)return;Nb(a+12|0);Qb(a);return}function Fb(a){a=a|0;var b=0,e=0,f=0,g=0;b=i;i=i+48|0;e=b;if(!a){f=0;i=b;return f|0}if((c[a>>2]|0)!=-559038751){f=0;i=b;return f|0}g=ib(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,e,0,0)|0;f=g?d[e+40>>0]|0:0;i=b;return f|0}
function Gb(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751){b=0;return b|0}b=fb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0)|0;return b|0}function Hb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+48|0;e=d;if(!a){f=0;i=d;return f|0}if((c[a>>2]|0)!=-559038751){f=0;i=d;return f|0}g=gb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,e,b)|0;f=g?c[e+4>>2]|0:0;i=d;return f|0}function Ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=hb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,b,d,f,e+4|0,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else{i=e;return 0}return 0}function Jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=hb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,b,d,e+8|0,f,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else{i=e;return 0}return 0}function Kb(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;f=i;i=i+16|0;g=f;if(!a){h=0;i=f;return h|0}if(e>>>0>7|(c[a>>2]|0)!=-559038751){h=0;i=f;return h|0}j=mb(e)|0;if(!(hb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,b,d,f+8|0,f+4|0,g)|0)){h=0;i=f;return h|0}h=Z(c[g>>2]|0,j)|0;i=f;return h|0}function Lb(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751){b=0;return b|0}b=(jb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0)|0)&1;return b|0}function Mb(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;if(!a){j=0;return j|0}if(g>>>0>7|(c[a>>2]|0)!=-559038751){j=0;return j|0}k=mb(g)|0;j=(lb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,e,f,b,(d>>>0)/(k>>>0)|0,g,((i|0)!=0?4:0)|(h|0)!=0)|0)&1;return j|0}function Nb(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+188>>2]|0;d=b;if(b){e=a+192|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+176>>2]|0;d=b;if(b){f=a+180|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+160>>2]|0;d=b;if(b){e=a+164|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Qb(b)}b=c[a+148>>2]|0;d=b;if(b){f=a+152|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+136>>2]|0;if(b){d=a+140|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Qb(b)}b=c[a+124>>2]|0;d=b;if(b){e=a+128|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Qb(b)}b=c[a+112>>2]|0;d=b;if(b){f=a+116|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+100>>2]|0;if(b){d=a+104|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Qb(b)}b=c[a+88>>2]|0;d=b;if(b){e=a+92|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Qb(b)}b=c[a+76>>2]|0;d=b;if(b){f=a+80|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+64>>2]|0;if(b){d=a+68|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Qb(b)}b=c[a+52>>2]|0;d=b;if(b){e=a+56|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Qb(b)}b=c[a+40>>2]|0;d=b;if(b){f=a+44|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Qb(b)}b=c[a+28>>2]|0;if(b){d=a+32|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Qb(b)}b=c[a+12>>2]|0;if(b){d=a+16|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~(((0-b+(e+-7)|0)>>>0)/7|0)*7|0);Qb(b)}b=c[a>>2]|0;if(!b)return;e=a+4|0;a=c[e>>2]|0;if((a|0)!=(b|0))c[e>>2]=a+(~((a+-8-b|0)>>>3)<<3);Qb(b);return}function Ob(a){a=a|0;ma(645767,645790,303,645865)}function Pb(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=vc(b)|0;a:do if(!a){while(1){d=Ub()|0;if(!d)break;La[d&0]();d=vc(b)|0;if(d){e=d;break a}}d=na(4)|0;c[d>>2]=509416;za(d|0,8,1)}else e=a;while(0);return e|0}function Qb(a){a=a|0;wc(a);return}function Rb(a){a=a|0;return}function Sb(a){a=a|0;Qb(a);return}function Tb(a){a=a|0;return 645886}function Ub(){var a=0;a=c[127357]|0;c[127357]=a+0;return a|0}function Vb(a){a=a|0;return}function Wb(a){a=a|0;return}function Xb(a){a=a|0;return}function Yb(a){a=a|0;return}function Zb(a){a=a|0;return}function _b(a){a=a|0;Qb(a);return}function $b(a){a=a|0;Qb(a);return}function ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+64|0;f=e;if((a|0)!=(b|0))if((b|0)!=0?(g=ec(b,40,56,0)|0,(g|0)!=0):0){b=f;h=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Na[c[(c[g>>2]|0)+28>>2]&3](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];j=1}else j=0;k=j}else k=0;else k=1;i=e;return k|0}function bc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))bc(0,b,d,e);return}function dc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))bc(0,b,d,e);else{f=c[a+8>>2]|0;Na[c[(c[f>>2]|0)+28>>2]&3](f,b,d,e)}return}function ec(d,e,f,g){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;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;Ma[c[(c[f>>2]|0)+20>>2]&3](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{Ia[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function fc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function gc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;Ia[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Ma[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m)break}else n=16;if((n|0)==16?m:0)break;c[i>>2]=4;break a}while(0);c[i>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function hc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(g=d+28|0,(c[g>>2]|0)!=1):0)c[g>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(g=d+20|0,(c[g>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[g>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function ic(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((a|0)==(c[b+8>>2]|0))fc(0,b,d,e,f);else{h=c[a+8>>2]|0;Ma[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function jc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))fc(0,b,d,e,f);return}function kc(){var a=0;if(!(c[127378]|0))a=509560;else a=c[(va()|0)+60>>2]|0;return a|0}function lc(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(kc()|0)>>2]=0-a;b=-1}else b=a;return b|0}function mc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=tc(a)|0;break}d=(nc(a)|0)==0;e=tc(a)|0;if(d)b=e;else{oc(a);b=e}}else{if(!(c[127389]|0))f=0;else f=mc(c[127389]|0)|0;Aa(509540);e=c[127384]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=nc(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=tc(d)|0|e;else i=e;if(h)oc(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}xa(509540);b=g}while(0);return b|0}function nc(a){a=a|0;return 0}function oc(a){a=a|0;return}function pc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=lc(ka(6,d|0)|0)|0;i=b;return a|0}function qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((lc(Ea(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var 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;e=i;i=i+48|0;f=e+16|0;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[127378]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=lc(Fa(146,f|0)|0)|0}else{Ca(8,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=lc(Fa(146,g|0)|0)|0;ja(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>>0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function sc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(wa(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=rc(b,d,e)|0;i=f;return g|0}function tc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Ha[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)Ha[c[a+40>>2]&7](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function uc(a){a=a|0;if(!(c[a+68>>2]|0))oc(a);return}function vc(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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[127419]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=509716+(h<<2)|0;j=509716+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[127423]|0)>>>0)Ba();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else Ba()}else c[127419]=e&~(1<<g);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}j=c[127421]|0;if(b>>>0>j>>>0){if(f){l=2<<d;i=f<<d&(l|0-l);l=(i&0-i)+-1|0;i=l>>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=509716+(p<<2)|0;o=509716+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[127423]|0)>>>0)Ba();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[127421]|0;break}else Ba()}else{c[127419]=e&~(1<<r);s=j}while(0);j=r<<3;e=j-b|0;c[p+4>>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[127424]|0;o=s>>>3;q=o<<1;d=509716+(q<<2)|0;f=c[127419]|0;k=1<<o;if(f&k){o=509716+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[127423]|0)>>>0)Ba();else{t=o;u=h}}else{c[127419]=f|k;t=509716+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[127421]=e;c[127424]=i;n=m;return n|0}i=c[127420]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[509980+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0<q>>>0;q=d?f:q;k=x;j=d?x:j}j=c[127423]|0;if(w>>>0<j>>>0)Ba();k=w+b|0;if(w>>>0>=k>>>0)Ba();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0<j>>>0)Ba();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0<j>>>0)Ba();r=p+12|0;if((c[r>>2]|0)!=(w|0))Ba();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else Ba()}while(0);do if(q){m=c[w+28>>2]|0;j=509980+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[127420]=c[127420]&~(1<<m);break}}else{if(q>>>0<(c[127423]|0)>>>0)Ba();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[127423]|0;if(y>>>0<m>>>0)Ba();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0<m>>>0)Ba();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[127423]|0)>>>0)Ba();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[127421]|0;if(j){q=c[127424]|0;m=j>>>3;j=m<<1;p=509716+(j<<2)|0;d=c[127419]|0;r=1<<m;if(d&r){m=509716+(j+2<<2)|0;f=c[m>>2]|0;if(f>>>0<(c[127423]|0)>>>0)Ba();else{D=m;E=f}}else{c[127419]=d|r;D=509716+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[127421]=v;c[127424]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[127420]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<<p;d=(f+520192|0)>>>16&4;m=f<<d;f=(m+245760|0)>>>16&2;i=14-(d|p|f)+(m<<f>>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[509980+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0<f>>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<<G;r=j&(i|0-i);if(!r){F=q;break}i=(r&0-r)+-1|0;r=i>>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[509980+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0<L>>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[127421]|0)-q|0)>>>0:0){j=c[127423]|0;if(T>>>0<j>>>0)Ba();e=T+q|0;if(T>>>0>=e>>>0)Ba();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0<j>>>0)Ba();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0<j>>>0)Ba();r=b+12|0;if((c[r>>2]|0)!=(T|0))Ba();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else Ba()}while(0);do if(k){p=c[T+28>>2]|0;j=509980+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[127420]=c[127420]&~(1<<p);break}}else{if(k>>>0<(c[127423]|0)>>>0)Ba();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[127423]|0;if(U>>>0<p>>>0)Ba();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0<p>>>0)Ba();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[127423]|0)>>>0)Ba();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=509716+(j<<2)|0;b=c[127419]|0;i=1<<k;if(b&i){k=509716+(j+2<<2)|0;r=c[k>>2]|0;if(r>>>0<(c[127423]|0)>>>0)Ba();else{Z=k;_=r}}else{c[127419]=b|i;Z=509716+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<<j;p=(i+520192|0)>>>16&4;b=i<<p;i=(b+245760|0)>>>16&2;r=14-(p|j|i)+(b<<i>>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=509980+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[127420]|0;b=1<<$;if(!(i&b)){c[127420]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[127423]|0)>>>0)Ba();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[127423]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else Ba()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[127421]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[127424]|0;if(S>>>0>15){c[127424]=ca+F;c[127421]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[127421]=0;c[127424]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[127422]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[127422]=S;ca=c[127425]|0;c[127425]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[127537]|0)){ca=ua(30)|0;if(!(ca+-1&ca)){c[127539]=ca;c[127538]=ca;c[127540]=-1;c[127541]=-1;c[127542]=0;c[127530]=0;c[127537]=(Da(0)|0)&-16^1431655768;break}else Ba()}while(0);ca=F+48|0;S=c[127539]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[127529]|0;if(($|0)!=0?(_=c[127527]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[127530]&4)){$=c[127425]|0;e:do if($){Z=510124;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[127422]|0)&aa;if(Z>>>0<2147483647){U=qa(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=qa(0)|0;if(($|0)!=(-1|0)){q=$;X=c[127538]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[127527]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[127529]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=qa(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[127539]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((qa($|0)|0)==(-1|0)){qa(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0);c[127530]=c[127530]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=qa(S|0)|0,S=qa(0)|0,fa>>>0<S>>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[127527]|0)+ha|0;c[127527]=na;if(na>>>0>(c[127528]|0)>>>0)c[127528]=na;na=c[127425]|0;g:do if(na){ma=510124;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;ra=ia;sa=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[sa+12>>2]&8|0)==0:0)?na>>>0<ga>>>0&na>>>0>=oa>>>0:0){c[pa>>2]=ra+ha;ma=(c[127422]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[127425]=na+fa;c[127422]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[127426]=c[127541];break}ma=c[127423]|0;if(ga>>>0<ma>>>0){c[127423]=ga;ta=ga}else ta=ma;ma=ga+ha|0;ia=510124;while(1){if((c[ia>>2]|0)==(ma|0)){va=ia;wa=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){xa=510124;break}}if((K|0)==212)if(!(c[wa+12>>2]&8)){c[va>>2]=ga;ia=wa+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[127424]|0)){T=(c[127421]|0)+ja|0;c[127421]=T;c[127424]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){ya=0;break}else{za=ba;Aa=Z}}else{za=$;Aa=X}while(1){X=za+20|0;$=c[X>>2]|0;if($){za=$;Aa=X;continue}X=za+16|0;$=c[X>>2]|0;if(!$){Ca=za;Ea=Aa;break}else{za=$;Aa=X}}if(Ea>>>0<ta>>>0)Ba();else{c[Ea>>2]=0;ya=Ca;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0<ta>>>0)Ba();$=X+12|0;if((c[$>>2]|0)!=(ia|0))Ba();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;ya=aa;break}else Ba()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=509980+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[127423]|0)>>>0)Ba();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=ya;else c[da+20>>2]=ya;if(!ya)break i}else{c[X>>2]=ya;if(ya)break;c[127420]=c[127420]&~(1<<aa);break i}while(0);aa=c[127423]|0;if(ya>>>0<aa>>>0)Ba();c[ya+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0<aa>>>0)Ba();else{c[ya+16>>2]=Z;c[Z+24>>2]=ya;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[127423]|0)>>>0)Ba();else{c[ya+20>>2]=Z;c[Z+24>>2]=ya;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=509716+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0<ta>>>0)Ba();if((c[Z+12>>2]|0)==(ia|0))break;Ba()}while(0);if((aa|0)==(Z|0)){c[127419]=c[127419]&~(1<<ea);break}do if((aa|0)==(da|0))Fa=aa+8|0;else{if(aa>>>0<ta>>>0)Ba();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Fa=X;break}Ba()}while(0);c[Z+12>>2]=aa;c[Fa>>2]=Z}while(0);Ga=ga+((la|fa)+ha)|0;Ha=la+ja|0}else{Ga=ia;Ha=ja}ea=Ga+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ha|1;c[ga+(Ha+S)>>2]=Ha;ea=Ha>>>3;if(Ha>>>0<256){T=ea<<1;ca=509716+(T<<2)|0;da=c[127419]|0;X=1<<ea;do if(!(da&X)){c[127419]=da|X;Ia=509716+(T+2<<2)|0;Ja=ca}else{ea=509716+(T+2<<2)|0;$=c[ea>>2]|0;if($>>>0>=(c[127423]|0)>>>0){Ia=ea;Ja=$;break}Ba()}while(0);c[Ia>>2]=ka;c[Ja+12>>2]=ka;c[ga+(S+8)>>2]=Ja;c[ga+(S+12)>>2]=ca;break}T=Ha>>>8;do if(!T)Ka=0;else{if(Ha>>>0>16777215){Ka=31;break}X=(T+1048320|0)>>>16&8;da=T<<X;la=(da+520192|0)>>>16&4;$=da<<la;da=($+245760|0)>>>16&2;ea=14-(la|X|da)+($<<da>>>15)|0;Ka=Ha>>>(ea+7|0)&1|ea<<1}while(0);T=509980+(Ka<<2)|0;c[ga+(S+28)>>2]=Ka;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[127420]|0;ea=1<<Ka;if(!(ca&ea)){c[127420]=ca|ea;c[T>>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ha|0)){T=Ha<<((Ka|0)==31?0:25-(Ka>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){La=da;Ma=ca;break}if((c[$+4>>2]&-8|0)==(Ha|0)){Na=$;break j}else{T=T<<1;ca=$}}if(La>>>0<(c[127423]|0)>>>0)Ba();else{c[La>>2]=ka;c[ga+(S+24)>>2]=Ma;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Na=ea;while(0);ea=Na+8|0;ca=c[ea>>2]|0;T=c[127423]|0;if(ca>>>0>=T>>>0&Na>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Na;c[ga+(S+24)>>2]=0;break}else Ba()}else{ca=(c[127422]|0)+ja|0;c[127422]=ca;c[127425]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else xa=510124;while(1){S=c[xa>>2]|0;if(S>>>0<=na>>>0?(ka=c[xa+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Oa=S;Pa=ka;Qa=ja;break}xa=c[xa+8>>2]|0}ma=Oa+(Pa+-39)|0;ja=Oa+(Pa+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0<ma>>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[127425]=ga+ia;c[127422]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[127426]=c[127541];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[127531];c[ja+4>>2]=c[127532];c[ja+8>>2]=c[127533];c[ja+12>>2]=c[127534];c[127531]=ga;c[127532]=ha;c[127534]=0;c[127533]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0<Qa>>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0<Qa>>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=509716+(fa<<2)|0;ea=c[127419]|0;T=1<<ja;if(ea&T){ja=509716+(fa+2<<2)|0;Z=c[ja>>2]|0;if(Z>>>0<(c[127423]|0)>>>0)Ba();else{Ra=ja;Sa=Z}}else{c[127419]=ea|T;Ra=509716+(fa+2<<2)|0;Sa=ca}c[Ra>>2]=na;c[Sa+12>>2]=na;c[na+8>>2]=Sa;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ta=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<<fa;ca=(T+520192|0)>>>16&4;ea=T<<ca;T=(ea+245760|0)>>>16&2;Z=14-(ca|fa|T)+(ea<<T>>>15)|0;Ta=ia>>>(Z+7|0)&1|Z<<1}else Ta=0;Z=509980+(Ta<<2)|0;c[na+28>>2]=Ta;c[na+20>>2]=0;c[ma>>2]=0;T=c[127420]|0;ea=1<<Ta;if(!(T&ea)){c[127420]=T|ea;c[Z>>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ta|0)==31?0:25-(Ta>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Ua=fa;Va=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Wa=ca;break k}else{Z=Z<<1;T=ca}}if(Ua>>>0<(c[127423]|0)>>>0)Ba();else{c[Ua>>2]=na;c[na+24>>2]=Va;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Wa=ea;while(0);ea=Wa+8|0;ia=c[ea>>2]|0;ma=c[127423]|0;if(ia>>>0>=ma>>>0&Wa>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Wa;c[na+24>>2]=0;break}else Ba()}}else{ia=c[127423]|0;if((ia|0)==0|ga>>>0<ia>>>0)c[127423]=ga;c[127531]=ga;c[127532]=ha;c[127534]=0;c[127428]=c[127537];c[127427]=-1;ia=0;do{ea=ia<<1;ma=509716+(ea<<2)|0;c[509716+(ea+3<<2)>>2]=ma;c[509716+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[127425]=ga+ma;c[127422]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[127426]=c[127541]}while(0);ha=c[127422]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[127422]=ga;ha=c[127425]|0;c[127425]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(kc()|0)>>2]=12;n=0;return n|0}function wc(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;if(!a)return;b=a+-8|0;d=c[127423]|0;if(b>>>0<d>>>0)Ba();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)Ba();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0<d>>>0)Ba();if((k|0)==(c[127424]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[127421]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=509716+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0<d>>>0)Ba();if((c[i+12>>2]|0)!=(k|0))Ba()}if((m|0)==(i|0)){c[127419]=c[127419]&~(1<<n);o=k;p=l;break}if((m|0)!=(q|0)){if(m>>>0<d>>>0)Ba();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else Ba()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0<d>>>0)Ba();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0<d>>>0)Ba();n=q+12|0;if((c[n>>2]|0)!=(k|0))Ba();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else Ba()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=509980+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[127420]=c[127420]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[127423]|0)>>>0)Ba();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[127423]|0;if(u>>>0<m>>>0)Ba();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0<m>>>0)Ba();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[127423]|0)>>>0)Ba();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)Ba();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))Ba();if(!(u&2)){if((h|0)==(c[127425]|0)){d=(c[127422]|0)+p|0;c[127422]=d;c[127425]=o;c[o+4>>2]=d|1;if((o|0)!=(c[127424]|0))return;c[127424]=0;c[127421]=0;return}if((h|0)==(c[127424]|0)){d=(c[127421]|0)+p|0;c[127421]=d;c[127424]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[127423]|0)>>>0)Ba();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[127423]|0)>>>0)Ba();r=v+12|0;if((c[r>>2]|0)!=(h|0))Ba();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else Ba()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=509980+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[127420]=c[127420]&~(1<<w);break}}else{if(y>>>0<(c[127423]|0)>>>0)Ba();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[127423]|0;if(z>>>0<w>>>0)Ba();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0<w>>>0)Ba();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[127423]|0)>>>0)Ba();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=509716+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[127423]|0)>>>0)Ba();if((c[l+12>>2]|0)!=(h|0))Ba()}if((w|0)==(l|0)){c[127419]=c[127419]&~(1<<x);break}if((w|0)!=(y|0)){if(w>>>0<(c[127423]|0)>>>0)Ba();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else Ba()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[127424]|0)){c[127421]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=509716+(u<<2)|0;d=c[127419]|0;E=1<<p;if(d&E){p=509716+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[127423]|0)>>>0)Ba();else{G=p;H=h}}else{c[127419]=d|E;G=509716+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<<H;b=(G+520192|0)>>>16&4;u=G<<b;G=(u+245760|0)>>>16&2;E=14-(b|H|G)+(u<<G>>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=509980+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[127420]|0;u=1<<I;a:do if(G&u){H=c[E>>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[127423]|0)>>>0)Ba();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[127423]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else Ba()}else{c[127420]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[127427]|0)+-1|0;c[127427]=o;if(!o)M=510132;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[127427]=-1;return}function xc(b,c,d){b=b|0;c=c|0;d=d|0;var 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,ba=0,ca=0,da=0,ea=0;e=b;b=c;a:while(1){c=b;f=b+-1|0;g=e;b:while(1){h=g;i=c-h|0;switch(i|0){case 1:case 0:{break a;break}case 2:{j=g;k=f;l=4;break a;break}case 3:{m=g;n=f;l=6;break a;break}case 4:{o=g;p=f;l=7;break a;break}case 5:{q=g;r=f;l=8;break a;break}default:{}}if((i|0)<31){s=g;t=b;l=10;break a}u=(i|0)/2|0;v=g+u|0;if((i|0)>999){w=(i|0)/4|0;x=Bc(g,g+w|0,v,g+(w+u)|0,f,d)|0}else x=zc(g,v,f,d)|0;u=a[g>>0]|0;w=a[v>>0]|0;do if((u&255)<(w&255)){y=f;z=x}else{i=f;while(1){A=i+-1|0;if((g|0)==(A|0))break;B=a[A>>0]|0;if((B&255)<(w&255)){C=B;D=A;l=29;break}else i=A}if((l|0)==29){l=0;a[g>>0]=C;a[D>>0]=u;y=D;z=x+1|0;break}i=g+1|0;A=a[f>>0]|0;if((u&255)<(A&255))E=i;else{if((i|0)==(f|0))break a;else{F=g;G=i}while(1){i=a[G>>0]|0;if((u&255)<(i&255)){H=F;I=i;J=G;break}i=G+1|0;if((i|0)==(f|0))break a;else{B=G;G=i;F=B}}a[J>>0]=A;a[f>>0]=I;E=H+2|0}if((E|0)==(f|0))break a;else{K=E;L=f}while(1){B=a[g>>0]|0;i=K;while(1){M=a[i>>0]|0;N=i+1|0;if((B&255)<(M&255)){O=M;P=N;Q=i;break}else i=N}i=L;while(1){N=i+-1|0;M=a[N>>0]|0;if((B&255)<(M&255))i=N;else{R=N;S=M;break}}if(Q>>>0>=R>>>0){g=Q;continue b}a[Q>>0]=S;a[R>>0]=O;K=P;L=R}}while(0);u=g+1|0;c:do if(u>>>0<y>>>0){w=u;A=y;i=v;B=z;while(1){M=a[i>>0]|0;N=w;while(1){T=a[N>>0]|0;U=N+1|0;if((T&255)<(M&255))N=U;else{V=T;W=U;X=N;break}}N=A;while(1){U=N+-1|0;T=a[U>>0]|0;if((T&255)<(M&255)){Y=U;Z=T;break}else N=U}if(X>>>0>Y>>>0){_=X;$=i;aa=B;break c}a[X>>0]=Z;a[Y>>0]=V;w=W;A=Y;i=(i|0)==(X|0)?Y:i;B=B+1|0}}else{_=u;$=v;aa=z}while(0);if((_|0)!=($|0)?(v=a[$>>0]|0,u=a[_>>0]|0,(v&255)<(u&255)):0){a[_>>0]=v;a[$>>0]=u;ba=aa+1|0}else ba=aa;if(!ba){ca=yc(g,_,d)|0;u=_+1|0;if(yc(u,b,d)|0){l=42;break}if(ca){g=u;continue}}u=_;if((u-h|0)>=(c-u|0)){da=g;ea=_;l=46;break}xc(g,_,d);g=_+1|0}if((l|0)==42){l=0;if(ca)break;else{e=g;b=_;continue}}else if((l|0)==46){l=0;xc(ea+1|0,b,d);e=da;b=ea;continue}}if((l|0)==4){ea=a[k>>0]|0;b=a[j>>0]|0;if((ea&255)<(b&255)){a[j>>0]=ea;a[k>>0]=b}}else if((l|0)==6)zc(m,m+1|0,n,d)|0;else if((l|0)==7)Ac(o,o+1|0,o+2|0,p,d)|0;else if((l|0)==8)Bc(q,q+1|0,q+2|0,q+3|0,r,d)|0;else if((l|0)==10)Cc(s,t,d);return}function yc(b,c,d){b=b|0;c=c|0;d=d|0;var 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;a:do switch(c-b|0){case 1:case 0:{e=1;break}case 2:{f=c+-1|0;g=a[f>>0]|0;h=a[b>>0]|0;if((g&255)<(h&255)){a[b>>0]=g;a[f>>0]=h;e=1}else e=1;break}case 3:{zc(b,b+1|0,c+-1|0,d)|0;e=1;break}case 4:{Ac(b,b+1|0,b+2|0,c+-1|0,d)|0;e=1;break}case 5:{Bc(b,b+1|0,b+2|0,b+3|0,c+-1|0,d)|0;e=1;break}default:{h=b+2|0;zc(b,b+1|0,h,d)|0;f=b+3|0;if((f|0)==(c|0))e=1;else{g=0;i=f;f=h;while(1){h=a[i>>0]|0;j=a[f>>0]|0;if((h&255)<(j&255)){k=j;j=i;l=f;while(1){a[j>>0]=k;if((l|0)==(b|0)){m=b;break}n=l+-1|0;k=a[n>>0]|0;if((h&255)>=(k&255)){m=l;break}else{o=l;l=n;j=o}}a[m>>0]=h;j=g+1|0;if((j|0)==8){p=i;break}else q=j}else q=g;j=i+1|0;if((j|0)==(c|0)){e=1;break a}else{l=i;g=q;i=j;f=l}}e=(p+1|0)==(c|0)}}}while(0);return e|0}function zc(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;e=a[c>>0]|0;f=a[b>>0]|0;g=a[d>>0]|0;h=(g&255)<(e&255);do if((e&255)<(f&255)){if(h){a[b>>0]=g;a[d>>0]=f;i=1;break}a[b>>0]=e;a[c>>0]=f;j=a[d>>0]|0;if((j&255)<(f&255)){a[c>>0]=j;a[d>>0]=f;i=2}else i=1}else if(h){a[c>>0]=g;a[d>>0]=e;j=a[c>>0]|0;k=a[b>>0]|0;if((j&255)<(k&255)){a[b>>0]=j;a[c>>0]=k;i=2}else i=1}else i=0;while(0);return i|0}function Ac(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=zc(b,c,d,f)|0;f=a[e>>0]|0;h=a[d>>0]|0;if((f&255)<(h&255)){a[d>>0]=f;a[e>>0]=h;h=g+1|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;i=g+3|0}else i=g+2|0}else i=h}else i=g;return i|0}function Bc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ac(b,c,d,e,g)|0;g=a[f>>0]|0;i=a[e>>0]|0;if((g&255)<(i&255)){a[e>>0]=g;a[f>>0]=i;i=h+1|0;f=a[e>>0]|0;g=a[d>>0]|0;if((f&255)<(g&255)){a[d>>0]=f;a[e>>0]=g;g=h+2|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;j=h+4|0}else j=h+3|0}else j=g}else j=i}else j=h;return j|0}function Cc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=b+2|0;zc(b,b+1|0,e,d)|0;d=b+3|0;if((d|0)!=(c|0)){f=d;d=e;while(1){e=a[f>>0]|0;g=a[d>>0]|0;if((e&255)<(g&255)){h=g;g=f;i=d;while(1){a[g>>0]=h;if((i|0)==(b|0)){j=b;break}k=i+-1|0;h=a[k>>0]|0;if((e&255)>=(h&255)){j=i;break}else{l=i;i=k;g=l}}a[j>>0]=e}g=f+1|0;if((g|0)==(c|0))break;else{i=f;f=g;d=i}}}return}function Dc(){}function Ec(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Fc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}B=0;return b>>>c-32|0}function Gc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}B=a<<c-32;return 0}function Hc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ra(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|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>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ha[a&7](b|0,c|0,d|0)|0}function Jc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ia[a&3](b|0,c|0,d|0,e|0,f|0)}function Kc(a,b){a=a|0;b=b|0;Ja[a&15](b|0)}function Lc(a,b){a=a|0;b=b|0;return Ka[a&3](b|0)|0}function Mc(a){a=a|0;La[a&0]()}function Nc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ma[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Oc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Na[a&3](b|0,c|0,d|0,e|0)}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Qc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function Rc(a){a=a|0;aa(2)}function Sc(a){a=a|0;aa(3);return 0}function Tc(){aa(4)}function Uc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(5)}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(6)}

// EMSCRIPTEN_END_FUNCS
var Ha=[Pc,ac,sc,qc,rc,Pc,Pc,Pc];var Ia=[Qc,hc,gc,Qc];var Ja=[Rc,Rb,Sb,Xb,_b,Yb,Zb,$b,uc,Rc,Rc,Rc,Rc,Rc,Rc,Rc];var Ka=[Sc,Tb,pc,Sc];var La=[Tc];var Ma=[Uc,jc,ic,Uc];var Na=[Vc,cc,dc,Vc];return{_basis_open:Db,_basis_get_num_levels:Hb,_basis_transcode_image:Mb,_fflush:mc,_memset:Ec,_basis_init:Cb,_basis_start_transcoding:Lb,_basis_get_num_images:Gb,_basis_get_has_alpha:Fb,_basis_get_image_width:Ib,_malloc:vc,_basis_close:Eb,_memcpy:Hc,_basis_get_image_height:Jb,_bitshift64Lshr:Fc,_free:wc,_bitshift64Shl:Gc,___errno_location:kc,_basis_get_image_transcoded_size_in_bytes:Kb,runPostSets:Dc,stackAlloc:Oa,stackSave:Pa,stackRestore:Qa,establishStackSpace:Ra,setThrew:Sa,setTempRet0:Va,getTempRet0:Wa,dynCall_iiii:Ic,dynCall_viiiii:Jc,dynCall_vi:Kc,dynCall_ii:Lc,dynCall_v:Mc,dynCall_viiiiii:Nc,dynCall_viiii:Oc}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _basis_open=Module["_basis_open"]=asm["_basis_open"];var _basis_get_num_levels=Module["_basis_get_num_levels"]=asm["_basis_get_num_levels"];var _basis_start_transcoding=Module["_basis_start_transcoding"]=asm["_basis_start_transcoding"];var _fflush=Module["_fflush"]=asm["_fflush"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _basis_init=Module["_basis_init"]=asm["_basis_init"];var _basis_transcode_image=Module["_basis_transcode_image"]=asm["_basis_transcode_image"];var _memset=Module["_memset"]=asm["_memset"];var _basis_get_has_alpha=Module["_basis_get_has_alpha"]=asm["_basis_get_has_alpha"];var _basis_get_num_images=Module["_basis_get_num_images"]=asm["_basis_get_num_images"];var _malloc=Module["_malloc"]=asm["_malloc"];var _basis_close=Module["_basis_close"]=asm["_basis_close"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _basis_get_image_height=Module["_basis_get_image_height"]=asm["_basis_get_image_height"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _basis_get_image_width=Module["_basis_get_image_width"]=asm["_basis_get_image_width"];var _basis_get_image_transcoded_size_in_bytes=Module["_basis_get_image_transcoded_size_in_bytes"]=asm["_basis_get_image_transcoded_size_in_bytes"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);removeRunDependency("memory initializer")});function doBrowserLoad(){Browser.asyncLoad(memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var request=Module["memoryInitializerRequest"];if(request){function useRequest(){if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(request.response){setTimeout(useRequest,0)}else{request.addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()




