HDIM  1.0.0
Packages for High Dimensional Linear Regression
fos.js
1 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=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};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 shell_read(){throw"no read() available"}}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}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(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)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(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"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}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]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return 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){return Module["dynCall_"+sig].apply(null,[ptr].concat(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]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(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=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=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 ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}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){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}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*[a-zA-Z$_0-9]*\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=null;function ensureJSsource(){if(!JSsource){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){ensureJSsource();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){ensureJSsource();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=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,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(!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;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{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;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(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)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(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(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;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 allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) 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"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";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){Module["dynCall_v"](func)}else{Module["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){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}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;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"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];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_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+9808;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_fos_js_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});memoryInitializer="fos.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Subtract"]=_i64Subtract;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 embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push((function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}}))}}));if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach((function(cb){cb()}))}}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":(function(){return undefined}),"toWireType":(function(destructors,o){return undefined})})}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&&!info.rethrown){if(info.destructor){Module["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}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(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.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(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};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 getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}function getTAElement(ta,index){return ta[index]}function getStringElement(string,index){return string.charCodeAt(index)}var getElement;if(value instanceof Uint8Array){getElement=getTAElement}else if(value instanceof Uint8ClampedArray){getElement=getTAElement}else if(value instanceof Int8Array){getElement=getTAElement}else if(typeof value==="string"){getElement=getStringElement}else{throwBindingError("Cannot pass non-string to std::string")}var length=value.length;var ptr=_malloc(4+length);HEAPU32[ptr>>2]=length;for(var i=0;i<length;++i){var charCode=getElement(value,i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<<bitshift>>>bitshift})}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}});clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function runDestructor(handle){var $$=handle.$$;if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}this.$$.count.value-=1;var toDelete=0===this.$$.count.value;if(toDelete){runDestructor(this)}if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=(function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)});proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){var ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register((function(){clonedHandle["delete"]()})));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return Object.create(prototype,{$$:{value:record}})}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i)}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return(new Function("dynCall","rawFunction",body))(dynCall,rawFunction)}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction]}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction]}else{var dc=Module["asm"]["dynCall_"+signature];if(dc===undefined){dc=Module["asm"]["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature)}}fp=makeDynCaller(dc)}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=requireFunction(upcastSignature,upcast)}if(downcast){downcast=requireFunction(downcastSignature,downcast)}rawDestructor=requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,(function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])}));whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],(function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,(function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)}));var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]}))}function ___lock(){}function ___unlock(){}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}Module["_i64Add"]=_i64Add;var PTHREAD_SPECIFIC_NEXT_KEY=1;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 _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1};case null:{return 2};case true:{return 3};case false:{return 4};default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv}),"toWireType":(function(destructors,value){return __emval_register(value)}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___cxa_allocate_exception(size){return _malloc(size)}var SYSCALLS={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}),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 ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Lshr"]=_bitshift64Lshr;function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}var destructors=[];var args=new Array(argCount);args[0]=rawConstructor;for(var i=1;i<argCount;++i){args[i]=argTypes[i]["toWireType"](destructors,arguments[i-1])}var ptr=invoker.apply(null,args);runDestructors(destructors);return argTypes[0]["fromWireType"](ptr)};return[]}));return[]}))}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return(function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;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}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;var _llvm_pow_f64=Math_pow;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_memmove"]=_memmove;function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i)}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function ___gxx_personality_v0(){}Module["___uremdi3"]=___uremdi3;Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}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;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 __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){___syscall146.printChar(stream,HEAPU8[ptr+j])}ret+=len}return ret}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired"}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n"}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],(function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,(function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]}));return[]}))}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();__ATEXIT__.push((function(){var fflush=Module["_fflush"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}));DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;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;Module["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;Module["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;Module["setThrew"](1,0)}}function invoke_dii(index,a1,a2){try{return Module["dynCall_dii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_di(index,a1){try{return Module["dynCall_di"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiidi"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["setThrew"](1,0)}}function invoke_viiid(index,a1,a2,a3,a4){try{Module["dynCall_viiid"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiid(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiidd(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiidd"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiid(index,a1,a2,a3,a4){try{return Module["dynCall_iiiid"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["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,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiii":invoke_viiiii,"invoke_dii":invoke_dii,"invoke_di":invoke_di,"invoke_i":invoke_i,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viiiiidi":invoke_viiiiidi,"invoke_ii":invoke_ii,"invoke_viiid":invoke_viiid,"invoke_viii":invoke_viii,"invoke_viiiiid":invoke_viiiiid,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_iiiii":invoke_iiiii,"invoke_viiiiidd":invoke_viiiiidd,"invoke_iii":invoke_iii,"invoke_iiiid":invoke_iiiid,"invoke_viiii":invoke_viiii,"floatReadValueFromPointer":floatReadValueFromPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"throwInternalError":throwInternalError,"get_first_emval":get_first_emval,"getLiveInheritedInstances":getLiveInheritedInstances,"___assert_fail":___assert_fail,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"ClassHandle":ClassHandle,"getShiftFromSize":getShiftFromSize,"___cxa_begin_catch":___cxa_begin_catch,"_emscripten_memcpy_big":_emscripten_memcpy_big,"runDestructor":runDestructor,"throwInstanceAlreadyDeleted":throwInstanceAlreadyDeleted,"__embind_register_std_string":__embind_register_std_string,"init_RegisteredPointer":init_RegisteredPointer,"ClassHandle_isAliasOf":ClassHandle_isAliasOf,"flushPendingDeletes":flushPendingDeletes,"makeClassHandle":makeClassHandle,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"__embind_register_class_constructor":__embind_register_class_constructor,"init_ClassHandle":init_ClassHandle,"___syscall140":___syscall140,"ClassHandle_clone":ClassHandle_clone,"___syscall146":___syscall146,"RegisteredClass":RegisteredClass,"___cxa_find_matching_catch":___cxa_find_matching_catch,"embind_init_charCodes":embind_init_charCodes,"___setErrNo":___setErrNo,"__embind_register_bool":__embind_register_bool,"___resumeException":___resumeException,"createNamedFunction":createNamedFunction,"__embind_register_emval":__embind_register_emval,"__emval_decref":__emval_decref,"_pthread_once":_pthread_once,"__embind_register_class":__embind_register_class,"constNoSmartPtrRawPointerToWireType":constNoSmartPtrRawPointerToWireType,"heap32VectorToArray":heap32VectorToArray,"ClassHandle_delete":ClassHandle_delete,"RegisteredPointer_destructor":RegisteredPointer_destructor,"___syscall6":___syscall6,"ensureOverloadTable":ensureOverloadTable,"new_":new_,"downcastPointer":downcastPointer,"replacePublicSymbol":replacePublicSymbol,"init_embind":init_embind,"_llvm_pow_f64":_llvm_pow_f64,"ClassHandle_deleteLater":ClassHandle_deleteLater,"___syscall54":___syscall54,"RegisteredPointer_deleteObject":RegisteredPointer_deleteObject,"ClassHandle_isDeleted":ClassHandle_isDeleted,"__embind_register_integer":__embind_register_integer,"___cxa_allocate_exception":___cxa_allocate_exception,"__emval_take_value":__emval_take_value,"_embind_repr":_embind_repr,"_pthread_getspecific":_pthread_getspecific,"RegisteredPointer":RegisteredPointer,"craftInvokerFunction":craftInvokerFunction,"runDestructors":runDestructors,"requireRegisteredType":requireRegisteredType,"makeLegalFunctionName":makeLegalFunctionName,"_pthread_key_create":_pthread_key_create,"upcastPointer":upcastPointer,"init_emval":init_emval,"shallowCopyInternalPointer":shallowCopyInternalPointer,"nonConstNoSmartPtrRawPointerToWireType":nonConstNoSmartPtrRawPointerToWireType,"_abort":_abort,"throwBindingError":throwBindingError,"getTypeName":getTypeName,"exposePublicSymbol":exposePublicSymbol,"RegisteredPointer_fromWireType":RegisteredPointer_fromWireType,"___lock":___lock,"__embind_register_memory_view":__embind_register_memory_view,"getInheritedInstance":getInheritedInstance,"setDelayFunction":setDelayFunction,"___gxx_personality_v0":___gxx_personality_v0,"extendError":extendError,"__embind_register_void":__embind_register_void,"RegisteredPointer_getPointee":RegisteredPointer_getPointee,"__emval_register":__emval_register,"__embind_register_std_wstring":__embind_register_std_wstring,"__embind_register_class_function":__embind_register_class_function,"__emval_incref":__emval_incref,"throwUnboundTypeError":throwUnboundTypeError,"readLatin1String":readLatin1String,"getBasestPointer":getBasestPointer,"getInheritedInstanceCount":getInheritedInstanceCount,"__embind_register_float":__embind_register_float,"integerReadValueFromPointer":integerReadValueFromPointer,"___unlock":___unlock,"_pthread_setspecific":_pthread_setspecific,"genericPointerToWireType":genericPointerToWireType,"registerType":registerType,"___cxa_throw":___cxa_throw,"count_emval_handles":count_emval_handles,"requireFunction":requireFunction,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM
2 var asm=(function(global,env,buffer) {
3 "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.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0;var z=0;var A=global.Math.floor;var B=global.Math.abs;var C=global.Math.sqrt;var D=global.Math.pow;var E=global.Math.cos;var F=global.Math.sin;var G=global.Math.tan;var H=global.Math.acos;var I=global.Math.asin;var J=global.Math.atan;var K=global.Math.atan2;var L=global.Math.exp;var M=global.Math.log;var N=global.Math.ceil;var O=global.Math.imul;var P=global.Math.min;var Q=global.Math.max;var R=global.Math.clz32;var S=env.abort;var T=env.assert;var U=env.enlargeMemory;var V=env.getTotalMemory;var W=env.abortOnCannotGrowMemory;var X=env.invoke_iiii;var Y=env.invoke_viiiiii;var Z=env.invoke_viiiii;var _=env.invoke_dii;var $=env.invoke_di;var aa=env.invoke_i;var ba=env.invoke_vi;var ca=env.invoke_vii;var da=env.invoke_viiiiidi;var ea=env.invoke_ii;var fa=env.invoke_viiid;var ga=env.invoke_viii;var ha=env.invoke_viiiiid;var ia=env.invoke_v;var ja=env.invoke_viid;var ka=env.invoke_iiiii;var la=env.invoke_viiiiidd;var ma=env.invoke_iii;var na=env.invoke_iiiid;var oa=env.invoke_viiii;var pa=env.floatReadValueFromPointer;var qa=env.simpleReadValueFromPointer;var ra=env.throwInternalError;var sa=env.get_first_emval;var ta=env.getLiveInheritedInstances;var ua=env.___assert_fail;var va=env.__ZSt18uncaught_exceptionv;var wa=env.ClassHandle;var xa=env.getShiftFromSize;var ya=env.___cxa_begin_catch;var za=env._emscripten_memcpy_big;var Aa=env.runDestructor;var Ba=env.throwInstanceAlreadyDeleted;var Ca=env.__embind_register_std_string;var Da=env.init_RegisteredPointer;var Ea=env.ClassHandle_isAliasOf;var Fa=env.flushPendingDeletes;var Ga=env.makeClassHandle;var Ha=env.whenDependentTypesAreResolved;var Ia=env.__embind_register_class_constructor;var Ja=env.init_ClassHandle;var Ka=env.___syscall140;var La=env.ClassHandle_clone;var Ma=env.___syscall146;var Na=env.RegisteredClass;var Oa=env.___cxa_find_matching_catch;var Pa=env.embind_init_charCodes;var Qa=env.___setErrNo;var Ra=env.__embind_register_bool;var Sa=env.___resumeException;var Ta=env.createNamedFunction;var Ua=env.__embind_register_emval;var Va=env.__emval_decref;var Wa=env._pthread_once;var Xa=env.__embind_register_class;var Ya=env.constNoSmartPtrRawPointerToWireType;var Za=env.heap32VectorToArray;var _a=env.ClassHandle_delete;var $a=env.RegisteredPointer_destructor;var ab=env.___syscall6;var bb=env.ensureOverloadTable;var cb=env.new_;var db=env.downcastPointer;var eb=env.replacePublicSymbol;var fb=env.init_embind;var gb=env._llvm_pow_f64;var hb=env.ClassHandle_deleteLater;var ib=env.___syscall54;var jb=env.RegisteredPointer_deleteObject;var kb=env.ClassHandle_isDeleted;var lb=env.__embind_register_integer;var mb=env.___cxa_allocate_exception;var nb=env.__emval_take_value;var ob=env._embind_repr;var pb=env._pthread_getspecific;var qb=env.RegisteredPointer;var rb=env.craftInvokerFunction;var sb=env.runDestructors;var tb=env.requireRegisteredType;var ub=env.makeLegalFunctionName;var vb=env._pthread_key_create;var wb=env.upcastPointer;var xb=env.init_emval;var yb=env.shallowCopyInternalPointer;var zb=env.nonConstNoSmartPtrRawPointerToWireType;var Ab=env._abort;var Bb=env.throwBindingError;var Cb=env.getTypeName;var Db=env.exposePublicSymbol;var Eb=env.RegisteredPointer_fromWireType;var Fb=env.___lock;var Gb=env.__embind_register_memory_view;var Hb=env.getInheritedInstance;var Ib=env.setDelayFunction;var Jb=env.___gxx_personality_v0;var Kb=env.extendError;var Lb=env.__embind_register_void;var Mb=env.RegisteredPointer_getPointee;var Nb=env.__emval_register;var Ob=env.__embind_register_std_wstring;var Pb=env.__embind_register_class_function;var Qb=env.__emval_incref;var Rb=env.throwUnboundTypeError;var Sb=env.readLatin1String;var Tb=env.getBasestPointer;var Ub=env.getInheritedInstanceCount;var Vb=env.__embind_register_float;var Wb=env.integerReadValueFromPointer;var Xb=env.___unlock;var Yb=env._pthread_setspecific;var Zb=env.genericPointerToWireType;var _b=env.registerType;var $b=env.___cxa_throw;var ac=env.count_emval_handles;var bc=env.requireFunction;var cc=0.0;
4 // EMSCRIPTEN_START_FUNCS
5 function xc(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function yc(){return l|0}function zc(a){a=a|0;l=a}function Ac(a,b){a=a|0;b=b|0;l=a;m=b}function Bc(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Cc(a){a=a|0;z=a}function Dc(){return z|0}function Ec(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)>>2|0}function Fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;f=d-b|0;d=f>>2;if(!d)return;if(d>>>0>1073741823){dg(a);g=mb(4)|0;$g(g);$b(g|0,728,17)}g=fg(f)|0;c[e>>2]=g;c[a>>2]=g;c[a+8>>2]=g+(d<<2);if((f|0)<=0)return;jh(g|0,b|0,f|0)|0;c[e>>2]=g+(f>>>2<<2);return}function Gc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+32|0;f=e+16|0;g=e;i=d+4|0;j=(c[i>>2]|0)-(c[d>>2]|0)>>3;k=c[b>>2]|0;m=((c[b+4>>2]|0)-k>>3>>>0)/(j>>>0)|0;c[g>>2]=k;c[g+4>>2]=j;c[g+8>>2]=m;_c(f,g);m=c[d>>2]|0;d=(c[i>>2]|0)-m>>3;c[g>>2]=0;i=g+4|0;c[i>>2]=0;ad(g,d,1);if((c[i>>2]|0)==(d|0))n=d;else{ad(g,d,1);n=c[i>>2]|0}i=c[g>>2]|0;if((n|0)>0){d=0;do{h[i+(d<<3)>>3]=+h[m+(d<<3)>>3];d=d+1|0}while((d|0)!=(n|0))}Ic(a,f,g,4);a=c[g>>2]|0;if(a|0)bg(c[a+-4>>2]|0);a=c[f>>2]|0;if(!a){l=e;return}bg(c[a+-4>>2]|0);l=e;return}function Hc(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)>>3|0}function Ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0.0,M=0,N=0,P=0.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.0,ca=0,da=0.0,ea=0.0;f=l;l=l+80|0;g=f+56|0;i=f;j=f+48|0;k=f+32|0;m=f+24|0;n=f+12|0;c[j>>2]=0;o=j+4|0;c[o>>2]=0;bd(g,a,b);p=a+48|0;q=c[g>>2]|0;r=c[p>>2]|0;c[g>>2]=r;c[p>>2]=q;q=g+4|0;s=a+52|0;t=c[q>>2]|0;c[q>>2]=c[s>>2];c[s>>2]=t;if(r|0)bg(c[r+-4>>2]|0);r=d+4|0;t=c[r>>2]|0;if(!t)u=0.0;else{s=c[d>>2]|0;v=+h[s>>3];w=v-v;x=w+0.0;y=w*w+0.0;if((t|0)==1){z=y;A=x;D=1.0}else{q=1;w=1.0;E=x;x=y;while(1){y=w+1.0;F=+h[s+(q<<3)>>3]-v;G=E+F;H=x+F*F;q=q+1|0;if(q>>>0>=t>>>0){z=H;A=G;D=y;break}else{w=y;E=G;x=H}}}u=+C(+((z-A*A/D)/(D+-1.0)))}t=a+56|0;h[t>>3]=u;cd(k,b);dd(m,d);q=a+104|0;c[q>>2]=c[k+4>>2];s=k+8|0;I=c[s>>2]|0;c[a+108>>2]=I;J=a+72|0;K=c[J>>2]|0;if(!I)L=0.0;else{c[i>>2]=k;c[i+4>>2]=m;nd(g,i);c[g+12>>2]=i;I=c[g>>2]|0;u=+B(+(+h[I>>3]));M=c[(c[i>>2]|0)+8>>2]|0;if((M|0)>1){N=1;D=u;while(1){A=+B(+(+h[I+(N<<3)>>3]));z=D<A?A:D;N=N+1|0;if((N|0)==(M|0)){P=z;break}else D=z}}else P=u;M=c[g+4>>2]|0;if(M|0)bg(c[M+-4>>2]|0);L=P}P=L*2.0;md(n,P,P*.001,K);K=c[s>>2]|0;s=c[J>>2]|0;M=a+36|0;N=a+40|0;I=a+44|0;if((c[N>>2]|0)==(K|0)?(c[I>>2]|0)==(s|0):0){Q=s;R=K}else{$c(M,K,s);Q=c[I>>2]|0;R=c[N>>2]|0}I=c[M>>2]|0;s=O(R,Q)|0;if((s|0)>0){fh(I|0,0,s<<3|0)|0;S=c[M>>2]|0;T=c[N>>2]|0}else{S=I;T=R}c[g>>2]=0;R=g+4|0;c[R>>2]=0;ad(g,T,1);if((c[R>>2]|0)==(T|0))U=T;else{ad(g,T,1);U=c[R>>2]|0}R=c[g>>2]|0;if((U|0)>0){T=0;do{h[R+(T<<3)>>3]=+h[S+(T<<3)>>3];T=T+1|0}while((T|0)!=(U|0))}ed(a,k,m,g,e);e=c[g>>2]|0;if(e|0)bg(c[e+-4>>2]|0);e=a+92|0;U=n+4|0;T=a+80|0;S=a+64|0;R=a+32|0;while(1){I=c[e>>2]|0;if(I>>>0>=(c[J>>2]|0)>>>0){V=I;break}c[e>>2]=I+1;s=c[N>>2]|0;Q=(c[M>>2]|0)+((O(s,I+-1|0)|0)<<3)|0;if((c[o>>2]|0)==(s|0))W=s;else{ad(j,s,1);W=c[o>>2]|0}s=c[j>>2]|0;if((W|0)>0){I=0;do{h[s+(I<<3)>>3]=+h[Q+(I<<3)>>3];I=I+1|0}while((I|0)!=(W|0))}I=(c[e>>2]|0)+-1|0;Q=c[n>>2]|0;if((c[U>>2]|0)-Q>>3>>>0>I>>>0)X=Q;else{eg(n);X=c[n>>2]|0}P=+h[X+(I<<3)>>3];L=+h[S>>3];I=c[R>>2]|0;tc[c[(c[I>>2]|0)+12>>2]&3](g,I,k,m,j,P,P*P*(+h[T>>3]*(L*L))/+((c[q>>2]|0)>>>0));I=c[e>>2]|0;Q=c[N>>2]|0;s=(c[M>>2]|0)+((O(Q,I+-1|0)|0)<<3)|0;K=c[g>>2]|0;if((Q|0)<=0)if(!K)Y=I;else Z=35;else{I=0;do{h[s+(I<<3)>>3]=+h[K+(I<<3)>>3];I=I+1|0}while((I|0)!=(Q|0));Z=35}if((Z|0)==35){Z=0;bg(c[K+-4>>2]|0);Y=c[e>>2]|0}if(!(fd(a,+h[S>>3],Y,P,n,M)|0)){Z=37;break}}if((Z|0)==37)V=c[e>>2]|0;Z=c[N>>2]|0;N=(c[M>>2]|0)+((O(Z,V+-2|0)|0)<<3)|0;V=a+4|0;if((c[V>>2]|0)==(Z|0))_=Z;else{ad(a,Z,1);_=c[V>>2]|0}Z=c[a>>2]|0;if((_|0)>0){M=0;do{h[Z+(M<<3)>>3]=+h[N+(M<<3)>>3];M=M+1|0}while((M|0)!=(_|0))}_=c[e>>2]|0;M=_+-2|0;N=c[n>>2]|0;if((c[U>>2]|0)-N>>3>>>0>M>>>0){$=N;aa=_}else{eg(n);$=c[n>>2]|0;aa=c[e>>2]|0}h[a+8>>3]=+h[$+(M<<3)>>3];c[a+16>>2]=aa;L=+h[t>>3];c[g>>2]=c[V>>2];gd(i,g);g=c[V>>2]|0;if(g|0){V=c[p>>2]|0;p=c[a>>2]|0;t=c[i>>2]|0;aa=0;do{u=+h[V+(aa<<3)>>3];h[t+(aa<<3)>>3]=+h[p+(aa<<3)>>3]*(u==0.0?0.0:L/u);aa=aa+1|0}while((aa|0)!=(g|0))}g=c[b+8>>2]|0;a:do if(!g)ba=0.0;else{aa=c[b>>2]|0;p=c[b+4>>2]|0;L=+(p|0);t=c[i>>2]|0;if((p|0)>1){ca=0;da=0.0}else{V=0;u=0.0;while(1){D=+h[aa+((O(p,V)|0)<<3)>>3]/L;z=u+D*+h[t+(V<<3)>>3];V=V+1|0;if(V>>>0>=g>>>0){ba=z;break a}else u=z}}while(1){V=aa+((O(p,ca)|0)<<3)|0;K=1;u=+h[V>>3];do{u=u+ +h[V+(K<<3)>>3];K=K+1|0}while((K|0)!=(p|0));P=da+u/L*+h[t+(ca<<3)>>3];ca=ca+1|0;if(ca>>>0>=g>>>0){ba=P;break}else da=P}}while(0);g=c[d>>2]|0;da=+h[g>>3];d=c[r>>2]|0;if((d|0)>1){r=1;L=da;while(1){P=L+ +h[g+(r<<3)>>3];r=r+1|0;if((r|0)==(d|0)){ea=P;break}else L=P}}else ea=da;h[a+24>>3]=ea/+(d|0)-ba;d=c[i>>2]|0;if(d|0)bg(c[d+-4>>2]|0);d=c[n>>2]|0;if(d|0){n=c[U>>2]|0;if((n|0)!=(d|0))c[U>>2]=n+(~((n+-8-d|0)>>>3)<<3);gg(d)}d=c[m>>2]|0;if(d|0)bg(c[d+-4>>2]|0);d=c[k>>2]|0;if(d|0)bg(c[d+-4>>2]|0);d=c[j>>2]|0;if(!d){l=f;return}bg(c[d+-4>>2]|0);l=f;return}function Jc(a){a=a|0;return +(+h[a+8>>3])}function Kc(a){a=a|0;return +(+h[a+24>>3])}function Lc(a){a=a|0;return c[a+16>>2]|0}function Mc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0.0;d=l;l=l+16|0;e=d+8|0;f=d;g=+h[b+56>>3];i=b+4|0;c[e>>2]=c[i>>2];gd(f,e);e=c[i>>2]|0;if(!e){j=f;k=c[f>>2]|0}else{i=c[b+48>>2]|0;m=c[b>>2]|0;b=c[f>>2]|0;n=0;do{o=+h[i+(n<<3)>>3];h[b+(n<<3)>>3]=+h[m+(n<<3)>>3]*(o==0.0?0.0:g/o);n=n+1|0}while((n|0)!=(e|0));j=f;k=b}Nc(a,k,k+(c[f+4>>2]<<3)|0);f=c[j>>2]|0;if(!f){l=d;return}bg(c[f+-4>>2]|0);l=d;return}function Nc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;c[a>>2]=0;e=a+4|0;c[e>>2]=0;c[a+8>>2]=0;f=d-b|0;d=f>>3;if(!d)return;if(d>>>0>536870911){dg(a);g=mb(4)|0;$g(g);$b(g|0,728,17)}g=fg(f)|0;c[e>>2]=g;c[a>>2]=g;c[a+8>>2]=g+(d<<3);if((f|0)<=0)return;jh(g|0,b|0,f|0)|0;c[e>>2]=g+(f>>>3<<3);return}function Oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0;d=l;l=l+16|0;e=d+8|0;f=d;g=+h[b+64>>3]*6.0*+h[b+8>>3]/+(c[b+104>>2]|0);i=b+4|0;c[e>>2]=c[i>>2];Zc(f,e);if(!(c[i>>2]|0)){j=f;k=c[f>>2]|0}else{e=c[b>>2]|0;b=c[f>>2]|0;m=0;do{c[b+(m<<2)>>2]=+B(+(+h[e+(m<<3)>>3]))>=g&1;m=m+1|0}while(m>>>0<(c[i>>2]|0)>>>0);j=f;k=b}Fc(a,k,k+(c[f+4>>2]<<2)|0);f=c[j>>2]|0;if(!f){l=d;return}bg(c[f+-4>>2]|0);l=d;return}function Pc(a){a=a|0;Xa(208,232,248,0,2916,3,2919,0,2919,0,a|0,2921,22);Ia(208,1,1088,2916,4,1);a=fg(8)|0;c[a>>2]=1;c[a+4>>2]=0;Pb(208,2694,3,1092,2924,1,a|0,0);a=fg(8)|0;c[a>>2]=1;c[a+4>>2]=0;Pb(208,2704,4,1104,2929,1,a|0,0);a=fg(8)|0;c[a>>2]=5;c[a+4>>2]=0;Pb(208,2711,2,1120,2935,1,a|0,0);a=fg(4)|0;c[a>>2]=2;Pb(208,2716,3,1128,2958,7,a|0,0);a=fg(4)|0;c[a>>2]=8;Pb(208,2720,4,1140,2963,1,a|0,0);return}function Qc(a){a=a|0;Xa(296,320,336,0,2916,6,2919,0,2919,0,a|0,2921,23);Ia(296,1,1156,2916,7,2);a=fg(8)|0;c[a>>2]=2;c[a+4>>2]=0;Pb(296,2694,3,1160,3124,2,a|0,0);a=fg(8)|0;c[a>>2]=3;c[a+4>>2]=0;Pb(296,2704,4,1172,3129,2,a|0,0);a=fg(8)|0;c[a>>2]=8;c[a+4>>2]=0;Pb(296,2711,2,1188,2935,2,a|0,0);a=fg(4)|0;c[a>>2]=4;Pb(296,2716,3,1196,2958,9,a|0,0);a=fg(4)|0;c[a>>2]=10;Pb(296,2720,4,1208,3135,2,a|0,0);return}function Rc(a){a=a|0;Xa(376,400,416,0,2916,9,2919,0,2919,0,a|0,2921,24);Ia(376,1,1224,2916,10,3);a=fg(8)|0;c[a>>2]=3;c[a+4>>2]=0;Pb(376,2694,3,1228,3296,5,a|0,0);a=fg(8)|0;c[a>>2]=6;c[a+4>>2]=0;Pb(376,2704,4,1240,3301,4,a|0,0);a=fg(8)|0;c[a>>2]=11;c[a+4>>2]=0;Pb(376,2711,2,1256,2935,3,a|0,0);a=fg(4)|0;c[a>>2]=7;Pb(376,2716,3,1264,2958,11,a|0,0);a=fg(4)|0;c[a>>2]=12;Pb(376,2720,4,1276,3307,1,a|0,0);return}function Sc(a){a=a|0;Xa(440,456,472,0,2916,12,2919,0,2919,0,2087,2921,25);Ia(440,1,1292,2916,13,4);a=fg(8)|0;c[a>>2]=5;c[a+4>>2]=0;Pb(440,2091,5,1296,3467,4,a|0,0);a=fg(8)|0;c[a>>2]=1;c[a+4>>2]=0;Pb(440,2095,2,1316,3474,1,a|0,0);a=fg(8)|0;c[a>>2]=2;c[a+4>>2]=0;Pb(440,2108,2,1316,3474,1,a|0,0);a=fg(8)|0;c[a>>2]=14;c[a+4>>2]=0;Pb(440,2124,2,1324,2935,4,a|0,0);a=fg(8)|0;c[a>>2]=4;c[a+4>>2]=0;Pb(440,2141,2,1332,2935,5,a|0,0);a=fg(8)|0;c[a>>2]=5;c[a+4>>2]=0;Pb(440,2160,2,1340,2935,6,a|0,0);return}function Tc(a){a=a|0;ya(a|0)|0;Ig()}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;c[a+8>>2]=0;if(!b)return;if(b>>>0>1073741823){dg(a);e=mb(4)|0;$g(e);$b(e|0,728,17)}e=b<<2;f=fg(e)|0;c[a>>2]=f;g=f+(b<<2)|0;c[a+8>>2]=g;fh(f|0,0,e|0)|0;c[d>>2]=g;return}function Vc(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;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){dg(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=mb(4)|0;$g(g);$b(g|0,728,17)}else{l=fg(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)jh(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;gg(h);return}function Wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,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;e=c[a>>2]|0;f=e;g=e+((c[b>>2]|0)-f>>2<<2)|0;b=a+4|0;h=c[b>>2]|0;i=a+8|0;j=c[i>>2]|0;k=h;l=j;if(h>>>0<j>>>0){if((g|0)==(h|0)){c[g>>2]=c[d>>2];c[b>>2]=g+4;m=g;return m|0}j=k-(g+4)|0;n=j>>2;o=g+(n<<2)|0;if(o>>>0<h>>>0){p=(h+(0-n<<2)+~g|0)>>>2;q=o;o=h;while(1){c[o>>2]=c[q>>2];q=q+4|0;if(q>>>0>=h>>>0)break;else o=o+4|0}c[b>>2]=h+(p+1<<2)}if(n|0)oh(h+(0-n<<2)|0,g|0,j|0)|0;if(g>>>0>d>>>0)r=d;else r=(c[b>>2]|0)>>>0>d>>>0?d+4|0:d;c[g>>2]=c[r>>2];m=g;return m|0}r=(k-f>>2)+1|0;if(r>>>0>1073741823){dg(a);k=c[a>>2]|0;s=i;t=k;u=k;v=c[i>>2]|0}else{s=i;t=e;u=f;v=l}l=v-u|0;v=l>>1;f=l>>2>>>0<536870911?(v>>>0<r>>>0?r:v):1073741823;v=g;r=v-u|0;u=r>>2;do if(f)if(f>>>0>1073741823){l=mb(4)|0;$g(l);$b(l|0,728,17)}else{l=fg(f<<2)|0;w=l;x=l;break}else{w=0;x=0}while(0);l=w+(u<<2)|0;e=l;i=w+(f<<2)|0;do if((u|0)==(f|0)){if((r|0)>0){k=l+(((f+1|0)/-2|0)<<2)|0;y=i;z=k;A=k;B=t;break}k=f<<2>>1;j=(k|0)==0?1:k;if(j>>>0>1073741823){k=mb(4)|0;$g(k);$b(k|0,728,17)}k=fg(j<<2)|0;n=k+(j>>>2<<2)|0;h=n;p=k+(j<<2)|0;if(!w){y=p;z=h;A=n;B=t}else{gg(x);y=p;z=h;A=n;B=c[a>>2]|0}}else{y=i;z=e;A=l;B=t}while(0);c[A>>2]=c[d>>2];d=A+4|0;A=z;z=v-B|0;t=A+(0-(z>>2)<<2)|0;if((z|0)>0)jh(t|0,B|0,z|0)|0;z=(c[b>>2]|0)-v|0;if((z|0)>0){jh(d|0,g|0,z|0)|0;C=d+(z>>>2<<2)|0}else C=d;d=c[a>>2]|0;c[a>>2]=t;c[b>>2]=C;c[s>>2]=y;if(!d){m=A;return m|0}gg(d);m=A;return m|0}function Xc(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if((e|0)==(c[a+8>>2]|0)){Yc(a,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=e+4;return}}function Yc(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;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){dg(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=mb(4)|0;$g(g);$b(g|0,728,17)}else{l=fg(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)jh(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;gg(h);return}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;e=c[b>>2]|0;if(!e){c[d>>2]=e;return}if(e>>>0>1073741823){b=mb(4)|0;$g(b);$b(b|0,728,17)}b=e<<2;f=ag(b+16|0)|0;g=f+16&-16;if(!f)h=0;else{c[g+-4>>2]=f;h=g}if((b|0)!=0&(h|0)==0){b=mb(4)|0;$g(b);$b(b|0,728,17)}c[a>>2]=h;c[d>>2]=e;return}function _c(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;e=a+8|0;c[e>>2]=0;f=b+4|0;g=c[f>>2]|0;i=b+8|0;j=c[i>>2]|0;if(!((g|0)==0|(j|0)==0)?(2147483647/(j|0)|0|0)<(g|0):0){k=mb(4)|0;$g(k);$b(k|0,728,17)}$c(a,g,j);j=c[b>>2]|0;b=c[i>>2]|0;i=c[f>>2]|0;if((c[d>>2]|0)==(i|0)?(c[e>>2]|0)==(b|0):0){l=b;m=i}else{$c(a,i,b);l=c[e>>2]|0;m=c[d>>2]|0}d=c[a>>2]|0;if((l|0)>0&(m|0)>0)n=0;else return;do{a=O(n,m)|0;e=0;do{h[d+(e+a<<3)>>3]=+h[j+((O(e,b)|0)+n<<3)>>3];e=e+1|0}while((e|0)!=(m|0));n=n+1|0}while((n|0)!=(l|0));return}function $c(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!((b|0)==0|(d|0)==0)?(2147483647/(d|0)|0|0)<(b|0):0){e=mb(4)|0;$g(e);$b(e|0,728,17)}e=O(d,b)|0;f=a+4|0;g=a+8|0;if((O(c[g>>2]|0,c[f>>2]|0)|0)==(e|0)){c[f>>2]=b;c[g>>2]=d;return}h=c[a>>2]|0;if(h|0)bg(c[h+-4>>2]|0);do if(e){if(e>>>0>536870911){h=mb(4)|0;$g(h);$b(h|0,728,17)}h=e<<3;i=ag(h+16|0)|0;j=i+16&-16;if(!i)k=0;else{c[j+-4>>2]=i;k=j}if((h|0)!=0&(k|0)==0){h=mb(4)|0;$g(h);$b(h|0,728,17)}else{l=k;break}}else l=0;while(0);c[a>>2]=l;c[f>>2]=b;c[g>>2]=d;return}function ad(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(!((b|0)==0|(d|0)==0)?(2147483647/(d|0)|0|0)<(b|0):0){e=mb(4)|0;$g(e);$b(e|0,728,17)}e=O(d,b)|0;d=a+4|0;if((c[d>>2]|0)==(e|0)){c[d>>2]=b;return}f=c[a>>2]|0;if(f|0)bg(c[f+-4>>2]|0);do if(e){if(e>>>0>536870911){f=mb(4)|0;$g(f);$b(f|0,728,17)}f=e<<3;g=ag(f+16|0)|0;h=g+16&-16;if(!g)i=0;else{c[h+-4>>2]=g;i=h}if((f|0)!=0&(i|0)==0){f=mb(4)|0;$g(f);$b(f|0,728,17)}else{j=i;break}}else j=0;while(0);c[a>>2]=j;c[d>>2]=b;return}function bd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;b=l;l=l+16|0;e=b;f=d+8|0;c[e>>2]=c[f>>2];gd(a,e);if(!(c[f>>2]|0)){l=b;return}g=d+4|0;i=e+4|0;j=0;do{k=c[g>>2]|0;m=(c[d>>2]|0)+((O(k,j)|0)<<3)|0;c[e>>2]=0;c[i>>2]=0;ad(e,k,1);if((c[i>>2]|0)==(k|0))n=k;else{ad(e,k,1);n=c[i>>2]|0}k=c[e>>2]|0;if((n|0)>0){o=0;do{h[k+(o<<3)>>3]=+h[m+(o<<3)>>3];o=o+1|0}while((o|0)!=(n|0))}if(!n){h[(c[a>>2]|0)+(j<<3)>>3]=0.0;if(k|0)p=12}else{q=+h[k>>3];r=q-q;s=r+0.0;t=r*r+0.0;if((n|0)==1){u=t;v=s;w=1.0}else{o=1;r=1.0;x=s;s=t;while(1){t=r+1.0;y=+h[k+(o<<3)>>3]-q;z=y+x;A=s+y*y;o=o+1|0;if(o>>>0>=n>>>0){u=A;v=z;w=t;break}else{r=t;x=z;s=A}}}s=+C(+((u-v*v/w)/(w+-1.0)));h[(c[a>>2]|0)+(j<<3)>>3]=s;p=12}if((p|0)==12){p=0;bg(c[k+-4>>2]|0)}j=j+1|0}while(j>>>0<(c[f>>2]|0)>>>0);l=b;return}function cd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=l;l=l+144|0;e=d+136|0;f=d;g=b;i=c[b+4>>2]|0;j=c[b+8>>2]|0;c[f+4>>2]=g;c[f+8>>2]=g;c[f+16>>2]=i;c[f+52>>2]=g;c[f+56>>2]=g;c[f+64>>2]=i;c[f+92>>2]=j;h[f+96>>3]=+(i+-1|0);c[f+120>>2]=i;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(!((i|0)==0|(j|0)==0)?(2147483647/(j|0)|0|0)<(i|0):0){g=mb(4)|0;$g(g);$b(g|0,728,17)}$c(a,i,j);hd(a,f,e);l=d;return}function dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,D=0.0,E=0;d=l;l=l+144|0;e=d+48|0;f=d+88|0;g=d;i=b;j=b+4|0;k=c[j>>2]|0;m=+(k+-1|0);c[a>>2]=0;n=a+4|0;c[n>>2]=0;ad(a,k,1);o=c[b>>2]|0;c[g+8>>2]=o;b=g+16|0;p=o;q=c[j>>2]|0;r=+h[p>>3];j=(q|0)>1;if(j){s=1;t=r;while(1){u=t+ +h[p+(s<<3)>>3];s=s+1|0;if((s|0)==(q|0)){v=u;break}else t=u}}else v=r;r=+(q|0);h[b>>3]=v/r;s=g+24|0;c[s>>2]=b;b=g+32|0;w=e+8|0;x=e+16|0;y=e+24|0;z=e+32|0;c[f+4>>2]=i;c[f+8>>2]=i;c[f+16>>2]=k;c[f+32>>2]=0;c[f+40>>2]=k;if(!k)A=0.0;else{c[e>>2]=o;v=+h[p>>3];if(j){j=1;t=v;while(1){u=t+ +h[p+(j<<3)>>3];j=j+1|0;if((j|0)==(q|0)){B=u;break}else t=u}}else B=v;v=B/r;h[w>>3]=v;c[x>>2]=w;c[y>>2]=0;c[z>>2]=f;r=+h[p>>3]-v;B=r*r;if((k|0)>1){f=1;r=B;while(1){t=+h[p+(f<<3)>>3]-v;u=r+t*t;f=f+1|0;if((f|0)==(k|0)){D=u;break}else r=u}}else D=B;A=D}h[b>>3]=+C(+(A/m));f=g+40|0;c[f>>2]=b;if((c[n>>2]|0)==(k|0))E=k;else{ad(a,k,1);E=c[n>>2]|0}n=c[a>>2]|0;if((E|0)<=0){l=d;return}a=c[g+8>>2]|0;g=c[s>>2]|0;s=c[f>>2]|0;f=0;do{h[n+(f<<3)>>3]=(+h[a+(f<<3)>>3]-+h[g>>3])/+h[s>>3];f=f+1|0}while((f|0)!=(E|0));l=d;return}function ed(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0;g=l;l=l+16|0;i=g;j=a+32|0;k=c[j>>2]|0;c[j>>2]=0;if(k|0)jc[c[(c[k>>2]|0)+4>>2]&31](k);switch(f|0){case 0:{f=fg(32)|0;h[f+8>>3]=.1;c[f>>2]=928;h[f+16>>3]=1.5;h[f+24>>3]=0.0;k=c[j>>2]|0;c[j>>2]=f;if(!k){l=g;return}jc[c[(c[k>>2]|0)+4>>2]&31](k);l=g;return}case 1:{k=fg(32)|0;h[k+8>>3]=.1;c[k>>2]=956;h[k+16>>3]=1.5;h[k+24>>3]=0.0;f=c[j>>2]|0;c[j>>2]=k;if(!f){l=g;return}jc[c[(c[f>>2]|0)+4>>2]&31](f);l=g;return}case 2:{f=fg(72)|0;sd(f,e,.1);k=c[j>>2]|0;c[j>>2]=f;if(!k){l=g;return}jc[c[(c[k>>2]|0)+4>>2]&31](k);l=g;return}case 3:{k=fg(72)|0;td(k,e,.1);e=c[j>>2]|0;c[j>>2]=k;if(!e){l=g;return}jc[c[(c[e>>2]|0)+4>>2]&31](e);l=g;return}case 4:{e=fg(16)|0;k=c[a+36>>2]|0;f=c[a+40>>2]|0;c[i>>2]=0;m=i+4|0;c[m>>2]=0;ad(i,f,1);if((c[m>>2]|0)==(f|0))n=f;else{ad(i,f,1);n=c[m>>2]|0}m=c[i>>2]|0;if((n|0)>0){f=0;do{h[m+(f<<3)>>3]=+h[k+(f<<3)>>3];f=f+1|0}while((f|0)!=(n|0))}ud(e,b,d,i);n=c[j>>2]|0;c[j>>2]=e;if(n|0)jc[c[(c[n>>2]|0)+4>>2]&31](n);n=c[i>>2]|0;if(n|0)bg(c[n+-4>>2]|0);l=g;return}case 5:{n=fg(16)|0;e=c[a+36>>2]|0;f=c[a+40>>2]|0;c[i>>2]=0;a=i+4|0;c[a>>2]=0;ad(i,f,1);if((c[a>>2]|0)==(f|0))o=f;else{ad(i,f,1);o=c[a>>2]|0}a=c[i>>2]|0;if((o|0)>0){f=0;do{h[a+(f<<3)>>3]=+h[e+(f<<3)>>3];f=f+1|0}while((f|0)!=(o|0))}vd(n,b,d,i);d=c[j>>2]|0;c[j>>2]=n;if(d|0)jc[c[(c[d>>2]|0)+4>>2]&31](d);d=c[i>>2]|0;if(d|0)bg(c[d+-4>>2]|0);l=g;return}default:{l=g;return}}}function fd(a,b,d,e,f,g){a=a|0;b=+b;d=d|0;e=+e;f=f|0;g=g|0;var i=0,j=0,k=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,C=0,D=0.0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;i=l;l=l+16|0;j=i+8|0;k=i;if(!d){m=1;l=i;return m|0}n=g+4|0;o=j+4|0;p=f+4|0;q=d+-1|0;r=k+4|0;s=j+4|0;t=a+104|0;a=1;u=1;while(1){v=u+-1|0;w=c[n>>2]|0;x=(c[g>>2]|0)+((O(w,v)|0)<<3)|0;c[j>>2]=0;c[o>>2]=0;ad(j,w,1);if((c[o>>2]|0)==(w|0))y=w;else{ad(j,w,1);y=c[o>>2]|0}w=c[j>>2]|0;if((y|0)>0){z=0;do{h[w+(z<<3)>>3]=+h[x+(z<<3)>>3];z=z+1|0}while((z|0)!=(y|0))}z=c[f>>2]|0;if((c[p>>2]|0)-z>>3>>>0>v>>>0){A=z;C=y}else{eg(f);A=c[f>>2]|0;C=c[o>>2]|0}D=+h[A+(v<<3)>>3];z=(c[g>>2]|0)+((O(c[n>>2]|0,q)|0)<<3)|0;c[k>>2]=0;c[r>>2]=0;ad(k,C,1);x=c[j>>2]|0;w=c[s>>2]|0;if((c[r>>2]|0)==(w|0))E=w;else{ad(k,w,1);E=c[r>>2]|0}w=c[k>>2]|0;if((E|0)>0){F=0;do{h[w+(F<<3)>>3]=+h[z+(F<<3)>>3]-+h[x+(F<<3)>>3];F=F+1|0}while((F|0)!=(E|0))}if(E){G=+B(+(+h[w>>3]));if((E|0)>1){F=1;H=G;while(1){I=+B(+(+h[w+(F<<3)>>3]));J=H<I?I:H;F=F+1|0;if((F|0)==(E|0)){K=J;break}else H=J}}else K=G}else K=0.0;F=a&K*+(c[t>>2]|0)/(D+e)<=b;if(w|0)bg(c[w+-4>>2]|0);x=c[j>>2]|0;if(x|0)bg(c[x+-4>>2]|0);u=u+1|0;if(u>>>0>d>>>0){m=F;break}else a=F}l=i;return m|0}function gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;e=c[b>>2]|0;if(!e){c[d>>2]=e;return}if(e>>>0>536870911){b=mb(4)|0;$g(b);$b(b|0,728,17)}b=e<<3;f=ag(b+16|0)|0;g=f+16&-16;if(!f)h=0;else{c[g+-4>>2]=f;h=g}if((b|0)!=0&(h|0)==0){b=mb(4)|0;$g(b);$b(b|0,728,17)}c[a>>2]=h;c[d>>2]=e;return}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;d=l;l=l+64|0;e=d;id(e,b);f=c[b+120>>2]|0;g=c[b+92>>2]|0;b=a+4|0;if((c[b>>2]|0)==(f|0)?(c[a+8>>2]|0)==(g|0):0){i=g;j=f}else{$c(a,f,g);i=c[a+8>>2]|0;j=c[b>>2]|0}b=c[a>>2]|0;if((i|0)>0?(a=c[e+4>>2]|0,g=c[e+8>>2]|0,f=c[e+20>>2]|0,k=c[e+40>>2]|0,(j|0)>0):0){m=0;do{n=O(m,j)|0;o=O(g,m)|0;p=f+(m<<3)|0;q=k+(m<<3)|0;r=0;do{h[b+(r+n<<3)>>3]=(+h[a+(o+r<<3)>>3]-+h[p>>3])/+h[q>>3];r=r+1|0}while((r|0)<(j|0));m=m+1|0}while((m|0)<(i|0))}i=c[e+32>>2]|0;if(i|0)bg(c[i+-4>>2]|0);i=c[e+12>>2]|0;if(!i){l=d;return}bg(c[i+-4>>2]|0);l=d;return}function id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d;f=c[b+4>>2]|0;g=c[f+4>>2]|0;c[a+4>>2]=c[f>>2];c[a+8>>2]=g;g=a+12|0;f=b+8|0;c[g>>2]=0;c[a+16>>2]=0;jd(g,f,e);c[a+20>>2]=c[g>>2];c[a+28>>2]=c[(c[f>>2]|0)+8>>2];f=a+32|0;c[f>>2]=0;c[a+36>>2]=0;kd(f,b+32|0,e);c[a+40>>2]=c[f>>2];c[a+48>>2]=c[b+92>>2];l=d;return}function jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0.0;d=c[b>>2]|0;b=c[d+8>>2]|0;e=a+4|0;if((c[e>>2]|0)==(b|0))f=c[a>>2]|0;else{g=(b|0)==0;if(!g?(2147483647/(b|0)|0|0)<1:0){i=mb(4)|0;$g(i);$b(i|0,728,17)}i=c[a>>2]|0;if(i|0)bg(c[i+-4>>2]|0);do if(!g){if(b>>>0>536870911){i=mb(4)|0;$g(i);$b(i|0,728,17)}i=b<<3;j=ag(i+16|0)|0;k=j+16&-16;if(!j)l=0;else{c[k+-4>>2]=j;l=k}if((i|0)!=0&(l|0)==0){i=mb(4)|0;$g(i);$b(i|0,728,17)}else{m=l;break}}else m=0;while(0);c[a>>2]=m;c[e>>2]=b;f=m}if((b|0)<=0)return;m=c[d>>2]|0;e=c[d+4>>2]|0;n=+(e|0);if((e|0)>1)o=0;else{d=0;do{h[f+(d<<3)>>3]=+h[m+((O(e,d)|0)<<3)>>3]/n;d=d+1|0}while((d|0)!=(b|0));return}do{d=m+((O(e,o)|0)<<3)|0;a=1;p=+h[d>>3];do{p=p+ +h[d+(a<<3)>>3];a=a+1|0}while((a|0)!=(e|0));h[f+(o<<3)>>3]=p/n;o=o+1|0}while((o|0)!=(b|0));return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;d=l;l=l+64|0;e=d+48|0;f=d;g=c[b+20>>2]|0;i=c[b+24>>2]|0;j=c[b+32>>2]|0;k=+h[b+64>>3];m=c[b+60>>2]|0;b=a+4|0;if((c[b>>2]|0)==(m|0))n=c[a>>2]|0;else{o=(m|0)==0;if(!o?(2147483647/(m|0)|0|0)<1:0){p=mb(4)|0;$g(p);$b(p|0,728,17)}p=c[a>>2]|0;if(p|0)bg(c[p+-4>>2]|0);do if(!o){if(m>>>0>536870911){p=mb(4)|0;$g(p);$b(p|0,728,17)}p=m<<3;q=ag(p+16|0)|0;r=q+16&-16;if(!q)s=0;else{c[r+-4>>2]=q;s=r}if((p|0)!=0&(s|0)==0){p=mb(4)|0;$g(p);$b(p|0,728,17)}else{t=s;break}}else t=0;while(0);c[a>>2]=t;c[b>>2]=m;n=t}if((m|0)<=0){l=d;return}t=f+4|0;b=f+8|0;a=f+16|0;s=f+32|0;o=f+36|0;p=f+40|0;if(j|0){r=0;do{c[t>>2]=g;c[b>>2]=i;c[a>>2]=j;c[s>>2]=0;c[o>>2]=r;c[p>>2]=j;h[n+(r<<3)>>3]=+C(+(+ld(f,e)/k));r=r+1|0}while((r|0)!=(m|0));l=d;return}u=+C(+(0.0/k));r=0;do{h[n+(r<<3)>>3]=u;r=r+1|0}while((r|0)!=(m|0));l=d;return}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;b=l;l=l+48|0;d=b;e=c[a+4>>2]|0;f=c[e+4>>2]|0;c[d>>2]=c[e>>2];e=d+4|0;c[e>>2]=f;f=d+8|0;g=a+8|0;c[f>>2]=0;c[d+12>>2]=0;jd(f,g,b+40|0);i=c[f>>2]|0;c[d+16>>2]=i;c[d+24>>2]=c[(c[g>>2]|0)+8>>2];g=c[a+32>>2]|0;c[d+28>>2]=g;f=c[a+36>>2]|0;c[d+32>>2]=f;c[d+36>>2]=a;j=c[d>>2]|0;d=(O(c[e>>2]|0,f)|0)+g|0;k=+h[i+(f<<3)>>3];m=+h[j+(d<<3)>>3]-k;n=m*m;f=c[a+40>>2]|0;if((f|0)>1){a=1;m=n;while(1){o=+h[j+(d+a<<3)>>3]-k;p=m+o*o;a=a+1|0;if((a|0)==(f|0)){q=p;break}else m=p}}else q=n;if(!i){l=b;return +q}bg(c[i+-4>>2]|0);l=b;return +q}function md(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0.0,o=0;f=l;l=l+16|0;g=f;i=+$f(b);b=+$f(d)-i;c[a>>2]=0;j=a+4|0;c[j>>2]=0;c[a+8>>2]=0;qd(a,e);if(!e){l=f;return}d=+((e+-1|0)>>>0);k=a+8|0;m=0;do{n=+D(10.0,+(i+b*(+(m>>>0)/d)));h[g>>3]=n;o=c[j>>2]|0;if(o>>>0<(c[k>>2]|0)>>>0){h[o>>3]=n;c[j>>2]=o+8}else rd(a,g);m=m+1|0}while(m>>>0<e>>>0);l=f;return}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;d=l;l=l+16|0;e=d+8|0;f=d;c[a>>2]=0;g=a+4|0;i=c[(c[b>>2]|0)+8>>2]|0;c[g>>2]=0;j=a+8|0;c[j>>2]=0;ad(g,i,1);i=c[g>>2]|0;c[a>>2]=i;a=c[b+4>>2]|0;k=c[j>>2]|0;if((k|0)>0)fh(i|0,0,k<<3|0)|0;h[f>>3]=1.0;c[e>>2]=c[b>>2];od(e,a,g,f);l=d;return}function od(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+16|0;g=f+8|0;i=f;j=c[a>>2]|0;k=+h[e>>3];e=c[b+4>>2]|0;if(e>>>0>536870911){a=mb(4)|0;$g(a);$b(a|0,728,17)}a=c[b>>2]|0;m=e<<3;if(!a){do if(m>>>0>=131073){e=ag(m+16|0)|0;n=e+16&-16;if(!e){o=mb(4)|0;$g(o);$b(o|0,728,17)}c[n+-4>>2]=e;if(!n){o=mb(4)|0;$g(o);$b(o|0,728,17)}else{p=n;q=c[b>>2]|0;break}}else{n=l;l=l+((1*(m+15|0)|0)+15&-16)|0;p=n+15&-16;q=0}while(0);r=q;s=p}else{r=a;s=a}a=(r|0)==0?s:0;r=c[j+8>>2]|0;p=c[j+4>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=p;c[i>>2]=s;c[i+4>>2]=1;pd(r,p,g,i,c[d>>2]|0,1,k);if((a|0)==0|m>>>0>131072^1){l=f;return}bg(c[a+-4>>2]|0);l=f;return}function pd(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0,ea=0,fa=0,ga=0;j=c[d>>2]|0;k=c[d+4>>2]|0;d=k<<3>>>0>32e3?0:a+-7|0;l=a+-3|0;m=a+-1|0;if((d|0)>0){n=(b|0)>0;o=c[e>>2]|0;p=j;q=0;do{if(n){r=O(q,k)|0;s=O(q|1,k)|0;t=O(q|2,k)|0;u=O(q|3,k)|0;v=O(q|4,k)|0;w=O(q|5,k)|0;x=O(q|6,k)|0;y=O(q|7,k)|0;z=0;A=0.0;B=0.0;C=0.0;D=0.0;E=0.0;F=0.0;G=0.0;H=0.0;while(1){I=+h[o+(z<<3)>>3];J=A+I*+h[p+(z+r<<3)>>3];K=B+I*+h[p+(z+s<<3)>>3];L=C+I*+h[p+(z+t<<3)>>3];M=D+I*+h[p+(z+u<<3)>>3];N=E+I*+h[p+(z+v<<3)>>3];P=F+I*+h[p+(z+w<<3)>>3];Q=G+I*+h[p+(z+x<<3)>>3];R=H+I*+h[p+(z+y<<3)>>3];z=z+1|0;if((z|0)==(b|0)){S=J;T=K;U=L;V=M;W=N;X=P;Y=Q;Z=R;break}else{A=J;B=K;C=L;D=M;E=N;F=P;G=Q;H=R}}}else{S=0.0;T=0.0;U=0.0;V=0.0;W=0.0;X=0.0;Y=0.0;Z=0.0}z=f+((O(q,g)|0)<<3)|0;h[z>>3]=S*i+ +h[z>>3];z=f+((O(q|1,g)|0)<<3)|0;h[z>>3]=T*i+ +h[z>>3];z=f+((O(q|2,g)|0)<<3)|0;h[z>>3]=U*i+ +h[z>>3];z=f+((O(q|3,g)|0)<<3)|0;h[z>>3]=V*i+ +h[z>>3];z=f+((O(q|4,g)|0)<<3)|0;h[z>>3]=W*i+ +h[z>>3];z=f+((O(q|5,g)|0)<<3)|0;h[z>>3]=X*i+ +h[z>>3];z=f+((O(q|6,g)|0)<<3)|0;h[z>>3]=Y*i+ +h[z>>3];z=f+((O(q|7,g)|0)<<3)|0;h[z>>3]=Z*i+ +h[z>>3];q=q+8|0}while((q|0)<(d|0));_=d+7&-8}else _=0;if((_|0)<(l|0)){d=(b|0)>0;q=c[e>>2]|0;p=j;o=_+(a+-4-_&-4)|0;n=_;do{if(d){z=O(n,k)|0;y=O(n|1,k)|0;x=O(n|2,k)|0;w=O(n|3,k)|0;v=0;Z=0.0;Y=0.0;X=0.0;W=0.0;while(1){V=+h[q+(v<<3)>>3];U=Z+V*+h[p+(v+z<<3)>>3];T=Y+V*+h[p+(v+y<<3)>>3];S=X+V*+h[p+(v+x<<3)>>3];H=W+V*+h[p+(v+w<<3)>>3];v=v+1|0;if((v|0)==(b|0)){$=U;aa=T;ba=S;ca=H;break}else{Z=U;Y=T;X=S;W=H}}}else{$=0.0;aa=0.0;ba=0.0;ca=0.0}v=f+((O(n,g)|0)<<3)|0;h[v>>3]=$*i+ +h[v>>3];v=f+((O(n|1,g)|0)<<3)|0;h[v>>3]=aa*i+ +h[v>>3];v=f+((O(n|2,g)|0)<<3)|0;h[v>>3]=ba*i+ +h[v>>3];v=f+((O(n|3,g)|0)<<3)|0;h[v>>3]=ca*i+ +h[v>>3];n=n+4|0}while((n|0)<(l|0));da=o+4|0}else da=_;do if((da|0)<(m|0)){_=c[e>>2]|0;o=j;l=da+(a+-2-da&-2)|0;if((b|0)>0)ea=da;else{ca=i*0.0;n=da;do{p=f+((O(n,g)|0)<<3)|0;h[p>>3]=ca+ +h[p>>3];p=f+((O(n|1,g)|0)<<3)|0;h[p>>3]=ca+ +h[p>>3];n=n+2|0}while((n|0)<(m|0));fa=l+2|0;break}do{n=O(ea,k)|0;p=ea|1;q=O(p,k)|0;d=0;ca=0.0;ba=0.0;do{v=d;d=d+1|0;aa=+h[_+(v<<3)>>3];ba=ba+aa*+h[o+(v+n<<3)>>3];ca=ca+aa*+h[o+(v+q<<3)>>3]}while((d|0)!=(b|0));d=f+((O(ea,g)|0)<<3)|0;h[d>>3]=ba*i+ +h[d>>3];d=f+((O(p,g)|0)<<3)|0;h[d>>3]=ca*i+ +h[d>>3];ea=ea+2|0}while((ea|0)<(m|0));fa=l+2|0}else fa=da;while(0);if((fa|0)>=(a|0))return;da=j;j=c[e>>2]|0;if((b|0)>0)ga=fa;else{aa=i*0.0;e=fa;do{fa=f+((O(e,g)|0)<<3)|0;h[fa>>3]=aa+ +h[fa>>3];e=e+1|0}while((e|0)!=(a|0));return}do{e=O(ga,k)|0;fa=0;aa=0.0;do{m=fa;fa=fa+1|0;aa=aa+ +h[j+(m<<3)>>3]*+h[da+(m+e<<3)>>3]}while((fa|0)!=(b|0));fa=f+((O(ga,g)|0)<<3)|0;h[fa>>3]=aa*i+ +h[fa>>3];ga=ga+1|0}while((ga|0)!=(a|0));return}function qd(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;d=a+8|0;e=c[a>>2]|0;if((c[d>>2]|0)-e>>3>>>0>=b>>>0)return;f=a+4|0;if(b>>>0>536870911){g=mb(4)|0;$g(g);$b(g|0,728,17)}g=(c[f>>2]|0)-e|0;h=g>>3;i=fg(b<<3)|0;j=i+(h<<3)|0;k=j+(0-h<<3)|0;if((g|0)>0)jh(k|0,e|0,g|0)|0;c[a>>2]=k;c[f>>2]=j;c[d>>2]=i+(b<<3);if(!e)return;gg(e);return}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>3)+1|0;if(g>>>0>536870911){dg(a);i=c[a>>2]|0;j=c[d>>2]|0}else{i=f;j=e}e=a+8|0;f=(c[e>>2]|0)-i|0;k=f>>2;l=f>>3>>>0<268435455?(k>>>0<g>>>0?g:k):536870911;k=j-i>>3;do if(l)if(l>>>0>536870911){g=mb(4)|0;$g(g);$b(g|0,728,17)}else{m=fg(l<<3)|0;break}else m=0;while(0);g=m+(k<<3)|0;h[g>>3]=+h[b>>3];b=j-i|0;j=g+(0-(b>>3)<<3)|0;if((b|0)>0)jh(j|0,i|0,b|0)|0;c[a>>2]=j;c[d>>2]=g+8;c[e>>2]=m+(l<<3);if(!i)return;gg(i);return}function sd(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0,j=0;h[a+8>>3]=d;c[a>>2]=984;e=a+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;h[a+48>>3]=1.5;f=a+56|0;h[f>>3]=1.0;h[a+64>>3]=0.0;g=c[b>>2]|0;i=c[b+4>>2]|0;if(!i){h[f>>3]=1.0;return}ad(e,i,1);i=c[a+20>>2]|0;a=c[e>>2]|0;if((i|0)>0)j=0;else{h[f>>3]=1.0;return}do{h[a+(j<<3)>>3]=+h[g+(j<<3)>>3];j=j+1|0}while((j|0)!=(i|0));h[f>>3]=1.0;return}function td(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0,j=0;h[a+8>>3]=d;c[a>>2]=1012;e=a+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;h[a+48>>3]=1.5;f=a+56|0;h[f>>3]=1.0;h[a+64>>3]=0.0;g=c[b>>2]|0;i=c[b+4>>2]|0;if(!i){h[f>>3]=1.0;return}ad(e,i,1);i=c[a+20>>2]|0;a=c[e>>2]|0;if((i|0)>0)j=0;else{h[f>>3]=1.0;return}do{h[a+(j<<3)>>3]=+h[g+(j<<3)>>3];j=j+1|0}while((j|0)!=(i|0));h[f>>3]=1.0;return}function ud(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0;d=l;l=l+16|0;f=d;c[a>>2]=1040;g=a+4|0;c[g>>2]=0;i=a+8|0;c[i>>2]=0;c[a+12>>2]=0;j=e+4|0;qd(g,c[j>>2]|0);e=c[j>>2]|0;if((e|0)<=0){l=d;return}k=b+4|0;m=a+12|0;a=0;n=e;while(1){e=c[k>>2]|0;o=(c[b>>2]|0)+((O(e,a)|0)<<3)|0;if(e){p=+h[o>>3];q=p*p;if((e|0)>1){r=1;p=q;while(1){s=+h[o+(r<<3)>>3];t=p+s*s;r=r+1|0;if((r|0)==(e|0)){u=t;break}else p=t}}else u=q}else u=0.0;p=u==0.0?0.0:1.0/u;h[f>>3]=p;e=c[i>>2]|0;if((e|0)==(c[m>>2]|0)){ae(g,f);v=c[j>>2]|0}else{h[e>>3]=p;c[i>>2]=e+8;v=n}a=a+1|0;if((a|0)>=(v|0))break;else n=v}l=d;return}function vd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0;d=l;l=l+16|0;f=d;c[a>>2]=1068;g=a+4|0;c[g>>2]=0;i=a+8|0;c[i>>2]=0;c[a+12>>2]=0;j=e+4|0;qd(g,c[j>>2]|0);e=c[j>>2]|0;if((e|0)<=0){l=d;return}k=b+4|0;m=a+12|0;a=0;n=e;while(1){e=c[k>>2]|0;o=(c[b>>2]|0)+((O(e,a)|0)<<3)|0;if(e){p=+h[o>>3];q=p*p;if((e|0)>1){r=1;p=q;while(1){s=+h[o+(r<<3)>>3];t=p+s*s;r=r+1|0;if((r|0)==(e|0)){u=t;break}else p=t}}else u=q}else u=0.0;p=u==0.0?0.0:1.0/u;h[f>>3]=p;e=c[i>>2]|0;if((e|0)==(c[m>>2]|0)){ae(g,f);v=c[j>>2]|0}else{h[e>>3]=p;c[i>>2]=e+8;v=n}a=a+1|0;if((a|0)>=(v|0))break;else n=v}l=d;return}function wd(a){a=a|0;return}function xd(a){a=a|0;gg(a);return}function yd(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0;i=l;l=l+16|0;j=i;Bd(a,f);if(!h){l=i;return}f=j+4|0;k=a+4|0;m=0;do{pc[c[(c[b>>2]|0)+16>>2]&7](j,b,d,e,a,g);n=c[j>>2]|0;o=c[a>>2]|0;c[j>>2]=o;c[a>>2]=n;n=c[f>>2]|0;c[f>>2]=c[k>>2];c[k>>2]=n;if(o|0)bg(c[o+-4>>2]|0);m=m+1|0}while(m>>>0<h>>>0);l=i;return}function zd(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;h=+h;var i=0,j=0,k=0,m=0,n=0,o=0;i=l;l=l+16|0;j=i;Bd(a,f);f=j+4|0;k=a+4|0;do{m=!(+Cd(d,e,a,g)<=h);pc[c[(c[b>>2]|0)+16>>2]&7](j,b,d,e,a,g);n=c[j>>2]|0;o=c[a>>2]|0;c[j>>2]=o;c[a>>2]=n;n=c[f>>2]|0;c[f>>2]=c[k>>2];c[k>>2]=n;if(o|0)bg(c[o+-4>>2]|0)}while(m);l=i;return}function Ad(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0.0,Y=0,Z=0,_=0.0,$=0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0,ga=0.0,ha=0.0,ia=0;i=l;l=l+112|0;j=i;k=i+80|0;m=i+72|0;n=i+64|0;o=i+56|0;p=i+48|0;q=b+24|0;h[q>>3]=+h[b+8>>3];r=d;s=f;t=d+8|0;c[m>>2]=0;u=m+4|0;c[u>>2]=0;ad(m,c[t>>2]|0,1);v=c[t>>2]|0;t=c[d+4>>2]|0;d=j+8|0;c[d>>2]=v;c[d+4>>2]=t;h[j+16>>3]=2.0;c[j+24>>2]=r;t=j+32|0;c[t>>2]=r;c[j+36>>2]=s;c[j+40>>2]=e;if((c[u>>2]|0)!=(v|0))ad(m,v,1);Id(m,j,t);w=+h[q>>3];x=1.0/w;y=g/w;c[n>>2]=0;t=n+4|0;c[t>>2]=0;ad(n,c[u>>2]|0,1);v=c[f>>2]|0;d=c[m>>2]|0;z=m+4|0;A=c[z>>2]|0;if((c[t>>2]|0)==(A|0))C=A;else{ad(n,A,1);C=c[t>>2]|0}A=c[n>>2]|0;if((C|0)>0){D=0;do{w=+h[v+(D<<3)>>3]-x*+h[d+(D<<3)>>3];E=+B(+w)-y;h[A+(D<<3)>>3]=(+(w>0.0&1)-+(w<0.0&1))*(E<0.0?0.0:E);D=D+1|0}while((D|0)!=(C|0))}C=n;c[k+4>>2]=r;c[k+8>>2]=C;D=k+12|0;c[D>>2]=e;A=e+4|0;if(!(c[A>>2]|0))F=0.0;else{Ed(j,k+4|0);d=c[D>>2]|0;D=c[d>>2]|0;c[j+12>>2]=D;c[j+16>>2]=k;v=c[j>>2]|0;G=D;y=+h[v>>3]-+h[G>>3];x=y*y;D=c[d+4>>2]|0;if((D|0)>1){d=1;y=x;while(1){E=+h[v+(d<<3)>>3]-+h[G+(d<<3)>>3];w=y+E*E;d=d+1|0;if((d|0)==(D|0)){H=w;break}else y=w}}else H=x;D=c[j+4>>2]|0;if(D|0)bg(c[D+-4>>2]|0);F=H}c[j>>2]=r;c[j+4>>2]=s;c[j+8>>2]=e;Dd(o,j);s=c[o+4>>2]|0;if(s){D=c[o>>2]|0;H=+h[D>>3];x=H*H;if((s|0)>1){d=1;H=x;while(1){y=+h[D+(d<<3)>>3];w=H+y*y;d=d+1|0;if((d|0)==(s|0)){I=w;break}else H=w}}else I=x}else I=0.0;c[p>>2]=0;s=p+4|0;c[s>>2]=0;ad(p,c[f+4>>2]|0,1);d=c[n>>2]|0;D=c[f>>2]|0;G=f+4|0;v=c[G>>2]|0;if((c[s>>2]|0)==(v|0))J=v;else{ad(p,v,1);J=c[s>>2]|0}v=c[p>>2]|0;if((J|0)>0){K=0;do{h[v+(K<<3)>>3]=+h[d+(K<<3)>>3]-+h[D+(K<<3)>>3];K=K+1|0}while((K|0)!=(J|0))}c[j>>2]=j+8;K=(J|0)==0;do if(!K){D=c[m>>2]|0;x=+h[D>>3]*+h[v>>3];if((J|0)>1){L=1;M=x}else{H=+h[v>>3];N=x;O=H*H;P=+h[q>>3];break}do{M=M+ +h[D+(L<<3)>>3]*+h[v+(L<<3)>>3];L=L+1|0}while((L|0)!=(J|0));H=+h[q>>3];if(!K){x=+h[v>>3];w=x*x;if((J|0)>1){D=1;x=w;while(1){y=+h[v+(D<<3)>>3];E=x+y*y;D=D+1|0;if((D|0)==(J|0)){N=M;O=E;P=H;break}else x=E}}else{N=M;O=w;P=H}}else{N=M;O=0.0;P=H}}else{N=0.0;O=0.0;P=+h[q>>3]}while(0);if(F>P*.5*O+(I+N)){J=b+16|0;b=k+4|0;v=k+8|0;K=k+12|0;L=j+8|0;D=k+4|0;d=j+12|0;Q=j+16|0;R=j+4|0;N=P;while(1){O=+h[J>>3]*N;h[q>>3]=O;F=1.0/O;M=g/O;S=c[f>>2]|0;T=c[m>>2]|0;U=c[z>>2]|0;if((c[t>>2]|0)==(U|0))V=U;else{ad(n,U,1);V=c[t>>2]|0}U=c[n>>2]|0;if((V|0)>0){W=0;do{O=+h[S+(W<<3)>>3]-F*+h[T+(W<<3)>>3];x=+B(+O)-M;h[U+(W<<3)>>3]=(+(O>0.0&1)-+(O<0.0&1))*(x<0.0?0.0:x);W=W+1|0}while((W|0)!=(V|0))}c[b>>2]=r;c[v>>2]=C;c[K>>2]=e;if(!(c[A>>2]|0)){X=0.0;Y=U}else{Ed(j,D);W=c[K>>2]|0;T=c[W>>2]|0;c[d>>2]=T;c[Q>>2]=k;S=c[j>>2]|0;Z=T;M=+h[S>>3]-+h[Z>>3];F=M*M;T=c[W+4>>2]|0;if((T|0)>1){W=1;M=F;while(1){H=+h[S+(W<<3)>>3]-+h[Z+(W<<3)>>3];w=M+H*H;W=W+1|0;if((W|0)==(T|0)){_=w;break}else M=w}}else _=F;T=c[R>>2]|0;if(T|0)bg(c[T+-4>>2]|0);X=_;Y=c[n>>2]|0}T=c[f>>2]|0;W=c[G>>2]|0;if((c[s>>2]|0)==(W|0))$=W;else{ad(p,W,1);$=c[s>>2]|0}W=c[p>>2]|0;if(($|0)>0){Z=0;do{h[W+(Z<<3)>>3]=+h[Y+(Z<<3)>>3]-+h[T+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=($|0))}c[j>>2]=L;Z=($|0)==0;do if(!Z){T=c[m>>2]|0;F=+h[T>>3]*+h[W>>3];if(($|0)>1){aa=1;ba=F}else{M=+h[W>>3];ca=F;da=M*M;ea=+h[q>>3];break}do{ba=ba+ +h[T+(aa<<3)>>3]*+h[W+(aa<<3)>>3];aa=aa+1|0}while((aa|0)!=($|0));M=+h[q>>3];if(Z){ca=ba;da=0.0;ea=M}else{F=+h[W>>3];w=F*F;if(($|0)>1){fa=1;ga=w}else{ca=ba;da=w;ea=M;break}while(1){w=+h[W+(fa<<3)>>3];F=ga+w*w;fa=fa+1|0;if((fa|0)==($|0)){ca=ba;da=F;ea=M;break}else ga=F}}}else{ca=0.0;da=0.0;ea=+h[q>>3]}while(0);if(X>ea*.5*da+(I+ca))N=ea;else{ha=ea;break}}}else ha=P;P=1.0/ha;ea=g/ha;c[a>>2]=0;q=a+4|0;c[q>>2]=0;ad(a,c[u>>2]|0,1);u=c[f>>2]|0;f=c[m>>2]|0;$=c[z>>2]|0;if((c[q>>2]|0)==($|0))ia=$;else{ad(a,$,1);ia=c[q>>2]|0}q=c[a>>2]|0;if((ia|0)>0){a=0;do{ha=+h[u+(a<<3)>>3]-P*+h[f+(a<<3)>>3];g=+B(+ha)-ea;h[q+(a<<3)>>3]=(+(ha>0.0&1)-+(ha<0.0&1))*(g<0.0?0.0:g);a=a+1|0}while((a|0)!=(ia|0))}ia=c[p>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[o>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[n>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[m>>2]|0;if(!ia){l=i;return}bg(c[ia+-4>>2]|0);l=i;return}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=b+4|0;e=c[d>>2]|0;if(e){if(e>>>0>536870911){f=mb(4)|0;$g(f);$b(f|0,728,17)}f=e<<3;g=ag(f+16|0)|0;h=g+16&-16;if(!g)i=0;else{c[h+-4>>2]=g;i=h}if((f|0)!=0&(i|0)==0){f=mb(4)|0;$g(f);$b(f|0,728,17)}else j=i}else j=0;c[a>>2]=j;c[a+4>>2]=e;e=c[d>>2]|0;if(!e)return;jh(j|0,c[b>>2]|0,e<<3|0)|0;return}function Cd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0,C=0.0,D=0.0;f=l;l=l+80|0;g=f+56|0;i=f;j=f+72|0;k=a;c[g>>2]=k;c[g+4>>2]=d;c[g+8>>2]=b;Dd(j,g);m=j+4|0;n=c[m>>2]|0;if(n){o=c[j>>2]|0;p=+h[o>>3];q=p*p;if((n|0)>1){r=1;p=q;while(1){s=+h[o+(r<<3)>>3];t=p+s*s;r=r+1|0;if((r|0)==(n|0)){u=t;break}else p=t}}else u=q}else u=0.0;r=c[d+4>>2]|0;if(r){o=c[d>>2]|0;q=+B(+(+h[o>>3]));if((r|0)>1){d=1;p=q;while(1){t=p+ +B(+(+h[o+(d<<3)>>3]));d=d+1|0;if((d|0)==(r|0)){v=t;break}else p=t}}else v=q}else v=0.0;q=u+v*e;r=c[a+8>>2]|0;if(!r){w=0.0;x=n}else{n=c[a+4>>2]|0;a=i+16|0;c[a>>2]=r;c[a+4>>2]=n;h[i+24>>3]=2.0;n=i+32|0;c[n>>2]=k;c[i+40>>2]=j;Gd(g,i+8|0);c[g+12>>2]=i;i=c[g>>2]|0;v=+B(+(+h[i>>3]));k=c[(c[n>>2]|0)+8>>2]|0;if((k|0)>1){n=1;p=v;while(1){t=+B(+(+h[i+(n<<3)>>3]));s=p<t?t:p;n=n+1|0;if((n|0)==(k|0)){y=s;break}else p=s}}else y=v;k=c[g+4>>2]|0;if(k|0)bg(c[k+-4>>2]|0);w=y;x=c[m>>2]|0}y=e/w;c[g>>2]=g+8;if(x){m=c[b>>2]|0;k=c[j>>2]|0;w=+h[m>>3]*+h[k>>3];if((x|0)>1){n=1;v=w;while(1){p=v+ +h[m+(n<<3)>>3]*+h[k+(n<<3)>>3];n=n+1|0;if((n|0)==(x|0)){z=p;break}else v=p}}else z=w}else z=0.0;w=z/u;u=-y;z=y<w?w:y;y=(z>u?u:z)*-2.0/e;z=2.0/e;x=b+4|0;c[g>>2]=0;n=g+4|0;c[n>>2]=0;ad(g,c[x>>2]|0,1);k=c[j>>2]|0;m=c[b>>2]|0;i=c[b+4>>2]|0;if((c[n>>2]|0)==(i|0))A=i;else{ad(g,i,1);A=c[n>>2]|0}n=c[g>>2]|0;if((A|0)>0){g=0;do{h[n+(g<<3)>>3]=y*+h[k+(g<<3)>>3]+z*+h[m+(g<<3)>>3];g=g+1|0}while((g|0)!=(A|0))}z=e*e;if(A){e=+h[n>>3];y=e*e;if((A|0)>1){g=1;e=y;while(1){u=+h[n+(g<<3)>>3];w=e+u*u;g=g+1|0;if((g|0)==(A|0)){C=w;break}else e=w}}else C=y}else C=0.0;A=c[x>>2]|0;if(A){x=c[b>>2]|0;y=+h[x>>3];e=y*y;if((A|0)>1){b=1;y=e;while(1){w=+h[x+(b<<3)>>3];u=y+w*w;b=b+1|0;if((b|0)==(A|0)){D=u;break}else y=u}}else D=e}else D=0.0;e=q+(z*.25*C-D);if(n|0)bg(c[n+-4>>2]|0);n=c[j>>2]|0;if(!n){l=f;return +e}bg(c[n+-4>>2]|0);l=f;return +e}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0;d=l;l=l+16|0;e=d;c[a>>2]=0;f=a+4|0;c[f>>2]=0;g=b+8|0;ad(a,c[(c[g>>2]|0)+4>>2]|0,1);Ed(e,b);b=c[g>>2]|0;c[e+12>>2]=c[b>>2];g=c[b+4>>2]|0;if((c[f>>2]|0)==(g|0))i=g;else{ad(a,g,1);i=c[f>>2]|0}f=c[a>>2]|0;if((i|0)>0){a=c[e>>2]|0;g=c[e+12>>2]|0;b=0;do{h[f+(b<<3)>>3]=+h[a+(b<<3)>>3]-+h[g+(b<<3)>>3];b=b+1|0}while((b|0)!=(i|0))}i=c[e+4>>2]|0;if(!i){l=d;return}bg(c[i+-4>>2]|0);l=d;return}function Ed(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;d=l;l=l+16|0;e=d+8|0;f=d;c[a>>2]=0;g=a+4|0;h=c[(c[b>>2]|0)+4>>2]|0;c[g>>2]=0;i=a+8|0;c[i>>2]=0;ad(g,h,1);h=c[g>>2]|0;c[a>>2]=h;a=c[b>>2]|0;j=c[b+4>>2]|0;b=c[i>>2]|0;if((b|0)>0){fh(h|0,0,b<<3|0)|0;k=c[g>>2]|0}else k=h;h=c[a+4>>2]|0;g=c[a+8>>2]|0;c[e>>2]=c[a>>2];c[e+4>>2]=h;c[f>>2]=c[j>>2];c[f+4>>2]=1;Fd(h,g,e,f,k,1,1.0);l=d;return}function Fd(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.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.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0,fa=0.0,ga=0.0,ha=0,ia=0.0,ja=0,ka=0.0,la=0,ma=0,na=0,oa=0.0;g=c[d+4>>2]|0;j=a+-7|0;k=a+-3|0;l=a+-2|0;m=a+-1|0;n=(b|0)<128?b:g<<3>>>0<32e3?16:4;if((b|0)<=0)return;o=c[d>>2]|0;d=(a|0)>7;p=c[e>>2]|0;q=c[e+4>>2]|0;e=a&-8;r=i*0.0;s=0;do{t=s;s=s+n|0;u=(s|0)>(b|0)?b:s;a:do if(d){if((t|0)<(u|0))v=0;else{w=0;while(1){x=f+(w<<3)|0;h[x>>3]=r+ +h[x>>3];y=x+8|0;h[y>>3]=r+ +h[y>>3];y=x+16|0;h[y>>3]=r+ +h[y>>3];y=x+24|0;h[y>>3]=r+ +h[y>>3];y=x+32|0;h[y>>3]=r+ +h[y>>3];y=x+40|0;h[y>>3]=r+ +h[y>>3];y=x+48|0;h[y>>3]=r+ +h[y>>3];y=x+56|0;h[y>>3]=r+ +h[y>>3];w=w+8|0;if((w|0)>=(j|0)){z=e;break a}}}do{w=v|1;y=v|2;x=v|3;A=v|4;B=v|5;C=v|6;D=v|7;E=t;F=0.0;G=0.0;H=0.0;I=0.0;J=0.0;K=0.0;L=0.0;M=0.0;do{N=+h[p+((O(q,E)|0)<<3)>>3];P=O(E,g)|0;F=F+N*+h[o+(P+v<<3)>>3];G=G+N*+h[o+(P+w<<3)>>3];H=H+N*+h[o+(P+y<<3)>>3];I=I+N*+h[o+(P+x<<3)>>3];J=J+N*+h[o+(P+A<<3)>>3];K=K+N*+h[o+(P+B<<3)>>3];L=L+N*+h[o+(P+C<<3)>>3];M=M+N*+h[o+(P+D<<3)>>3];E=E+1|0}while((E|0)<(u|0));E=f+(v<<3)|0;h[E>>3]=F*i+ +h[E>>3];D=E+8|0;h[D>>3]=G*i+ +h[D>>3];D=E+16|0;h[D>>3]=H*i+ +h[D>>3];D=E+24|0;h[D>>3]=I*i+ +h[D>>3];D=E+32|0;h[D>>3]=J*i+ +h[D>>3];D=E+40|0;h[D>>3]=K*i+ +h[D>>3];D=E+48|0;h[D>>3]=L*i+ +h[D>>3];D=E+56|0;h[D>>3]=M*i+ +h[D>>3];v=v+8|0}while((v|0)<(j|0));z=e}else z=0;while(0);if((z|0)<(k|0)){if((t|0)<(u|0)){D=z|1;E=z|2;C=z|3;B=t;N=0.0;Q=0.0;R=0.0;S=0.0;while(1){T=+h[p+((O(q,B)|0)<<3)>>3];A=O(B,g)|0;U=N+T*+h[o+(A+z<<3)>>3];V=Q+T*+h[o+(A+D<<3)>>3];W=R+T*+h[o+(A+E<<3)>>3];X=S+T*+h[o+(A+C<<3)>>3];B=B+1|0;if((B|0)>=(u|0)){Y=U;Z=V;_=W;$=X;break}else{N=U;Q=V;R=W;S=X}}}else{Y=0.0;Z=0.0;_=0.0;$=0.0}B=f+(z<<3)|0;h[B>>3]=Y*i+ +h[B>>3];C=B+8|0;h[C>>3]=Z*i+ +h[C>>3];C=B+16|0;h[C>>3]=_*i+ +h[C>>3];C=B+24|0;h[C>>3]=$*i+ +h[C>>3];aa=z|4}else aa=z;if((aa|0)<(l|0)){if((t|0)<(u|0)){C=aa+1|0;B=aa+2|0;E=t;S=0.0;R=0.0;Q=0.0;while(1){N=+h[p+((O(q,E)|0)<<3)>>3];D=O(E,g)|0;X=S+N*+h[o+(D+aa<<3)>>3];W=R+N*+h[o+(C+D<<3)>>3];V=Q+N*+h[o+(B+D<<3)>>3];E=E+1|0;if((E|0)>=(u|0)){ba=X;ca=W;da=V;break}else{S=X;R=W;Q=V}}}else{ba=0.0;ca=0.0;da=0.0}E=f+(aa<<3)|0;h[E>>3]=ba*i+ +h[E>>3];B=E+8|0;h[B>>3]=ca*i+ +h[B>>3];B=E+16|0;h[B>>3]=da*i+ +h[B>>3];ea=aa+3|0}else ea=aa;if((ea|0)<(m|0)){if((t|0)<(u|0)){B=ea+1|0;E=t;Q=0.0;R=0.0;while(1){S=+h[p+((O(q,E)|0)<<3)>>3];C=O(E,g)|0;V=R+S*+h[o+(C+ea<<3)>>3];W=Q+S*+h[o+(B+C<<3)>>3];E=E+1|0;if((E|0)>=(u|0)){fa=W;ga=V;break}else{Q=W;R=V}}}else{fa=0.0;ga=0.0}E=f+(ea<<3)|0;h[E>>3]=ga*i+ +h[E>>3];B=E+8|0;h[B>>3]=fa*i+ +h[B>>3];ha=ea+2|0}else ha=ea;if((ha|0)<(a|0)){if((t|0)<(u|0)){B=t;R=0.0;while(1){Q=+h[p+((O(q,B)|0)<<3)>>3];V=R+Q*+h[o+((O(B,g)|0)+ha<<3)>>3];B=B+1|0;if((B|0)>=(u|0)){ia=V;break}else R=V}}else ia=0.0;B=f+(ha<<3)|0;ja=ha;ka=ia*i+ +h[B>>3];la=B;ma=30}else na=ha;while(1){if((ma|0)==30){ma=0;h[la>>3]=ka;na=ja+1|0}if((na|0)>=(a|0))break;if((t|0)<(u|0)){R=0.0;B=t;while(1){E=p+((O(q,B)|0)<<3)|0;V=+h[o+((O(B,g)|0)+na<<3)>>3];Q=R+V*+h[E>>3];B=B+1|0;if((B|0)>=(u|0)){oa=Q;break}else R=Q}}else oa=0.0;B=f+(na<<3)|0;ja=na;ka=oa*i+ +h[B>>3];la=B;ma=30}}while((s|0)<(b|0));return}function Gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0;d=l;l=l+48|0;e=d+8|0;f=d;c[a>>2]=0;g=a+4|0;i=b+24|0;j=c[(c[i>>2]|0)+8>>2]|0;c[g>>2]=0;k=a+8|0;c[k>>2]=0;ad(g,j,1);j=c[g>>2]|0;c[a>>2]=j;a=c[b+32>>2]|0;m=c[k>>2]|0;if((m|0)>0)fh(j|0,0,m<<3|0)|0;h[f>>3]=1.0;m=b+8|0;j=c[m+4>>2]|0;k=e+8|0;c[k>>2]=c[m>>2];c[k+4>>2]=j;h[e+16>>3]=+h[b+16>>3];c[e+24>>2]=c[i>>2];Hd(e,a,g,f);l=d;return}function Hd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=l;l=l+16|0;g=f+8|0;i=f;j=c[a+24>>2]|0;k=+h[e>>3]*+h[a+16>>3];a=c[b+4>>2]|0;if(a>>>0>536870911){e=mb(4)|0;$g(e);$b(e|0,728,17)}e=c[b>>2]|0;m=a<<3;if(!e){do if(m>>>0>=131073){a=ag(m+16|0)|0;n=a+16&-16;if(!a){o=mb(4)|0;$g(o);$b(o|0,728,17)}c[n+-4>>2]=a;if(!n){o=mb(4)|0;$g(o);$b(o|0,728,17)}else{p=n;q=c[b>>2]|0;break}}else{n=l;l=l+((1*(m+15|0)|0)+15&-16)|0;p=n+15&-16;q=0}while(0);r=q;s=p}else{r=e;s=e}e=(r|0)==0?s:0;r=c[j+8>>2]|0;p=c[j+4>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=p;c[i>>2]=s;c[i+4>>2]=1;pd(r,p,g,i,c[d>>2]|0,1,k);if((e|0)==0|m>>>0>131072^1){l=f;return}bg(c[e+-4>>2]|0);l=f;return}function Id(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0;e=l;l=l+64|0;f=e+48|0;g=e+8|0;i=e+40|0;j=e;k=c[a+4>>2]|0;if((k|0)>0)fh(c[a>>2]|0,0,k<<3|0)|0;h[j>>3]=1.0;k=b+8|0;m=c[k+4>>2]|0;n=g+8|0;c[n>>2]=c[k>>2];c[n+4>>2]=m;h[g+16>>3]=+h[b+16>>3];c[g+24>>2]=c[b+24>>2];c[i>>2]=0;b=i+4|0;c[b>>2]=0;Ed(f,d);m=c[d+8>>2]|0;c[f+12>>2]=c[m>>2];d=c[m+4>>2]|0;if(d|0?(ad(i,d,1),d=c[b>>2]|0,b=c[i>>2]|0,(d|0)>0):0){m=c[f>>2]|0;n=c[f+12>>2]|0;k=0;do{h[b+(k<<3)>>3]=+h[m+(k<<3)>>3]-+h[n+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}d=c[f+4>>2]|0;if(d|0)bg(c[d+-4>>2]|0);Hd(g,i,a,j);j=c[i>>2]|0;if(!j){l=e;return}bg(c[j+-4>>2]|0);l=e;return}function Jd(a){a=a|0;gg(a);return}function Kd(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0.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;j=l;l=l+112|0;k=j+88|0;m=j+84|0;n=j+8|0;o=j;p=j+72|0;q=j+64|0;r=j+48|0;s=j+36|0;t=j+24|0;u=j+16|0;v=g*.5;Bd(a,f);f=d+4|0;w=c[f>>2]|0;x=d+8|0;y=c[x>>2]|0;z=O(y,w)|0;do if(z){if(z>>>0>536870911){A=mb(4)|0;$g(A);$b(A|0,728,17)}A=z<<3;B=ag(A+16|0)|0;D=B+16&-16;if(!B)E=0;else{c[D+-4>>2]=B;E=D}if((A|0)!=0&(E|0)==0){A=mb(4)|0;$g(A);$b(A|0,728,17)}else{c[p>>2]=E;A=p+4|0;c[A>>2]=w;D=p+8|0;c[D>>2]=y;jh(E|0,c[d>>2]|0,z<<3|0)|0;F=A;G=D;break}}else{c[p>>2]=0;D=p+4|0;c[D>>2]=w;A=p+8|0;c[A>>2]=y;F=D;G=A}while(0);Bd(q,a);c[r>>2]=0;y=r+4|0;c[y>>2]=0;c[r+8>>2]=0;c[s>>2]=0;w=s+4|0;c[w>>2]=0;c[s+8>>2]=0;Uc(t,c[x>>2]|0);x=c[t>>2]|0;z=t+4|0;E=c[z>>2]|0;if((x|0)!=(E|0)){A=0;D=x;while(1){c[D>>2]=A;D=D+4|0;if((D|0)==(E|0))break;else A=A+1|0}}if(!i)H=x;else{I=g*g;x=r+8|0;A=k+4|0;E=k+8|0;D=k+4|0;B=k+8|0;J=k+4|0;K=q+4|0;L=k+4|0;M=0;do{Nd(u,p,e,q,v);N=+Od(p,e,q,u,v);if(!((M>>>0)%10|0)){Pd(k,d,u,+C(+(N*2.0/I)));P=c[r>>2]|0;if(P|0){Q=c[y>>2]|0;if((Q|0)!=(P|0))c[y>>2]=Q+(~((Q+-4-P|0)>>>2)<<2);gg(P);c[x>>2]=0;c[y>>2]=0;c[r>>2]=0}P=c[k>>2]|0;c[r>>2]=P;Q=c[A>>2]|0;c[y>>2]=Q;c[x>>2]=c[E>>2];R=c[f>>2]|0;c[k>>2]=0;c[D>>2]=0;c[B>>2]=0;$c(k,R,Q-P>>2);P=c[y>>2]|0;Q=c[r>>2]|0;R=Q;if((P|0)!=(Q|0)){S=c[d>>2]|0;T=c[f>>2]|0;U=c[k>>2]|0;V=c[D>>2]|0;W=P-Q>>2;Q=U;if((V|0)>0){P=0;do{X=S+((O(c[R+(P<<2)>>2]|0,T)|0)<<3)|0;Y=U+((O(P,V)|0)<<3)|0;Z=0;do{h[Y+(Z<<3)>>3]=+h[X+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(V|0));P=P+1|0}while(P>>>0<W>>>0);_=Q}else _=Q}else _=c[k>>2]|0;W=c[p>>2]|0;c[k>>2]=W;c[p>>2]=_;P=c[D>>2]|0;c[D>>2]=c[F>>2];c[F>>2]=P;P=c[B>>2]|0;c[B>>2]=c[G>>2];c[G>>2]=P;if(W|0)bg(c[W+-4>>2]|0);Qd(k,a,r);W=c[k>>2]|0;P=c[q>>2]|0;c[k>>2]=P;c[q>>2]=W;W=c[J>>2]|0;c[J>>2]=c[K>>2];c[K>>2]=W;if(P|0)bg(c[P+-4>>2]|0);P=c[t>>2]|0;W=c[z>>2]|0;V=c[r>>2]|0;U=c[y>>2]|0;T=c[s>>2]|0;c[n>>2]=V;c[o>>2]=P;a:do if((P|0)!=(W|0)){if((V|0)==(U|0)){$=P;aa=T}else{R=P;S=V;Z=T;while(1){X=c[R>>2]|0;Y=c[S>>2]|0;if(X>>>0>=Y>>>0)if(Y>>>0<X>>>0){ba=n;ca=S;da=Z}else{c[o>>2]=R+4;ba=n;ca=S;da=Z}else{c[m>>2]=Z;c[k>>2]=c[m>>2];ba=o;ca=R;da=(Wc(s,k,R)|0)+4|0}c[ba>>2]=ca+4;X=c[o>>2]|0;if((X|0)==(W|0))break a;S=c[n>>2]|0;if((S|0)==(U|0)){$=X;aa=da;break}else{R=X;Z=da}}}if(($|0)!=(W|0)){Z=$;R=aa;do{c[m>>2]=R;c[k>>2]=c[m>>2];R=(Wc(s,k,Z)|0)+4|0;Z=Z+4|0}while((Z|0)!=(W|0))}}while(0)}pc[c[(c[b>>2]|0)+16>>2]&7](k,b,p,e,q,g);W=c[k>>2]|0;U=c[q>>2]|0;c[k>>2]=U;c[q>>2]=W;W=c[L>>2]|0;c[L>>2]=c[K>>2];c[K>>2]=W;if(U|0)bg(c[U+-4>>2]|0);U=c[y>>2]|0;W=c[r>>2]|0;T=W;if((U|0)!=(W|0)){V=c[q>>2]|0;P=c[a>>2]|0;Q=U-W>>2;W=0;do{h[P+(c[T+(W<<2)>>2]<<3)>>3]=+h[V+(W<<3)>>3];W=W+1|0}while(W>>>0<Q>>>0)}Q=c[s>>2]|0;W=c[w>>2]|0;if((Q|0)!=(W|0)){V=c[a>>2]|0;T=Q;do{h[V+(c[T>>2]<<3)>>3]=0.0;T=T+4|0}while((T|0)!=(W|0))}W=c[u>>2]|0;if(W|0)bg(c[W+-4>>2]|0);M=M+1|0}while(M>>>0<i>>>0);H=c[t>>2]|0}if(H|0){t=c[z>>2]|0;if((t|0)!=(H|0))c[z>>2]=t+(~((t+-4-H|0)>>>2)<<2);gg(H)}H=c[s>>2]|0;if(H|0){s=c[w>>2]|0;if((s|0)!=(H|0))c[w>>2]=s+(~((s+-4-H|0)>>>2)<<2);gg(H)}H=c[r>>2]|0;if(H|0){r=c[y>>2]|0;if((r|0)!=(H|0))c[y>>2]=r+(~((r+-4-H|0)>>>2)<<2);gg(H)}H=c[q>>2]|0;if(H|0)bg(c[H+-4>>2]|0);H=c[p>>2]|0;if(!H){l=j;return}bg(c[H+-4>>2]|0);l=j;return}function Ld(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;i=+i;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0.0,N=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;j=l;l=l+112|0;k=j+88|0;m=j+84|0;n=j+8|0;o=j;p=j+72|0;q=j+64|0;r=j+48|0;s=j+36|0;t=j+24|0;u=j+16|0;v=g*.5;Bd(a,f);f=d+4|0;w=c[f>>2]|0;x=d+8|0;y=c[x>>2]|0;z=O(y,w)|0;do if(z){if(z>>>0>536870911){A=mb(4)|0;$g(A);$b(A|0,728,17)}A=z<<3;B=ag(A+16|0)|0;D=B+16&-16;if(!B)E=0;else{c[D+-4>>2]=B;E=D}if((A|0)!=0&(E|0)==0){A=mb(4)|0;$g(A);$b(A|0,728,17)}else{c[p>>2]=E;A=p+4|0;c[A>>2]=w;D=p+8|0;c[D>>2]=y;jh(E|0,c[d>>2]|0,z<<3|0)|0;F=A;G=D;break}}else{c[p>>2]=0;D=p+4|0;c[D>>2]=w;A=p+8|0;c[A>>2]=y;F=D;G=A}while(0);Bd(q,a);c[r>>2]=0;y=r+4|0;c[y>>2]=0;c[r+8>>2]=0;c[s>>2]=0;w=s+4|0;c[w>>2]=0;c[s+8>>2]=0;Uc(t,c[x>>2]|0);x=c[t>>2]|0;z=t+4|0;E=c[z>>2]|0;if((x|0)!=(E|0)){A=0;D=x;while(1){c[D>>2]=A;D=D+4|0;if((D|0)==(E|0))break;else A=A+1|0}}H=g*g;A=r+8|0;E=k+4|0;D=k+8|0;x=k+4|0;B=k+8|0;I=k+4|0;J=q+4|0;K=k+4|0;L=0;while(1){Nd(u,p,e,q,v);M=+Od(p,e,q,u,v);N=!(M<=i);if(!((L>>>0)%10|0)){Pd(k,d,u,+C(+(M*2.0/H)));P=c[r>>2]|0;if(P|0){Q=c[y>>2]|0;if((Q|0)!=(P|0))c[y>>2]=Q+(~((Q+-4-P|0)>>>2)<<2);gg(P);c[A>>2]=0;c[y>>2]=0;c[r>>2]=0}P=c[k>>2]|0;c[r>>2]=P;Q=c[E>>2]|0;c[y>>2]=Q;c[A>>2]=c[D>>2];R=c[f>>2]|0;c[k>>2]=0;c[x>>2]=0;c[B>>2]=0;$c(k,R,Q-P>>2);P=c[y>>2]|0;Q=c[r>>2]|0;R=Q;if((P|0)!=(Q|0)){S=c[d>>2]|0;T=c[f>>2]|0;U=c[k>>2]|0;V=c[x>>2]|0;W=P-Q>>2;Q=U;if((V|0)>0){P=0;do{X=S+((O(c[R+(P<<2)>>2]|0,T)|0)<<3)|0;Y=U+((O(P,V)|0)<<3)|0;Z=0;do{h[Y+(Z<<3)>>3]=+h[X+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(V|0));P=P+1|0}while(P>>>0<W>>>0);_=Q}else _=Q}else _=c[k>>2]|0;W=c[p>>2]|0;c[k>>2]=W;c[p>>2]=_;P=c[x>>2]|0;c[x>>2]=c[F>>2];c[F>>2]=P;P=c[B>>2]|0;c[B>>2]=c[G>>2];c[G>>2]=P;if(W|0)bg(c[W+-4>>2]|0);Qd(k,a,r);W=c[k>>2]|0;P=c[q>>2]|0;c[k>>2]=P;c[q>>2]=W;W=c[I>>2]|0;c[I>>2]=c[J>>2];c[J>>2]=W;if(P|0)bg(c[P+-4>>2]|0);P=c[t>>2]|0;W=c[z>>2]|0;V=c[r>>2]|0;U=c[y>>2]|0;T=c[s>>2]|0;c[n>>2]=V;c[o>>2]=P;a:do if((P|0)!=(W|0)){if((V|0)==(U|0)){$=P;aa=T}else{R=P;S=V;Z=T;while(1){X=c[R>>2]|0;Y=c[S>>2]|0;if(X>>>0>=Y>>>0)if(Y>>>0<X>>>0){ba=n;ca=S;da=Z}else{c[o>>2]=R+4;ba=n;ca=S;da=Z}else{c[m>>2]=Z;c[k>>2]=c[m>>2];ba=o;ca=R;da=(Wc(s,k,R)|0)+4|0}c[ba>>2]=ca+4;X=c[o>>2]|0;if((X|0)==(W|0))break a;S=c[n>>2]|0;if((S|0)==(U|0)){$=X;aa=da;break}else{R=X;Z=da}}}if(($|0)!=(W|0)){Z=$;R=aa;do{c[m>>2]=R;c[k>>2]=c[m>>2];R=(Wc(s,k,Z)|0)+4|0;Z=Z+4|0}while((Z|0)!=(W|0))}}while(0)}pc[c[(c[b>>2]|0)+16>>2]&7](k,b,p,e,q,g);W=c[k>>2]|0;U=c[q>>2]|0;c[k>>2]=U;c[q>>2]=W;W=c[K>>2]|0;c[K>>2]=c[J>>2];c[J>>2]=W;if(U|0)bg(c[U+-4>>2]|0);U=c[y>>2]|0;W=c[r>>2]|0;T=W;if((U|0)!=(W|0)){V=c[q>>2]|0;P=c[a>>2]|0;Q=U-W>>2;W=0;do{h[P+(c[T+(W<<2)>>2]<<3)>>3]=+h[V+(W<<3)>>3];W=W+1|0}while(W>>>0<Q>>>0)}Q=c[s>>2]|0;W=c[w>>2]|0;if((Q|0)!=(W|0)){V=c[a>>2]|0;T=Q;do{h[V+(c[T>>2]<<3)>>3]=0.0;T=T+4|0}while((T|0)!=(W|0))}W=c[u>>2]|0;if(W|0)bg(c[W+-4>>2]|0);if(N)L=L+1|0;else break}L=c[t>>2]|0;if(L|0){t=c[z>>2]|0;if((t|0)!=(L|0))c[z>>2]=t+(~((t+-4-L|0)>>>2)<<2);gg(L)}L=c[s>>2]|0;if(L|0){s=c[w>>2]|0;if((s|0)!=(L|0))c[w>>2]=s+(~((s+-4-L|0)>>>2)<<2);gg(L)}L=c[r>>2]|0;if(L|0){r=c[y>>2]|0;if((r|0)!=(L|0))c[y>>2]=r+(~((r+-4-L|0)>>>2)<<2);gg(L)}L=c[q>>2]|0;if(L|0)bg(c[L+-4>>2]|0);L=c[p>>2]|0;if(!L){l=j;return}bg(c[L+-4>>2]|0);l=j;return}function Md(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0.0,Y=0,Z=0,_=0.0,$=0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0,ga=0.0,ha=0.0,ia=0;i=l;l=l+112|0;j=i;k=i+80|0;m=i+72|0;n=i+64|0;o=i+56|0;p=i+48|0;q=b+24|0;h[q>>3]=+h[b+8>>3];r=d;s=f;t=d+8|0;c[m>>2]=0;u=m+4|0;c[u>>2]=0;ad(m,c[t>>2]|0,1);v=c[t>>2]|0;t=c[d+4>>2]|0;d=j+8|0;c[d>>2]=v;c[d+4>>2]=t;h[j+16>>3]=2.0;c[j+24>>2]=r;t=j+32|0;c[t>>2]=r;c[j+36>>2]=s;c[j+40>>2]=e;if((c[u>>2]|0)!=(v|0))ad(m,v,1);Id(m,j,t);w=+h[q>>3];x=1.0/w;y=g/w;c[n>>2]=0;t=n+4|0;c[t>>2]=0;ad(n,c[u>>2]|0,1);v=c[f>>2]|0;d=c[m>>2]|0;z=m+4|0;A=c[z>>2]|0;if((c[t>>2]|0)==(A|0))C=A;else{ad(n,A,1);C=c[t>>2]|0}A=c[n>>2]|0;if((C|0)>0){D=0;do{w=+h[v+(D<<3)>>3]-x*+h[d+(D<<3)>>3];E=+B(+w)-y;h[A+(D<<3)>>3]=(+(w>0.0&1)-+(w<0.0&1))*(E<0.0?0.0:E);D=D+1|0}while((D|0)!=(C|0))}C=n;c[k+4>>2]=r;c[k+8>>2]=C;D=k+12|0;c[D>>2]=e;A=e+4|0;if(!(c[A>>2]|0))F=0.0;else{Ed(j,k+4|0);d=c[D>>2]|0;D=c[d>>2]|0;c[j+12>>2]=D;c[j+16>>2]=k;v=c[j>>2]|0;G=D;y=+h[v>>3]-+h[G>>3];x=y*y;D=c[d+4>>2]|0;if((D|0)>1){d=1;y=x;while(1){E=+h[v+(d<<3)>>3]-+h[G+(d<<3)>>3];w=y+E*E;d=d+1|0;if((d|0)==(D|0)){H=w;break}else y=w}}else H=x;D=c[j+4>>2]|0;if(D|0)bg(c[D+-4>>2]|0);F=H}c[j>>2]=r;c[j+4>>2]=s;c[j+8>>2]=e;Dd(o,j);s=c[o+4>>2]|0;if(s){D=c[o>>2]|0;H=+h[D>>3];x=H*H;if((s|0)>1){d=1;H=x;while(1){y=+h[D+(d<<3)>>3];w=H+y*y;d=d+1|0;if((d|0)==(s|0)){I=w;break}else H=w}}else I=x}else I=0.0;c[p>>2]=0;s=p+4|0;c[s>>2]=0;ad(p,c[f+4>>2]|0,1);d=c[n>>2]|0;D=c[f>>2]|0;G=f+4|0;v=c[G>>2]|0;if((c[s>>2]|0)==(v|0))J=v;else{ad(p,v,1);J=c[s>>2]|0}v=c[p>>2]|0;if((J|0)>0){K=0;do{h[v+(K<<3)>>3]=+h[d+(K<<3)>>3]-+h[D+(K<<3)>>3];K=K+1|0}while((K|0)!=(J|0))}c[j>>2]=j+8;K=(J|0)==0;do if(!K){D=c[m>>2]|0;x=+h[D>>3]*+h[v>>3];if((J|0)>1){L=1;M=x}else{H=+h[v>>3];N=x;O=H*H;P=+h[q>>3];break}do{M=M+ +h[D+(L<<3)>>3]*+h[v+(L<<3)>>3];L=L+1|0}while((L|0)!=(J|0));H=+h[q>>3];if(!K){x=+h[v>>3];w=x*x;if((J|0)>1){D=1;x=w;while(1){y=+h[v+(D<<3)>>3];E=x+y*y;D=D+1|0;if((D|0)==(J|0)){N=M;O=E;P=H;break}else x=E}}else{N=M;O=w;P=H}}else{N=M;O=0.0;P=H}}else{N=0.0;O=0.0;P=+h[q>>3]}while(0);if(F>P*.5*O+(I+N)){J=b+16|0;b=k+4|0;v=k+8|0;K=k+12|0;L=j+8|0;D=k+4|0;d=j+12|0;Q=j+16|0;R=j+4|0;N=P;while(1){O=+h[J>>3]*N;h[q>>3]=O;F=1.0/O;M=g/O;S=c[f>>2]|0;T=c[m>>2]|0;U=c[z>>2]|0;if((c[t>>2]|0)==(U|0))V=U;else{ad(n,U,1);V=c[t>>2]|0}U=c[n>>2]|0;if((V|0)>0){W=0;do{O=+h[S+(W<<3)>>3]-F*+h[T+(W<<3)>>3];x=+B(+O)-M;h[U+(W<<3)>>3]=(+(O>0.0&1)-+(O<0.0&1))*(x<0.0?0.0:x);W=W+1|0}while((W|0)!=(V|0))}c[b>>2]=r;c[v>>2]=C;c[K>>2]=e;if(!(c[A>>2]|0)){X=0.0;Y=U}else{Ed(j,D);W=c[K>>2]|0;T=c[W>>2]|0;c[d>>2]=T;c[Q>>2]=k;S=c[j>>2]|0;Z=T;M=+h[S>>3]-+h[Z>>3];F=M*M;T=c[W+4>>2]|0;if((T|0)>1){W=1;M=F;while(1){H=+h[S+(W<<3)>>3]-+h[Z+(W<<3)>>3];w=M+H*H;W=W+1|0;if((W|0)==(T|0)){_=w;break}else M=w}}else _=F;T=c[R>>2]|0;if(T|0)bg(c[T+-4>>2]|0);X=_;Y=c[n>>2]|0}T=c[f>>2]|0;W=c[G>>2]|0;if((c[s>>2]|0)==(W|0))$=W;else{ad(p,W,1);$=c[s>>2]|0}W=c[p>>2]|0;if(($|0)>0){Z=0;do{h[W+(Z<<3)>>3]=+h[Y+(Z<<3)>>3]-+h[T+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=($|0))}c[j>>2]=L;Z=($|0)==0;do if(!Z){T=c[m>>2]|0;F=+h[T>>3]*+h[W>>3];if(($|0)>1){aa=1;ba=F}else{M=+h[W>>3];ca=F;da=M*M;ea=+h[q>>3];break}do{ba=ba+ +h[T+(aa<<3)>>3]*+h[W+(aa<<3)>>3];aa=aa+1|0}while((aa|0)!=($|0));M=+h[q>>3];if(Z){ca=ba;da=0.0;ea=M}else{F=+h[W>>3];w=F*F;if(($|0)>1){fa=1;ga=w}else{ca=ba;da=w;ea=M;break}while(1){w=+h[W+(fa<<3)>>3];F=ga+w*w;fa=fa+1|0;if((fa|0)==($|0)){ca=ba;da=F;ea=M;break}else ga=F}}}else{ca=0.0;da=0.0;ea=+h[q>>3]}while(0);if(X>ea*.5*da+(I+ca))N=ea;else{ha=ea;break}}}else ha=P;P=1.0/ha;ea=g/ha;c[a>>2]=0;q=a+4|0;c[q>>2]=0;ad(a,c[u>>2]|0,1);u=c[f>>2]|0;f=c[m>>2]|0;$=c[z>>2]|0;if((c[q>>2]|0)==($|0))ia=$;else{ad(a,$,1);ia=c[q>>2]|0}q=c[a>>2]|0;if((ia|0)>0){a=0;do{ha=+h[u+(a<<3)>>3]-P*+h[f+(a<<3)>>3];g=+B(+ha)-ea;h[q+(a<<3)>>3]=(+(ha>0.0&1)-+(ha<0.0&1))*(g<0.0?0.0:g);a=a+1|0}while((a|0)!=(ia|0))}ia=c[p>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[o>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[n>>2]|0;if(ia|0)bg(c[ia+-4>>2]|0);ia=c[m>>2]|0;if(!ia){l=i;return}bg(c[ia+-4>>2]|0);l=i;return}function Nd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0;g=l;l=l+48|0;i=g+16|0;j=g;k=g+32|0;m=b;c[i>>2]=d;c[i+4>>2]=m;c[i+8>>2]=e;Rd(k,i);if(!(c[b+8>>2]|0))n=0.0;else{c[j>>2]=m;c[j+4>>2]=k;nd(i,j);c[i+12>>2]=j;m=c[i>>2]|0;o=+B(+(+h[m>>3]));b=c[(c[j>>2]|0)+8>>2]|0;if((b|0)>1){j=1;p=o;while(1){q=+B(+(+h[m+(j<<3)>>3]));r=p<q?q:p;j=j+1|0;if((j|0)==(b|0)){s=r;break}else p=r}}else s=o;b=c[i+4>>2]|0;if(b|0)bg(c[b+-4>>2]|0);n=s}s=1.0/n;c[i>>2]=i+8;i=c[k+4>>2]|0;b=(i|0)==0;do if(!b){j=c[d>>2]|0;m=c[k>>2]|0;n=+h[j>>3]*+h[m>>3];if((i|0)>1){t=1;u=n}else{o=+h[c[k>>2]>>3];v=n;w=o*o;break}do{u=u+ +h[j+(t<<3)>>3]*+h[m+(t<<3)>>3];t=t+1|0}while((t|0)!=(i|0));if(!b){m=c[k>>2]|0;o=+h[m>>3];n=o*o;if((i|0)>1){j=1;o=n;while(1){p=+h[m+(j<<3)>>3];r=o+p*p;j=j+1|0;if((j|0)==(i|0)){v=u;w=r;break}else o=r}}else{v=u;w=n}}else{v=u;w=0.0}}else{v=0.0;w=0.0}while(0);u=v/(w*f);f=-s;w=u<f?f:u;u=s<w?s:w;c[a>>2]=0;b=a+4|0;c[b>>2]=0;ad(a,i,1);i=c[k>>2]|0;t=c[k+4>>2]|0;if((c[b>>2]|0)==(t|0))x=t;else{ad(a,t,1);x=c[b>>2]|0}b=c[a>>2]|0;if((x|0)>0){a=0;do{h[b+(a<<3)>>3]=u*+h[i+(a<<3)>>3];a=a+1|0}while((a|0)!=(x|0))}x=c[k>>2]|0;if(!x){l=g;return}bg(c[x+-4>>2]|0);l=g;return}function Od(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,C=0,D=0.0;g=l;l=l+48|0;i=g+24|0;j=g;c[j+4>>2]=b;k=j+8|0;c[k>>2]=a;c[j+12>>2]=d;if(!(c[a+4>>2]|0))m=0.0;else{c[i>>2]=c[b>>2];Ed(i+4|0,k);c[i+16>>2]=j;j=c[i>>2]|0;a=c[i+4>>2]|0;n=+h[j>>3]-+h[a>>3];o=n*n;p=c[(c[k>>2]|0)+4>>2]|0;if((p|0)>1){k=1;n=o;while(1){q=+h[j+(k<<3)>>3]-+h[a+(k<<3)>>3];r=n+q*q;k=k+1|0;if((k|0)==(p|0)){s=r;break}else n=r}}else s=o;p=c[i+8>>2]|0;if(p|0)bg(c[p+-4>>2]|0);m=s}s=m*.5;p=c[d+4>>2]|0;if(p){i=c[d>>2]|0;m=+B(+(+h[i>>3]));if((p|0)>1){d=1;o=m;while(1){n=o+ +B(+(+h[i+(d<<3)>>3]));d=d+1|0;if((d|0)==(p|0)){t=n;break}else o=n}}else t=m}else t=0.0;m=s+t*f;p=c[b+4>>2]|0;if(!p){u=0.0;v=f*f*.5;w=0.0;x=v*u;y=w-x;z=m-y;l=g;return +z}d=c[b>>2]|0;t=+h[d>>3];s=t*t;b=(p|0)>1;if(b){i=1;o=s;while(1){n=+h[d+(i<<3)>>3];r=o+n*n;i=i+1|0;if((i|0)==(p|0)){A=r;break}else o=r}}else A=s;s=A*.5;A=f*f*.5;i=c[e>>2]|0;o=+h[i>>3]-t/f;t=o*o;if(b){C=1;D=t}else{u=t;v=A;w=s;x=v*u;y=w-x;z=m-y;l=g;return +z}while(1){t=+h[i+(C<<3)>>3]-+h[d+(C<<3)>>3]/f;o=D+t*t;C=C+1|0;if((C|0)==(p|0)){u=o;v=A;w=s;break}else D=o}x=v*u;y=w-x;z=m-y;l=g;return +z}function Pd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0,i=0,j=0,k=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.0,y=0,z=0.0,A=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0;f=l;l=l+32|0;g=f;i=f+24|0;j=f+16|0;k=c[b+8>>2]|0;c[a>>2]=0;m=a+4|0;c[m>>2]=0;c[a+8>>2]=0;c[i>>2]=0;if(!k){l=f;return}n=b+4|0;o=j+4|0;p=g+8|0;q=d+4|0;r=a+8|0;s=0;do{t=c[n>>2]|0;u=(c[b>>2]|0)+((O(t,s)|0)<<3)|0;c[j>>2]=0;c[o>>2]=0;ad(j,t,1);if((c[o>>2]|0)==(t|0))v=t;else{ad(j,t,1);v=c[o>>2]|0}t=c[j>>2]|0;if((v|0)>0){w=0;do{h[t+(w<<3)>>3]=+h[u+(w<<3)>>3];w=w+1|0}while((w|0)!=(v|0))}c[g>>2]=p;w=c[q>>2]|0;if(w){u=c[d>>2]|0;x=+h[t>>3]*+h[u>>3];if((w|0)>1){y=1;z=x;while(1){A=z+ +h[t+(y<<3)>>3]*+h[u+(y<<3)>>3];y=y+1|0;if((y|0)==(w|0)){D=A;break}else z=A}}else D=x}else D=0.0;z=+B(+D);if(v){A=+h[t>>3];E=A*A;if((v|0)>1){w=1;A=E;while(1){F=+h[t+(w<<3)>>3];G=A+F*F;w=w+1|0;if((w|0)==(v|0)){H=G;break}else A=G}}else H=E}else H=0.0;do if(z+ +C(+H)*e>=1.0){w=c[m>>2]|0;if((w|0)==(c[r>>2]|0)){Vc(a,i);I=c[j>>2]|0;break}else{c[w>>2]=c[i>>2];c[m>>2]=w+4;I=t;break}}else I=t;while(0);if(I|0)bg(c[I+-4>>2]|0);s=(c[i>>2]|0)+1|0;c[i>>2]=s}while(s>>>0<k>>>0);l=f;return}function Qd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d+4|0;f=c[e>>2]|0;g=c[d>>2]|0;i=f-g|0;j=i>>2;c[a>>2]=0;k=a+4|0;c[k>>2]=0;do if(j){if(j>>>0>536870911){l=mb(4)|0;$g(l);$b(l|0,728,17)}l=i<<1;m=ag(l+16|0)|0;n=m+16&-16;if(!m)o=0;else{c[n+-4>>2]=m;o=n}if((l|0)!=0&(o|0)==0){l=mb(4)|0;$g(l);$b(l|0,728,17)}else{c[a>>2]=o;p=c[d>>2]|0;q=c[e>>2]|0;r=o;break}}else{p=g;q=f;r=0}while(0);f=p;c[k>>2]=j;if((q|0)==(p|0))return;j=c[b>>2]|0;b=q-p>>2;p=0;do{h[r+(p<<3)>>3]=+h[j+(c[f+(p<<2)>>2]<<3)>>3];p=p+1|0}while(p>>>0<b>>>0);return}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0;d=l;l=l+16|0;e=d+8|0;f=d;c[a>>2]=0;g=a+4|0;c[g>>2]=0;i=b+4|0;ad(a,c[(c[i>>2]|0)+4>>2]|0,1);j=c[b>>2]|0;k=c[j>>2]|0;m=c[j+4>>2]|0;if((c[g>>2]|0)==(m|0))n=m;else{ad(a,m,1);n=c[g>>2]|0}g=c[a>>2]|0;if((n|0)>0){a=0;do{h[g+(a<<3)>>3]=+h[k+(a<<3)>>3];a=a+1|0}while((a|0)!=(n|0))}n=c[i>>2]|0;i=c[b+8>>2]|0;b=c[n+4>>2]|0;a=c[n+8>>2]|0;c[e>>2]=c[n>>2];c[e+4>>2]=b;c[f>>2]=c[i>>2];c[f+4>>2]=1;Fd(b,a,e,f,g,1,-1.0);l=d;return}function Sd(a){a=a|0;var b=0;c[a>>2]=984;b=c[a+32>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+24>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+16>>2]|0;if(!b)return;bg(c[b+-4>>2]|0);return}function Td(a){a=a|0;var b=0;c[a>>2]=984;b=c[a+32>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+24>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+16>>2]|0;if(!b){gg(a);return}bg(c[b+-4>>2]|0);gg(a);return}function Ud(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0.0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0.0,P=0.0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0,ea=0,fa=0,ga=0.0,ha=0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0.0,na=0,oa=0.0,pa=0,qa=0,ra=0,sa=0,ta=0;i=l;l=l+112|0;j=i;k=i+88|0;m=i+80|0;n=i+72|0;o=i+64|0;p=i+56|0;q=i+48|0;r=b+64|0;h[r>>3]=+h[b+8>>3];s=b+16|0;t=c[f>>2]|0;u=c[f+4>>2]|0;v=b+20|0;if((c[v>>2]|0)==(u|0))w=u;else{ad(s,u,1);w=c[v>>2]|0}u=c[s>>2]|0;if((w|0)>0){x=0;do{h[u+(x<<3)>>3]=+h[t+(x<<3)>>3];x=x+1|0}while((x|0)!=(w|0))}x=b+24|0;t=b+28|0;if((c[t>>2]|0)==(w|0))y=w;else{ad(x,w,1);y=c[t>>2]|0}w=c[x>>2]|0;if((y|0)>0){z=0;do{h[w+(z<<3)>>3]=+h[u+(z<<3)>>3];z=z+1|0}while((z|0)!=(y|0))}y=d;z=x;u=d+8|0;c[m>>2]=0;w=m+4|0;c[w>>2]=0;ad(m,c[u>>2]|0,1);A=c[u>>2]|0;u=c[d+4>>2]|0;d=j+8|0;c[d>>2]=A;c[d+4>>2]=u;h[j+16>>3]=2.0;c[j+24>>2]=y;u=j+32|0;c[u>>2]=y;c[j+36>>2]=z;c[j+40>>2]=e;if((c[w>>2]|0)!=(A|0))ad(m,A,1);Id(m,j,u);D=1.0/+h[r>>3];c[n>>2]=0;u=n+4|0;c[u>>2]=0;ad(n,c[w>>2]|0,1);w=c[x>>2]|0;A=c[m>>2]|0;d=m+4|0;E=c[d>>2]|0;if((c[u>>2]|0)==(E|0))F=E;else{ad(n,E,1);F=c[u>>2]|0}E=c[n>>2]|0;if((F|0)>0){G=0;do{h[E+(G<<3)>>3]=+h[w+(G<<3)>>3]-D*+h[A+(G<<3)>>3];G=G+1|0}while((G|0)!=(F|0))}D=g/+h[r>>3];c[o>>2]=0;G=o+4|0;c[G>>2]=0;ad(o,F,1);F=c[n>>2]|0;A=c[n+4>>2]|0;if((c[G>>2]|0)==(A|0))H=A;else{ad(o,A,1);H=c[G>>2]|0}A=c[o>>2]|0;if((H|0)>0){w=0;do{I=+h[F+(w<<3)>>3];J=+B(+I)-D;h[A+(w<<3)>>3]=(+(I>0.0&1)-+(I<0.0&1))*(J<0.0?0.0:J);w=w+1|0}while((w|0)!=(H|0))}H=o;c[k+4>>2]=y;c[k+8>>2]=H;w=k+12|0;c[w>>2]=e;A=e+4|0;if(!(c[A>>2]|0))K=0.0;else{Ed(j,k+4|0);F=c[w>>2]|0;w=c[F>>2]|0;c[j+12>>2]=w;c[j+16>>2]=k;E=c[j>>2]|0;L=w;D=+h[E>>3]-+h[L>>3];J=D*D;w=c[F+4>>2]|0;if((w|0)>1){F=1;D=J;while(1){I=+h[E+(F<<3)>>3]-+h[L+(F<<3)>>3];M=D+I*I;F=F+1|0;if((F|0)==(w|0)){N=M;break}else D=M}}else N=J;w=c[j+4>>2]|0;if(w|0)bg(c[w+-4>>2]|0);K=N}c[j>>2]=y;c[j+4>>2]=z;c[j+8>>2]=e;Dd(p,j);z=c[p+4>>2]|0;if(z){w=c[p>>2]|0;N=+h[w>>3];J=N*N;if((z|0)>1){F=1;N=J;while(1){D=+h[w+(F<<3)>>3];M=N+D*D;F=F+1|0;if((F|0)==(z|0)){P=M;break}else N=M}}else P=J}else P=0.0;c[q>>2]=0;z=q+4|0;c[z>>2]=0;ad(q,c[t>>2]|0,1);t=c[o>>2]|0;F=c[x>>2]|0;w=x+4|0;L=c[w>>2]|0;if((c[z>>2]|0)==(L|0))Q=L;else{ad(q,L,1);Q=c[z>>2]|0}L=c[q>>2]|0;if((Q|0)>0){E=0;do{h[L+(E<<3)>>3]=+h[t+(E<<3)>>3]-+h[F+(E<<3)>>3];E=E+1|0}while((E|0)!=(Q|0))}c[j>>2]=j+8;E=(Q|0)==0;do if(!E){F=c[m>>2]|0;J=+h[F>>3]*+h[L>>3];if((Q|0)>1){R=1;S=J}else{N=+h[L>>3];T=J;U=N*N;V=+h[r>>3];break}do{S=S+ +h[F+(R<<3)>>3]*+h[L+(R<<3)>>3];R=R+1|0}while((R|0)!=(Q|0));N=+h[r>>3];if(!E){J=+h[L>>3];M=J*J;if((Q|0)>1){F=1;J=M;while(1){D=+h[L+(F<<3)>>3];I=J+D*D;F=F+1|0;if((F|0)==(Q|0)){T=S;U=I;V=N;break}else J=I}}else{T=S;U=M;V=N}}else{T=S;U=0.0;V=N}}else{T=0.0;U=0.0;V=+h[r>>3]}while(0);if(K>V*.5*U+(P+T)){Q=b+48|0;L=k+4|0;E=k+8|0;R=k+12|0;F=j+8|0;t=k+4|0;W=j+12|0;X=j+16|0;Y=j+4|0;T=V;while(1){V=+h[Q>>3]*T;h[r>>3]=V;U=1.0/V;Z=c[x>>2]|0;_=c[m>>2]|0;$=c[d>>2]|0;if((c[u>>2]|0)==($|0))aa=$;else{ad(n,$,1);aa=c[u>>2]|0}$=c[n>>2]|0;if((aa|0)>0){ba=0;do{h[$+(ba<<3)>>3]=+h[Z+(ba<<3)>>3]-U*+h[_+(ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(aa|0))}U=g/+h[r>>3];if((c[G>>2]|0)==(aa|0))ca=aa;else{ad(o,aa,1);ca=c[G>>2]|0}ba=c[o>>2]|0;if((ca|0)>0){_=0;do{N=+h[$+(_<<3)>>3];M=+B(+N)-U;h[ba+(_<<3)>>3]=(+(N>0.0&1)-+(N<0.0&1))*(M<0.0?0.0:M);_=_+1|0}while((_|0)!=(ca|0))}c[L>>2]=y;c[E>>2]=H;c[R>>2]=e;if(!(c[A>>2]|0)){da=0.0;ea=ba}else{Ed(j,t);_=c[R>>2]|0;$=c[_>>2]|0;c[W>>2]=$;c[X>>2]=k;Z=c[j>>2]|0;fa=$;U=+h[Z>>3]-+h[fa>>3];M=U*U;$=c[_+4>>2]|0;if(($|0)>1){_=1;U=M;while(1){N=+h[Z+(_<<3)>>3]-+h[fa+(_<<3)>>3];V=U+N*N;_=_+1|0;if((_|0)==($|0)){ga=V;break}else U=V}}else ga=M;$=c[Y>>2]|0;if($|0)bg(c[$+-4>>2]|0);da=ga;ea=c[o>>2]|0}$=c[x>>2]|0;_=c[w>>2]|0;if((c[z>>2]|0)==(_|0))ha=_;else{ad(q,_,1);ha=c[z>>2]|0}_=c[q>>2]|0;if((ha|0)>0){fa=0;do{h[_+(fa<<3)>>3]=+h[ea+(fa<<3)>>3]-+h[$+(fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(ha|0))}c[j>>2]=F;fa=(ha|0)==0;do if(fa){ia=0.0;ja=0.0;ka=+h[r>>3]}else{$=c[m>>2]|0;M=+h[$>>3]*+h[_>>3];if((ha|0)>1){la=1;ma=M}else{U=+h[_>>3];ia=M;ja=U*U;ka=+h[r>>3];break}do{ma=ma+ +h[$+(la<<3)>>3]*+h[_+(la<<3)>>3];la=la+1|0}while((la|0)!=(ha|0));U=+h[r>>3];if(fa){ia=ma;ja=0.0;ka=U;break}M=+h[_>>3];V=M*M;if((ha|0)>1){na=1;oa=V}else{ia=ma;ja=V;ka=U;break}while(1){V=+h[_+(na<<3)>>3];M=oa+V*V;na=na+1|0;if((na|0)==(ha|0)){ia=ma;ja=M;ka=U;break}else oa=M}}while(0);if(da>ka*.5*ja+(P+ia))T=ka;else break}}Bd(a,f);f=b+32|0;ha=c[a>>2]|0;na=a+4|0;la=c[na>>2]|0;F=b+36|0;j=b+40|0;if((c[j>>2]|0)==1?(c[F>>2]|0)==(la|0):0){pa=1;qa=la}else{$c(f,la,1);pa=c[j>>2]|0;qa=c[F>>2]|0}F=c[f>>2]|0;j=O(qa,pa)|0;if((j|0)>0){pa=0;do{h[F+(pa<<3)>>3]=+h[ha+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(j|0))}ka=1.0/+h[r>>3];j=c[x>>2]|0;x=c[m>>2]|0;pa=c[d>>2]|0;if((c[u>>2]|0)==(pa|0))ra=pa;else{ad(n,pa,1);ra=c[u>>2]|0}u=c[n>>2]|0;if((ra|0)>0){pa=0;do{h[u+(pa<<3)>>3]=+h[j+(pa<<3)>>3]-ka*+h[x+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(ra|0))}ka=g/+h[r>>3];if((c[na>>2]|0)==(ra|0))sa=ra;else{ad(a,ra,1);sa=c[na>>2]|0}na=c[a>>2]|0;if((sa|0)>0){a=0;do{g=+h[u+(a<<3)>>3];T=+B(+g)-ka;h[na+(a<<3)>>3]=(+(g>0.0&1)-+(g<0.0&1))*(T<0.0?0.0:T);a=a+1|0}while((a|0)!=(sa|0))}sa=b+56|0;ka=+h[sa>>3];T=(+C(+(ka*ka*4.0+1.0))+1.0)*.5;h[sa>>3]=T;ka=(T+-1.0)/T;sa=c[f>>2]|0;b=c[f+4>>2]|0;if((c[v>>2]|0)==(b|0))ta=b;else{ad(s,b,1);ta=c[v>>2]|0}v=c[s>>2]|0;if((ta|0)>0){s=0;do{T=+h[na+(s<<3)>>3];h[v+(s<<3)>>3]=T+ka*(T-+h[sa+(s<<3)>>3]);s=s+1|0}while((s|0)!=(ta|0))}ta=c[q>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[p>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[o>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[n>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[m>>2]|0;if(!ta){l=i;return}bg(c[ta+-4>>2]|0);l=i;return}function Vd(a){a=a|0;var b=0;c[a>>2]=1012;b=c[a+32>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+24>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+16>>2]|0;if(!b)return;bg(c[b+-4>>2]|0);return}function Wd(a){a=a|0;var b=0;c[a>>2]=1012;b=c[a+32>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+24>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+16>>2]|0;if(!b){gg(a);return}bg(c[b+-4>>2]|0);gg(a);return}function Xd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0.0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0.0,P=0.0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0,ea=0,fa=0,ga=0.0,ha=0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0.0,na=0,oa=0.0,pa=0,qa=0,ra=0,sa=0,ta=0;i=l;l=l+112|0;j=i;k=i+88|0;m=i+80|0;n=i+72|0;o=i+64|0;p=i+56|0;q=i+48|0;r=b+64|0;h[r>>3]=+h[b+8>>3];s=b+16|0;t=c[f>>2]|0;u=c[f+4>>2]|0;v=b+20|0;if((c[v>>2]|0)==(u|0))w=u;else{ad(s,u,1);w=c[v>>2]|0}u=c[s>>2]|0;if((w|0)>0){x=0;do{h[u+(x<<3)>>3]=+h[t+(x<<3)>>3];x=x+1|0}while((x|0)!=(w|0))}x=b+24|0;t=b+28|0;if((c[t>>2]|0)==(w|0))y=w;else{ad(x,w,1);y=c[t>>2]|0}w=c[x>>2]|0;if((y|0)>0){z=0;do{h[w+(z<<3)>>3]=+h[u+(z<<3)>>3];z=z+1|0}while((z|0)!=(y|0))}y=d;z=x;u=d+8|0;c[m>>2]=0;w=m+4|0;c[w>>2]=0;ad(m,c[u>>2]|0,1);A=c[u>>2]|0;u=c[d+4>>2]|0;d=j+8|0;c[d>>2]=A;c[d+4>>2]=u;h[j+16>>3]=2.0;c[j+24>>2]=y;u=j+32|0;c[u>>2]=y;c[j+36>>2]=z;c[j+40>>2]=e;if((c[w>>2]|0)!=(A|0))ad(m,A,1);Id(m,j,u);D=1.0/+h[r>>3];c[n>>2]=0;u=n+4|0;c[u>>2]=0;ad(n,c[w>>2]|0,1);w=c[x>>2]|0;A=c[m>>2]|0;d=m+4|0;E=c[d>>2]|0;if((c[u>>2]|0)==(E|0))F=E;else{ad(n,E,1);F=c[u>>2]|0}E=c[n>>2]|0;if((F|0)>0){G=0;do{h[E+(G<<3)>>3]=+h[w+(G<<3)>>3]-D*+h[A+(G<<3)>>3];G=G+1|0}while((G|0)!=(F|0))}D=g/+h[r>>3];c[o>>2]=0;G=o+4|0;c[G>>2]=0;ad(o,F,1);F=c[n>>2]|0;A=c[n+4>>2]|0;if((c[G>>2]|0)==(A|0))H=A;else{ad(o,A,1);H=c[G>>2]|0}A=c[o>>2]|0;if((H|0)>0){w=0;do{I=+h[F+(w<<3)>>3];J=+B(+I)-D;h[A+(w<<3)>>3]=(+(I>0.0&1)-+(I<0.0&1))*(J<0.0?0.0:J);w=w+1|0}while((w|0)!=(H|0))}H=o;c[k+4>>2]=y;c[k+8>>2]=H;w=k+12|0;c[w>>2]=e;A=e+4|0;if(!(c[A>>2]|0))K=0.0;else{Ed(j,k+4|0);F=c[w>>2]|0;w=c[F>>2]|0;c[j+12>>2]=w;c[j+16>>2]=k;E=c[j>>2]|0;L=w;D=+h[E>>3]-+h[L>>3];J=D*D;w=c[F+4>>2]|0;if((w|0)>1){F=1;D=J;while(1){I=+h[E+(F<<3)>>3]-+h[L+(F<<3)>>3];M=D+I*I;F=F+1|0;if((F|0)==(w|0)){N=M;break}else D=M}}else N=J;w=c[j+4>>2]|0;if(w|0)bg(c[w+-4>>2]|0);K=N}c[j>>2]=y;c[j+4>>2]=z;c[j+8>>2]=e;Dd(p,j);z=c[p+4>>2]|0;if(z){w=c[p>>2]|0;N=+h[w>>3];J=N*N;if((z|0)>1){F=1;N=J;while(1){D=+h[w+(F<<3)>>3];M=N+D*D;F=F+1|0;if((F|0)==(z|0)){P=M;break}else N=M}}else P=J}else P=0.0;c[q>>2]=0;z=q+4|0;c[z>>2]=0;ad(q,c[t>>2]|0,1);t=c[o>>2]|0;F=c[x>>2]|0;w=x+4|0;L=c[w>>2]|0;if((c[z>>2]|0)==(L|0))Q=L;else{ad(q,L,1);Q=c[z>>2]|0}L=c[q>>2]|0;if((Q|0)>0){E=0;do{h[L+(E<<3)>>3]=+h[t+(E<<3)>>3]-+h[F+(E<<3)>>3];E=E+1|0}while((E|0)!=(Q|0))}c[j>>2]=j+8;E=(Q|0)==0;do if(!E){F=c[m>>2]|0;J=+h[F>>3]*+h[L>>3];if((Q|0)>1){R=1;S=J}else{N=+h[L>>3];T=J;U=N*N;V=+h[r>>3];break}do{S=S+ +h[F+(R<<3)>>3]*+h[L+(R<<3)>>3];R=R+1|0}while((R|0)!=(Q|0));N=+h[r>>3];if(!E){J=+h[L>>3];M=J*J;if((Q|0)>1){F=1;J=M;while(1){D=+h[L+(F<<3)>>3];I=J+D*D;F=F+1|0;if((F|0)==(Q|0)){T=S;U=I;V=N;break}else J=I}}else{T=S;U=M;V=N}}else{T=S;U=0.0;V=N}}else{T=0.0;U=0.0;V=+h[r>>3]}while(0);if(K>V*.5*U+(P+T)){Q=b+48|0;L=k+4|0;E=k+8|0;R=k+12|0;F=j+8|0;t=k+4|0;W=j+12|0;X=j+16|0;Y=j+4|0;T=V;while(1){V=+h[Q>>3]*T;h[r>>3]=V;U=1.0/V;Z=c[x>>2]|0;_=c[m>>2]|0;$=c[d>>2]|0;if((c[u>>2]|0)==($|0))aa=$;else{ad(n,$,1);aa=c[u>>2]|0}$=c[n>>2]|0;if((aa|0)>0){ba=0;do{h[$+(ba<<3)>>3]=+h[Z+(ba<<3)>>3]-U*+h[_+(ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(aa|0))}U=g/+h[r>>3];if((c[G>>2]|0)==(aa|0))ca=aa;else{ad(o,aa,1);ca=c[G>>2]|0}ba=c[o>>2]|0;if((ca|0)>0){_=0;do{N=+h[$+(_<<3)>>3];M=+B(+N)-U;h[ba+(_<<3)>>3]=(+(N>0.0&1)-+(N<0.0&1))*(M<0.0?0.0:M);_=_+1|0}while((_|0)!=(ca|0))}c[L>>2]=y;c[E>>2]=H;c[R>>2]=e;if(!(c[A>>2]|0)){da=0.0;ea=ba}else{Ed(j,t);_=c[R>>2]|0;$=c[_>>2]|0;c[W>>2]=$;c[X>>2]=k;Z=c[j>>2]|0;fa=$;U=+h[Z>>3]-+h[fa>>3];M=U*U;$=c[_+4>>2]|0;if(($|0)>1){_=1;U=M;while(1){N=+h[Z+(_<<3)>>3]-+h[fa+(_<<3)>>3];V=U+N*N;_=_+1|0;if((_|0)==($|0)){ga=V;break}else U=V}}else ga=M;$=c[Y>>2]|0;if($|0)bg(c[$+-4>>2]|0);da=ga;ea=c[o>>2]|0}$=c[x>>2]|0;_=c[w>>2]|0;if((c[z>>2]|0)==(_|0))ha=_;else{ad(q,_,1);ha=c[z>>2]|0}_=c[q>>2]|0;if((ha|0)>0){fa=0;do{h[_+(fa<<3)>>3]=+h[ea+(fa<<3)>>3]-+h[$+(fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(ha|0))}c[j>>2]=F;fa=(ha|0)==0;do if(fa){ia=0.0;ja=0.0;ka=+h[r>>3]}else{$=c[m>>2]|0;M=+h[$>>3]*+h[_>>3];if((ha|0)>1){la=1;ma=M}else{U=+h[_>>3];ia=M;ja=U*U;ka=+h[r>>3];break}do{ma=ma+ +h[$+(la<<3)>>3]*+h[_+(la<<3)>>3];la=la+1|0}while((la|0)!=(ha|0));U=+h[r>>3];if(fa){ia=ma;ja=0.0;ka=U;break}M=+h[_>>3];V=M*M;if((ha|0)>1){na=1;oa=V}else{ia=ma;ja=V;ka=U;break}while(1){V=+h[_+(na<<3)>>3];M=oa+V*V;na=na+1|0;if((na|0)==(ha|0)){ia=ma;ja=M;ka=U;break}else oa=M}}while(0);if(da>ka*.5*ja+(P+ia))T=ka;else break}}Bd(a,f);f=b+32|0;ha=c[a>>2]|0;na=a+4|0;la=c[na>>2]|0;F=b+36|0;j=b+40|0;if((c[j>>2]|0)==1?(c[F>>2]|0)==(la|0):0){pa=1;qa=la}else{$c(f,la,1);pa=c[j>>2]|0;qa=c[F>>2]|0}F=c[f>>2]|0;j=O(qa,pa)|0;if((j|0)>0){pa=0;do{h[F+(pa<<3)>>3]=+h[ha+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(j|0))}ka=1.0/+h[r>>3];j=c[x>>2]|0;x=c[m>>2]|0;pa=c[d>>2]|0;if((c[u>>2]|0)==(pa|0))ra=pa;else{ad(n,pa,1);ra=c[u>>2]|0}u=c[n>>2]|0;if((ra|0)>0){pa=0;do{h[u+(pa<<3)>>3]=+h[j+(pa<<3)>>3]-ka*+h[x+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(ra|0))}ka=g/+h[r>>3];if((c[na>>2]|0)==(ra|0))sa=ra;else{ad(a,ra,1);sa=c[na>>2]|0}na=c[a>>2]|0;if((sa|0)>0){a=0;do{g=+h[u+(a<<3)>>3];T=+B(+g)-ka;h[na+(a<<3)>>3]=(+(g>0.0&1)-+(g<0.0&1))*(T<0.0?0.0:T);a=a+1|0}while((a|0)!=(sa|0))}sa=b+56|0;ka=+h[sa>>3];T=(+C(+(ka*ka*4.0+1.0))+1.0)*.5;h[sa>>3]=T;ka=(T+-1.0)/T;sa=c[f>>2]|0;b=c[f+4>>2]|0;if((c[v>>2]|0)==(b|0))ta=b;else{ad(s,b,1);ta=c[v>>2]|0}v=c[s>>2]|0;if((ta|0)>0){s=0;do{T=+h[na+(s<<3)>>3];h[v+(s<<3)>>3]=T+ka*(T-+h[sa+(s<<3)>>3]);s=s+1|0}while((s|0)!=(ta|0))}ta=c[q>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[p>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[o>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[n>>2]|0;if(ta|0)bg(c[ta+-4>>2]|0);ta=c[m>>2]|0;if(!ta){l=i;return}bg(c[ta+-4>>2]|0);l=i;return}function Yd(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if((e|0)==(c[a+8>>2]|0)){ae(a,b);return}else{h[e>>3]=+h[b>>3];c[d>>2]=e+8;return}}function Zd(a){a=a|0;var b=0,d=0;c[a>>2]=1040;b=c[a+4>>2]|0;if(!b)return;d=a+8|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-8-b|0)>>>3)<<3);gg(b);return}function _d(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=1040;b=c[a+4>>2]|0;if(!b){gg(a);return}d=a+8|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-8-b|0)>>>3)<<3);gg(b);gg(a);return}function $d(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0;i=l;l=l+32|0;j=i;k=i+24|0;m=i+16|0;Bd(a,f);c[j>>2]=e;c[j+4>>2]=d;c[j+8>>2]=f;Rd(k,j);f=a+4|0;if((c[f>>2]|0)>0){e=d+4|0;n=m+4|0;o=b+4|0;b=k+4|0;p=g*.5;q=j+8|0;r=0;do{s=c[e>>2]|0;t=(c[d>>2]|0)+((O(s,r)|0)<<3)|0;c[m>>2]=0;c[n>>2]=0;ad(m,s,1);if((c[n>>2]|0)==(s|0))u=s;else{ad(m,s,1);u=c[n>>2]|0}s=c[m>>2]|0;if((u|0)>0){v=0;do{h[s+(v<<3)>>3]=+h[t+(v<<3)>>3];v=v+1|0}while((v|0)!=(u|0))}g=+h[(c[o>>2]|0)+(r<<3)>>3];w=+h[(c[a>>2]|0)+(r<<3)>>3];if(w!=0.0){v=c[n>>2]|0;t=c[k>>2]|0;if((c[b>>2]|0)==(v|0)){x=v;y=t}else{ad(k,v,1);x=c[b>>2]|0;y=c[k>>2]|0}if((x|0)>0){v=0;do{h[y+(v<<3)>>3]=+h[t+(v<<3)>>3]+w*+h[s+(v<<3)>>3];v=v+1|0}while((v|0)!=(x|0));z=x}else z=x}else z=c[b>>2]|0;w=p*g;c[j>>2]=q;if(z){v=c[m>>2]|0;s=c[k>>2]|0;A=g*+h[v>>3]*+h[s>>3];if((z|0)>1){t=1;C=A;while(1){D=C+g*+h[v+(t<<3)>>3]*+h[s+(t<<3)>>3];t=t+1|0;if((t|0)==(z|0)){E=D;break}else C=D}}else E=A}else E=0.0;C=+B(+E)-w;g=(+(E>0.0&1)-+(E<0.0&1))*(C<0.0?0.0:C);h[(c[a>>2]|0)+(r<<3)>>3]=g;if(g!=0.0){t=c[n>>2]|0;s=c[k>>2]|0;v=c[m>>2]|0;if((z|0)==(t|0)){F=z;G=s}else{ad(k,t,1);F=c[b>>2]|0;G=c[k>>2]|0}if((F|0)>0){t=0;do{h[G+(t<<3)>>3]=+h[s+(t<<3)>>3]-g*+h[v+(t<<3)>>3];t=t+1|0}while((t|0)!=(F|0))}}t=c[m>>2]|0;if(t|0)bg(c[t+-4>>2]|0);r=r+1|0}while((r|0)<(c[f>>2]|0));H=k}else H=k;k=c[H>>2]|0;if(!k){l=i;return}bg(c[k+-4>>2]|0);l=i;return}function ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>3)+1|0;if(g>>>0>536870911){dg(a);i=c[a>>2]|0;j=c[d>>2]|0}else{i=f;j=e}e=a+8|0;f=(c[e>>2]|0)-i|0;k=f>>2;l=f>>3>>>0<268435455?(k>>>0<g>>>0?g:k):536870911;k=j-i>>3;do if(l)if(l>>>0>536870911){g=mb(4)|0;$g(g);$b(g|0,728,17)}else{m=fg(l<<3)|0;break}else m=0;while(0);g=m+(k<<3)|0;h[g>>3]=+h[b>>3];b=j-i|0;j=g+(0-(b>>3)<<3)|0;if((b|0)>0)jh(j|0,i|0,b|0)|0;c[a>>2]=j;c[d>>2]=g+8;c[e>>2]=m+(l<<3);if(!i)return;gg(i);return}function be(a){a=a|0;var b=0,d=0;c[a>>2]=1068;b=c[a+4>>2]|0;if(!b)return;d=a+8|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-8-b|0)>>>3)<<3);gg(b);return}function ce(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=1068;b=c[a+4>>2]|0;if(!b){gg(a);return}d=a+8|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-8-b|0)>>>3)<<3);gg(b);gg(a);return}function de(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0;i=l;l=l+32|0;j=i;k=i+24|0;m=i+16|0;Bd(a,f);c[j>>2]=e;c[j+4>>2]=d;c[j+8>>2]=f;Rd(k,j);f=a+4|0;if((c[f>>2]|0)>0){e=d+4|0;n=m+4|0;o=b+4|0;b=k+4|0;p=g*.5;q=j+8|0;r=0;do{s=c[e>>2]|0;t=(c[d>>2]|0)+((O(s,r)|0)<<3)|0;c[m>>2]=0;c[n>>2]=0;ad(m,s,1);if((c[n>>2]|0)==(s|0))u=s;else{ad(m,s,1);u=c[n>>2]|0}s=c[m>>2]|0;if((u|0)>0){v=0;do{h[s+(v<<3)>>3]=+h[t+(v<<3)>>3];v=v+1|0}while((v|0)!=(u|0))}g=+h[(c[o>>2]|0)+(r<<3)>>3];w=+h[(c[a>>2]|0)+(r<<3)>>3];if(w!=0.0){v=c[n>>2]|0;t=c[k>>2]|0;if((c[b>>2]|0)==(v|0)){x=v;y=t}else{ad(k,v,1);x=c[b>>2]|0;y=c[k>>2]|0}if((x|0)>0){v=0;do{h[y+(v<<3)>>3]=+h[t+(v<<3)>>3]+w*+h[s+(v<<3)>>3];v=v+1|0}while((v|0)!=(x|0));z=x}else z=x}else z=c[b>>2]|0;w=p*g;c[j>>2]=q;if(z){v=c[m>>2]|0;s=c[k>>2]|0;A=g*+h[v>>3]*+h[s>>3];if((z|0)>1){t=1;C=A;while(1){D=C+g*+h[v+(t<<3)>>3]*+h[s+(t<<3)>>3];t=t+1|0;if((t|0)==(z|0)){E=D;break}else C=D}}else E=A}else E=0.0;C=+B(+E)-w;g=(+(E>0.0&1)-+(E<0.0&1))*(C<0.0?0.0:C);h[(c[a>>2]|0)+(r<<3)>>3]=g;if(g!=0.0){t=c[n>>2]|0;s=c[k>>2]|0;v=c[m>>2]|0;if((z|0)==(t|0)){F=z;G=s}else{ad(k,t,1);F=c[b>>2]|0;G=c[k>>2]|0}if((F|0)>0){t=0;do{h[G+(t<<3)>>3]=+h[s+(t<<3)>>3]-g*+h[v+(t<<3)>>3];t=t+1|0}while((t|0)!=(F|0))}}t=c[m>>2]|0;if(t|0)bg(c[t+-4>>2]|0);r=r+1|0}while((r|0)<(c[f>>2]|0));H=k}else H=k;k=c[H>>2]|0;if(!k){l=i;return}bg(c[k+-4>>2]|0);l=i;return}function ee(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=f-g>>2;i=f;if(h>>>0<b>>>0){he(a,b-h|0,d);return}if(h>>>0<=b>>>0)return;h=g+(b<<2)|0;if((i|0)==(h|0))return;c[e>>2]=i+(~((i+-4-h|0)>>>2)<<2);return}function fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=c[b>>2]|0;if((c[b+4>>2]|0)-g>>2>>>0<=d>>>0){h=1;c[a>>2]=h;l=e;return}c[f>>2]=c[g+(d<<2)>>2];h=nb(888,f|0)|0;c[a>>2]=h;l=e;return}function ge(a,b,d){a=a|0;b=b|0;d=d|0;c[(c[a>>2]|0)+(b<<2)>>2]=c[d>>2];return 1}function he(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+8|0;f=c[e>>2]|0;g=a+4|0;h=c[g>>2]|0;if(f-h>>2>>>0>=b>>>0){i=h+(b<<2)|0;j=b;k=h;while(1){c[k>>2]=c[d>>2];j=j+-1|0;if(!j)break;else k=k+4|0}c[g>>2]=i;return}i=c[a>>2]|0;k=(h-i>>2)+b|0;if(k>>>0>1073741823){dg(a);l=c[a>>2]|0;m=c[e>>2]|0;n=c[g>>2]|0}else{l=i;m=f;n=h}h=m-l|0;m=h>>1;f=h>>2>>>0<536870911?(m>>>0<k>>>0?k:m):1073741823;m=n-l>>2;do if(f)if(f>>>0>1073741823){k=mb(4)|0;$g(k);$b(k|0,728,17)}else{o=fg(f<<2)|0;break}else o=0;while(0);k=o+(m<<2)|0;h=o+(f<<2)|0;f=m+b|0;m=b;b=k;while(1){c[b>>2]=c[d>>2];m=m+-1|0;if(!m)break;else b=b+4|0}b=n-l|0;n=k+(0-(b>>2)<<2)|0;if((b|0)>0)jh(n|0,l|0,b|0)|0;c[a>>2]=n;c[g>>2]=o+(f<<2);c[e>>2]=h;if(!l)return;gg(l);return}function ie(a){a=a|0;return 208}function je(a){a=a|0;var b=0,d=0,e=0;if(!a)return;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-4-b|0)>>>2)<<2);gg(b)}gg(a);return}function ke(){var a=0;a=fg(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return a|0}function le(a){a=a|0;return ic[a&7]()|0}function me(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e;h=c[a>>2]|0;i=c[a+4>>2]|0;a=b+(i>>1)|0;if(!(i&1))j=h;else j=c[(c[a>>2]|0)+h>>2]|0;g[f>>2]=d;kc[j&7](a,f);l=e;return}function ne(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;h=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;g[h>>2]=e;oc[k&7](a,d,h);l=f;return}function oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return mc[f&15](a)|0}function pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;oc[c[a>>2]&7](f,b,d);Qb(c[f>>2]|0);d=c[f>>2]|0;Va(d|0);l=e;return d|0}function qe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0;f=l;l=l+16|0;h=f;i=c[a>>2]|0;g[h>>2]=e;a=dc[i&15](b,d,h)|0;l=f;return a|0}function re(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=f-g>>3;i=f;if(h>>>0<b>>>0){ue(a,b-h|0,d);return}if(h>>>0<=b>>>0)return;h=g+(b<<3)|0;if((i|0)==(h|0))return;c[e>>2]=i+(~((i+-8-h|0)>>>3)<<3);return}function se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;e=l;l=l+16|0;f=e;g=c[b>>2]|0;if((c[b+4>>2]|0)-g>>3>>>0<=d>>>0){i=1;c[a>>2]=i;l=e;return}h[f>>3]=+h[g+(d<<3)>>3];i=nb(896,f|0)|0;c[a>>2]=i;l=e;return}function te(a,b,d){a=a|0;b=b|0;d=d|0;h[(c[a>>2]|0)+(b<<3)>>3]=+h[d>>3];return 1}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=a+8|0;f=c[e>>2]|0;g=a+4|0;i=c[g>>2]|0;j=i;if(f-i>>3>>>0>=b>>>0){k=b;l=j;while(1){h[l>>3]=+h[d>>3];k=k+-1|0;if(!k)break;else l=l+8|0}c[g>>2]=j+(b<<3);return}j=c[a>>2]|0;l=(i-j>>3)+b|0;if(l>>>0>536870911){dg(a);m=c[a>>2]|0;n=c[e>>2]|0;o=c[g>>2]|0}else{m=j;n=f;o=i}i=n-m|0;n=i>>2;f=i>>3>>>0<268435455?(n>>>0<l>>>0?l:n):536870911;n=o-m>>3;do if(f)if(f>>>0>536870911){l=mb(4)|0;$g(l);$b(l|0,728,17)}else{p=fg(f<<3)|0;break}else p=0;while(0);l=p+(n<<3)|0;n=p+(f<<3)|0;f=b;p=l;while(1){h[p>>3]=+h[d>>3];f=f+-1|0;if(!f)break;else p=p+8|0}p=o-m|0;o=l+(0-(p>>3)<<3)|0;if((p|0)>0)jh(o|0,m|0,p|0)|0;c[a>>2]=o;c[g>>2]=l+(b<<3);c[e>>2]=n;if(!m)return;gg(m);return}function ve(a){a=a|0;return 296}function we(a){a=a|0;var b=0,d=0,e=0;if(!a)return;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-8-b|0)>>>3)<<3);gg(b)}gg(a);return}function xe(){var a=0;a=fg(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return a|0}function ye(a){a=a|0;return ic[a&7]()|0}function ze(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0,j=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;i=c[a+4>>2]|0;a=b+(i>>1)|0;if(!(i&1))j=g;else j=c[(c[a>>2]|0)+g>>2]|0;h[f>>3]=d;kc[j&7](a,f);l=e;return}function Ae(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;h[g>>3]=e;oc[k&7](a,d,g);l=f;return}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return mc[f&15](a)|0}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;oc[c[a>>2]&7](f,b,d);Qb(c[f>>2]|0);d=c[f>>2]|0;Va(d|0);l=e;return d|0}function De(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0,i=0;f=l;l=l+16|0;g=f;i=c[a>>2]|0;h[g>>3]=e;a=dc[i&15](b,d,g)|0;l=f;return a|0}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if((e|0)==(c[a+8>>2]|0)){Je(a,b);return}else{c[e>>2]=c[b>>2];c[d>>2]=e+4;return}}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=f-g>>2;i=f;if(h>>>0<b>>>0){Ke(a,b-h|0,d);return}if(h>>>0<=b>>>0)return;h=g+(b<<2)|0;if((i|0)==(h|0))return;c[e>>2]=i+(~((i+-4-h|0)>>>2)<<2);return}function Ge(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)>>2|0}function He(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;g=c[b>>2]|0;if((c[b+4>>2]|0)-g>>2>>>0<=d>>>0){h=1;c[a>>2]=h;l=e;return}c[f>>2]=c[g+(d<<2)>>2];h=nb(856,f|0)|0;c[a>>2]=h;l=e;return}function Ie(a,b,d){a=a|0;b=b|0;d=d|0;c[(c[a>>2]|0)+(b<<2)>>2]=c[d>>2];return 1}function Je(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;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){dg(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=mb(4)|0;$g(g);$b(g|0,728,17)}else{l=fg(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)jh(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;gg(h);return}function Ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+8|0;f=c[e>>2]|0;g=a+4|0;h=c[g>>2]|0;i=h;if(f-h>>2>>>0>=b>>>0){j=b;k=i;while(1){c[k>>2]=c[d>>2];j=j+-1|0;if(!j)break;else k=k+4|0}c[g>>2]=i+(b<<2);return}i=c[a>>2]|0;k=(h-i>>2)+b|0;if(k>>>0>1073741823){dg(a);l=c[a>>2]|0;m=c[e>>2]|0;n=c[g>>2]|0}else{l=i;m=f;n=h}h=m-l|0;m=h>>1;f=h>>2>>>0<536870911?(m>>>0<k>>>0?k:m):1073741823;m=n-l>>2;do if(f)if(f>>>0>1073741823){k=mb(4)|0;$g(k);$b(k|0,728,17)}else{o=fg(f<<2)|0;break}else o=0;while(0);k=o+(m<<2)|0;m=o+(f<<2)|0;f=b;o=k;while(1){c[o>>2]=c[d>>2];f=f+-1|0;if(!f)break;else o=o+4|0}o=n-l|0;n=k+(0-(o>>2)<<2)|0;if((o|0)>0)jh(n|0,l|0,o|0)|0;c[a>>2]=n;c[g>>2]=k+(b<<2);c[e>>2]=m;if(!l)return;gg(l);return}function Le(a){a=a|0;return 376}function Me(a){a=a|0;var b=0,d=0,e=0;if(!a)return;b=c[a>>2]|0;if(b|0){d=a+4|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-4-b|0)>>>2)<<2);gg(b)}gg(a);return}function Ne(){var a=0;a=fg(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return a|0}function Oe(a){a=a|0;return ic[a&7]()|0}function Pe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|0;f=e;g=c[a>>2]|0;h=c[a+4>>2]|0;a=b+(h>>1)|0;if(!(h&1))i=g;else i=c[(c[a>>2]|0)+g>>2]|0;c[f>>2]=d;kc[i&7](a,f);l=e;return}function Qe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;h=c[a>>2]|0;i=c[a+4>>2]|0;a=b+(i>>1)|0;if(!(i&1))j=h;else j=c[(c[a>>2]|0)+h>>2]|0;c[g>>2]=e;oc[j&7](a,d,g);l=f;return}function Re(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return mc[f&15](a)|0}function Se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;oc[c[a>>2]&7](f,b,d);Qb(c[f>>2]|0);d=c[f>>2]|0;Va(d|0);l=e;return d|0}function Te(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+16|0;g=f;h=c[a>>2]|0;c[g>>2]=e;e=dc[h&15](b,d,g)|0;l=f;return e|0}function Ue(a){a=a|0;return 440}function Ve(a){a=a|0;var b=0,d=0;if(!a)return;b=c[a+48>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=c[a+36>>2]|0;if(b|0)bg(c[b+-4>>2]|0);b=a+32|0;d=c[b>>2]|0;c[b>>2]=0;if(d|0)jc[c[(c[d>>2]|0)+4>>2]&31](d);d=c[a>>2]|0;if(d|0)bg(c[d+-4>>2]|0);gg(a);return}function We(){var a=0,b=0,d=0,e=0;a=fg(112)|0;b=a+64|0;d=a;e=d+80|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));h[b>>3]=.75;c[a+72>>2]=100;h[a+80>>3]=1.0;c[a+88>>2]=0;c[a+92>>2]=1;h[a+96>>3]=.1;c[a+104>>2]=1;c[a+108>>2]=1;return a|0}function Xe(a){a=a|0;return ic[a&7]()|0}function Ye(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=l;l=l+16|0;h=g;i=c[a>>2]|0;j=c[a+4>>2]|0;a=b+(j>>1)|0;if(!(j&1))k=i;else k=c[(c[a>>2]|0)+i>>2]|0;i=c[f>>2]|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;ig(h,f+4|0,i);wc[k&7](a,d,e,h);kg(h);l=g;return}function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1)){f=d;g=+hc[f&3](a);return +g}else{f=c[(c[a>>2]|0)+d>>2]|0;g=+hc[f&3](a);return +g}return +(0.0)}function _e(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[a+4>>2]|0;a=b+(e>>1)|0;if(!(e&1))f=d;else f=c[(c[a>>2]|0)+d>>2]|0;return mc[f&15](a)|0}function $e(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=c[a>>2]|0;g=c[a+4>>2]|0;a=b+(g>>1)|0;if(!(g&1))h=f;else h=c[(c[a>>2]|0)+f>>2]|0;kc[h&7](e,a);a=fg(12)|0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];l=d;return a|0}function af(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d;f=c[a>>2]|0;g=c[a+4>>2]|0;a=b+(g>>1)|0;if(!(g&1))h=f;else h=c[(c[a>>2]|0)+f>>2]|0;kc[h&7](e,a);a=fg(12)|0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];l=d;return a|0}function bf(){Pc(2052);Qc(2064);Rc(2077);Sc(0);return}function cf(){df(0);return}function df(a){a=a|0;Lb(792,3478);Ra(808,3483,1,1,0);lb(816,3488,1,-128,127);lb(832,3493,1,-128,127);lb(824,3505,1,0,255);lb(840,3519,2,-32768,32767);lb(848,3525,2,0,65535);lb(856,3540,4,-2147483648,2147483647);lb(864,3544,4,0,-1);lb(872,3557,4,-2147483648,2147483647);lb(880,3562,4,0,-1);Vb(888,3576,4);Vb(896,3582,8);Ca(496,3589);Ca(520,3601);Ob(544,4,3634);Ua(264,3647);Gb(568,0,3663);Gb(576,0,3693);Gb(584,1,3730);Gb(592,2,3769);Gb(600,3,3800);Gb(608,4,3840);Gb(616,5,3869);Gb(624,4,3907);Gb(632,5,3937);Gb(576,0,3976);Gb(584,1,4008);Gb(592,2,4041);Gb(600,3,4074);Gb(608,4,4108);Gb(616,5,4141);Gb(640,6,4175);Gb(648,7,4206);Gb(656,7,4238);return}function ef(a){a=a|0;return Zf(c[a+4>>2]|0)|0}function ff(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=of(c[a+60>>2]|0)|0;a=jf(ab(6,d|0)|0)|0;l=b;return a|0}function gf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,ib(54,g|0)|0):0)a[b+75>>0]=-1;g=nf(b,d,e)|0;l=f;return g|0}function hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+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((jf(Ka(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;l=e;return h|0}function jf(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(kf()|0)>>2]=0-a;b=-1}else b=a;return b|0}function kf(){return (lf()|0)+64|0}function lf(){return mf()|0}function mf(){return 1472}function nf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+16|0;g=e;h=e+32|0;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=jf(Ma(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=(r<<31>>31)+g|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=jf(Ma(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a}else{g=t;o=s}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);c[i>>2]=v;c[k>>2]=v;w=d}l=e;return w|0}function of(a){a=a|0;return a|0}function pf(){return 8168}function qf(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function rf(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+224|0;g=f+120|0;h=f+80|0;i=f;j=f+136|0;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((sf(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=tf(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=sf(b,d,g,i,h)|0;if(!p)t=j;else{dc[c[b+36>>2]&15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=sf(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)uf(b);n=(h&32|0)==0?t:-1}l=f;return n|0}function sf(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=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,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;j=l;l=l+64|0;k=j+16|0;m=j;n=j+24|0;o=j+8|0;p=j+20|0;c[k>>2]=e;q=(d|0)!=0;r=n+40|0;s=r;t=n+39|0;n=o+4|0;u=0;v=0;w=0;x=e;a:while(1){do if((v|0)>-1)if((u|0)>(2147483647-v|0)){c[(kf()|0)>>2]=75;y=-1;break}else{y=u+v|0;break}else y=v;while(0);e=a[x>>0]|0;if(!(e<<24>>24)){A=87;break}else{B=e;C=x}b:while(1){switch(B<<24>>24){case 37:{D=C;E=C;A=9;break b;break}case 0:{F=C;G=C;break b;break}default:{}}e=C+1|0;c[k>>2]=e;B=a[e>>0]|0;C=e}c:do if((A|0)==9)while(1){A=0;if((a[E+1>>0]|0)!=37){F=D;G=E;break c}e=D+1|0;H=E+2|0;c[k>>2]=H;if((a[H>>0]|0)==37){D=e;E=H;A=9}else{F=e;G=H;break}}while(0);H=F-x|0;if(q)vf(d,x,H);if(H|0){u=H;v=y;x=G;continue}H=G+1|0;e=(a[H>>0]|0)+-48|0;if(e>>>0<10){I=(a[G+2>>0]|0)==36;J=I?e:-1;K=I?1:w;L=I?G+3|0:H}else{J=-1;K=w;L=H}c[k>>2]=L;H=a[L>>0]|0;I=(H<<24>>24)+-32|0;d:do if(I>>>0<32){e=0;M=H;N=I;O=L;while(1){P=1<<N;if(!(P&75913)){Q=e;R=M;S=O;break d}T=P|e;P=O+1|0;c[k>>2]=P;U=a[P>>0]|0;N=(U<<24>>24)+-32|0;if(N>>>0>=32){Q=T;R=U;S=P;break}else{e=T;M=U;O=P}}}else{Q=0;R=H;S=L}while(0);if(R<<24>>24==42){H=S+1|0;I=(a[H>>0]|0)+-48|0;if(I>>>0<10?(a[S+2>>0]|0)==36:0){c[i+(I<<2)>>2]=10;V=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;W=1;X=S+3|0}else{if(K|0){Y=-1;break}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;V=O;W=0;X=H}else{V=0;W=0;X=H}}c[k>>2]=X;H=(V|0)<0;Z=H?0-V|0:V;_=H?Q|8192:Q;$=W;aa=X}else{H=wf(k)|0;if((H|0)<0){Y=-1;break}Z=H;_=Q;$=K;aa=c[k>>2]|0}do if((a[aa>>0]|0)==46){if((a[aa+1>>0]|0)!=42){c[k>>2]=aa+1;H=wf(k)|0;ba=H;ca=c[k>>2]|0;break}H=aa+2|0;O=(a[H>>0]|0)+-48|0;if(O>>>0<10?(a[aa+3>>0]|0)==36:0){c[i+(O<<2)>>2]=10;O=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;I=aa+4|0;c[k>>2]=I;ba=O;ca=I;break}if($|0){Y=-1;break a}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;da=O}else da=0;c[k>>2]=H;ba=da;ca=H}else{ba=-1;ca=aa}while(0);H=0;O=ca;while(1){if(((a[O>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=O+1|0;c[k>>2]=ea;fa=a[(a[O>>0]|0)+-65+(4773+(H*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){H=ga;O=ea}else break}if(!(fa<<24>>24)){Y=-1;break}I=(J|0)>-1;do if(fa<<24>>24==19)if(I){Y=-1;break a}else A=49;else{if(I){c[i+(J<<2)>>2]=ga;M=g+(J<<3)|0;e=c[M+4>>2]|0;N=m;c[N>>2]=c[M>>2];c[N+4>>2]=e;A=49;break}if(!q){Y=0;break a}xf(m,ga,f)}while(0);if((A|0)==49?(A=0,!q):0){u=0;v=y;w=$;x=ea;continue}I=a[O>>0]|0;e=(H|0)!=0&(I&15|0)==3?I&-33:I;I=_&-65537;N=(_&8192|0)==0?_:I;e:do switch(e|0){case 110:{switch((H&255)<<24>>24){case 0:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 1:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 2:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w=$;x=ea;continue a;break}case 3:{b[c[m>>2]>>1]=y;u=0;v=y;w=$;x=ea;continue a;break}case 4:{a[c[m>>2]>>0]=y;u=0;v=y;w=$;x=ea;continue a;break}case 6:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 7:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w=$;x=ea;continue a;break}default:{u=0;v=y;w=$;x=ea;continue a}}break}case 112:{ha=120;ia=ba>>>0>8?ba:8;ja=N|8;A=61;break}case 88:case 120:{ha=e;ia=ba;ja=N;A=61;break}case 111:{M=m;P=c[M>>2]|0;U=c[M+4>>2]|0;M=zf(P,U,r)|0;T=s-M|0;ka=M;la=0;ma=5237;na=(N&8|0)==0|(ba|0)>(T|0)?ba:T+1|0;oa=N;pa=P;qa=U;A=67;break}case 105:case 100:{U=m;P=c[U>>2]|0;T=c[U+4>>2]|0;if((T|0)<0){U=eh(0,0,P|0,T|0)|0;M=z;ra=m;c[ra>>2]=U;c[ra+4>>2]=M;sa=1;ta=5237;ua=U;va=M;A=66;break e}else{sa=(N&2049|0)!=0&1;ta=(N&2048|0)==0?((N&1|0)==0?5237:5239):5238;ua=P;va=T;A=66;break e}break}case 117:{T=m;sa=0;ta=5237;ua=c[T>>2]|0;va=c[T+4>>2]|0;A=66;break}case 99:{a[t>>0]=c[m>>2];wa=t;xa=0;ya=5237;za=r;Aa=1;Ba=I;break}case 109:{Ca=Bf(c[(kf()|0)>>2]|0)|0;A=71;break}case 115:{T=c[m>>2]|0;Ca=T|0?T:5247;A=71;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Da=-1;Ea=o;A=75;break}case 83:{T=c[m>>2]|0;if(!ba){Df(d,32,Z,0,N);Fa=0;A=84}else{Da=ba;Ea=T;A=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{u=Ff(d,+h[m>>3],Z,ba,N,e)|0;v=y;w=$;x=ea;continue a;break}default:{wa=x;xa=0;ya=5237;za=r;Aa=ba;Ba=N}}while(0);f:do if((A|0)==61){A=0;e=m;H=c[e>>2]|0;O=c[e+4>>2]|0;e=yf(H,O,r,ha&32)|0;T=(ja&8|0)==0|(H|0)==0&(O|0)==0;ka=e;la=T?0:2;ma=T?5237:5237+(ha>>4)|0;na=ia;oa=ja;pa=H;qa=O;A=67}else if((A|0)==66){A=0;ka=Af(ua,va,r)|0;la=sa;ma=ta;na=ba;oa=N;pa=ua;qa=va;A=67}else if((A|0)==71){A=0;O=Cf(Ca,0,ba)|0;H=(O|0)==0;wa=Ca;xa=0;ya=5237;za=H?Ca+ba|0:O;Aa=H?ba:O-Ca|0;Ba=I}else if((A|0)==75){A=0;O=Ea;H=0;T=0;while(1){e=c[O>>2]|0;if(!e){Ga=H;Ha=T;break}P=Ef(p,e)|0;if((P|0)<0|P>>>0>(Da-H|0)>>>0){Ga=H;Ha=P;break}e=P+H|0;if(Da>>>0>e>>>0){O=O+4|0;H=e;T=P}else{Ga=e;Ha=P;break}}if((Ha|0)<0){Y=-1;break a}Df(d,32,Z,Ga,N);if(!Ga){Fa=0;A=84}else{T=Ea;H=0;while(1){O=c[T>>2]|0;if(!O){Fa=Ga;A=84;break f}P=Ef(p,O)|0;H=P+H|0;if((H|0)>(Ga|0)){Fa=Ga;A=84;break f}vf(d,p,P);if(H>>>0>=Ga>>>0){Fa=Ga;A=84;break}else T=T+4|0}}}while(0);if((A|0)==67){A=0;I=(pa|0)!=0|(qa|0)!=0;T=(na|0)!=0|I;H=((I^1)&1)+(s-ka)|0;wa=T?ka:r;xa=la;ya=ma;za=r;Aa=T?((na|0)>(H|0)?na:H):na;Ba=(na|0)>-1?oa&-65537:oa}else if((A|0)==84){A=0;Df(d,32,Z,Fa,N^8192);u=(Z|0)>(Fa|0)?Z:Fa;v=y;w=$;x=ea;continue}H=za-wa|0;T=(Aa|0)<(H|0)?H:Aa;I=T+xa|0;P=(Z|0)<(I|0)?I:Z;Df(d,32,P,I,Ba);vf(d,ya,xa);Df(d,48,P,I,Ba^65536);Df(d,48,T,H,0);vf(d,wa,H);Df(d,32,P,I,Ba^8192);u=P;v=y;w=$;x=ea}g:do if((A|0)==87)if(!d)if(!w)Y=0;else{ea=1;while(1){x=c[i+(ea<<2)>>2]|0;if(!x){Ia=ea;break}xf(g+(ea<<3)|0,x,f);ea=ea+1|0;if((ea|0)>=10){Y=1;break g}}while(1){if(c[i+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=y;while(0);l=j;return Y|0}function tf(a){a=a|0;return 0}function uf(a){a=a|0;return}function vf(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Rf(b,d,a)|0;return}function wf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;e=(a[d>>0]|0)+-48|0;if(e>>>0<10){f=0;g=d;d=e;while(1){e=d+(f*10|0)|0;g=g+1|0;c[b>>2]=g;d=(a[g>>0]|0)+-48|0;if(d>>>0>=10){h=e;break}else f=e}}else h=0;return h|0}function xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function yf(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[5289+(c&15)>>0]|0|f;c=ih(c|0,e|0,4)|0;e=z;if((c|0)==0&(e|0)==0){g=b;break}else h=b}}return g|0}function zf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=ih(c|0,d|0,3)|0;d=z;if((c|0)==0&(d|0)==0){e=b;break}else f=b}}return e|0}function Af(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;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=ph(f|0,g|0,10,0)|0;e=e+-1|0;a[e>>0]=c&255|48;c=f;f=mh(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=z}h=f;i=e}else{h=b;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;a[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Bf(a){a=a|0;return Mf(a,c[(Lf()|0)+188>>2]|0)|0}function Cf(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;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=d&255;if((a[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=O(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^r;if((e&-2139062144^-2139062144)&e+-16843009|0)break;e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{v=e;w=b;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((a[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function Df(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;fh(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{vf(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;vf(a,g,h)}l=f;return}function Ef(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Jf(a,b,0)|0;return c|0}function Ff(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0.0,D=0,E=0.0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0.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.0,fa=0.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;j=l;l=l+560|0;k=j+8|0;m=j;n=j+524|0;o=n;p=j+512|0;c[m>>2]=0;q=p+12|0;Gf(e)|0;if((z|0)<0){r=-e;s=1;t=5254}else{r=e;s=(h&2049|0)!=0&1;t=(h&2048|0)==0?((h&1|0)==0?5255:5260):5257}Gf(r)|0;u=z&2146435072;do if(u>>>0<2146435072|(u|0)==2146435072&0<0){e=+Hf(r,m)*2.0;v=e!=0.0;if(v)c[m>>2]=(c[m>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?t:t+9|0;A=s|2;B=12-g|0;do if(!(g>>>0>11|(B|0)==0)){C=8.0;D=B;do{D=D+-1|0;C=C*16.0}while((D|0)!=0);if((a[y>>0]|0)==45){E=-(C+(-e-C));break}else{E=e+C-C;break}}else E=e;while(0);B=c[m>>2]|0;D=(B|0)<0?0-B|0:B;F=Af(D,((D|0)<0)<<31>>31,q)|0;if((F|0)==(q|0)){D=p+11|0;a[D>>0]=48;G=D}else G=F;a[G+-1>>0]=(B>>31&2)+43;B=G+-2|0;a[B>>0]=i+15;F=(g|0)<1;D=(h&8|0)==0;H=n;I=E;while(1){J=~~I;K=H+1|0;a[H>>0]=d[5289+J>>0]|x;I=(I-+(J|0))*16.0;if((K-o|0)==1?!(D&(F&I==0.0)):0){a[K>>0]=46;L=H+2|0}else L=K;if(!(I!=0.0))break;else H=L}H=L-o|0;F=q-B|0;D=(g|0)!=0&(H+-2|0)<(g|0)?g+2|0:H;x=F+A+D|0;Df(b,32,f,x,h);vf(b,y,A);Df(b,48,f,x,h^65536);vf(b,n,H);Df(b,48,D-H|0,0,0);vf(b,B,F);Df(b,32,f,x,h^8192);M=x;break}x=(g|0)<0?6:g;if(v){F=(c[m>>2]|0)+-28|0;c[m>>2]=F;N=e*268435456.0;P=F}else{N=e;P=c[m>>2]|0}F=(P|0)<0?k:k+288|0;H=F;I=N;do{D=~~I>>>0;c[H>>2]=D;H=H+4|0;I=(I-+(D>>>0))*1.0e9}while(I!=0.0);if((P|0)>0){v=F;B=H;A=P;while(1){y=(A|0)<29?A:29;D=B+-4|0;if(D>>>0>=v>>>0){K=D;D=0;do{J=gh(c[K>>2]|0,0,y|0)|0;Q=hh(J|0,z|0,D|0,0)|0;J=z;R=ph(Q|0,J|0,1e9,0)|0;c[K>>2]=R;D=mh(Q|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(D){K=v+-4|0;c[K>>2]=D;S=K}else S=v}else S=v;K=B;while(1){if(K>>>0<=S>>>0)break;J=K+-4|0;if(!(c[J>>2]|0))K=J;else break}D=(c[m>>2]|0)-y|0;c[m>>2]=D;if((D|0)>0){v=S;B=K;A=D}else{T=S;U=K;V=D;break}}}else{T=F;U=H;V=P}if((V|0)<0){A=((x+25|0)/9|0)+1|0;B=(w|0)==102;v=T;D=U;J=V;while(1){Q=0-J|0;R=(Q|0)<9?Q:9;if(v>>>0<D>>>0){Q=(1<<R)+-1|0;W=1e9>>>R;X=0;Y=v;do{Z=c[Y>>2]|0;c[Y>>2]=(Z>>>R)+X;X=O(Z&Q,W)|0;Y=Y+4|0}while(Y>>>0<D>>>0);Y=(c[v>>2]|0)==0?v+4|0:v;if(!X){_=Y;$=D}else{c[D>>2]=X;_=Y;$=D+4|0}}else{_=(c[v>>2]|0)==0?v+4|0:v;$=D}Y=B?F:_;W=($-Y>>2|0)>(A|0)?Y+(A<<2)|0:$;J=(c[m>>2]|0)+R|0;c[m>>2]=J;if((J|0)>=0){aa=_;ba=W;break}else{v=_;D=W}}}else{aa=T;ba=U}D=F;if(aa>>>0<ba>>>0){v=(D-aa>>2)*9|0;J=c[aa>>2]|0;if(J>>>0<10)ca=v;else{A=v;v=10;while(1){v=v*10|0;B=A+1|0;if(J>>>0<v>>>0){ca=B;break}else A=B}}}else ca=0;A=(w|0)==103;v=(x|0)!=0;J=x-((w|0)!=102?ca:0)+((v&A)<<31>>31)|0;if((J|0)<(((ba-D>>2)*9|0)+-9|0)){B=J+9216|0;J=F+4+(((B|0)/9|0)+-1024<<2)|0;H=((B|0)%9|0)+1|0;if((H|0)<9){B=H;H=10;while(1){W=H*10|0;B=B+1|0;if((B|0)==9){da=W;break}else H=W}}else da=10;H=c[J>>2]|0;B=(H>>>0)%(da>>>0)|0;w=(J+4|0)==(ba|0);if(!(w&(B|0)==0)){C=(((H>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;W=(da|0)/2|0;I=B>>>0<W>>>0?.5:w&(B|0)==(W|0)?1.0:1.5;if(!s){ea=I;fa=C}else{W=(a[t>>0]|0)==45;ea=W?-I:I;fa=W?-C:C}W=H-B|0;c[J>>2]=W;if(fa+ea!=fa){B=W+da|0;c[J>>2]=B;if(B>>>0>999999999){B=aa;W=J;while(1){H=W+-4|0;c[W>>2]=0;if(H>>>0<B>>>0){w=B+-4|0;c[w>>2]=0;ga=w}else ga=B;w=(c[H>>2]|0)+1|0;c[H>>2]=w;if(w>>>0>999999999){B=ga;W=H}else{ha=ga;ia=H;break}}}else{ha=aa;ia=J}W=(D-ha>>2)*9|0;B=c[ha>>2]|0;if(B>>>0<10){ja=ia;ka=W;la=ha}else{H=W;W=10;while(1){W=W*10|0;w=H+1|0;if(B>>>0<W>>>0){ja=ia;ka=w;la=ha;break}else H=w}}}else{ja=J;ka=ca;la=aa}}else{ja=J;ka=ca;la=aa}H=ja+4|0;ma=ka;na=ba>>>0>H>>>0?H:ba;oa=la}else{ma=ca;na=ba;oa=aa}H=na;while(1){if(H>>>0<=oa>>>0){pa=0;break}W=H+-4|0;if(!(c[W>>2]|0))H=W;else{pa=1;break}}J=0-ma|0;do if(A){W=((v^1)&1)+x|0;if((W|0)>(ma|0)&(ma|0)>-5){qa=i+-1|0;ra=W+-1-ma|0}else{qa=i+-2|0;ra=W+-1|0}W=h&8;if(!W){if(pa?(B=c[H+-4>>2]|0,(B|0)!=0):0)if(!((B>>>0)%10|0)){w=0;Y=10;while(1){Y=Y*10|0;Q=w+1|0;if((B>>>0)%(Y>>>0)|0|0){sa=Q;break}else w=Q}}else sa=0;else sa=9;w=((H-D>>2)*9|0)+-9|0;if((qa|32|0)==102){Y=w-sa|0;B=(Y|0)>0?Y:0;ta=qa;ua=(ra|0)<(B|0)?ra:B;va=0;break}else{B=w+ma-sa|0;w=(B|0)>0?B:0;ta=qa;ua=(ra|0)<(w|0)?ra:w;va=0;break}}else{ta=qa;ua=ra;va=W}}else{ta=i;ua=x;va=h&8}while(0);x=ua|va;D=(x|0)!=0&1;v=(ta|32|0)==102;if(v){wa=0;xa=(ma|0)>0?ma:0}else{A=(ma|0)<0?J:ma;w=Af(A,((A|0)<0)<<31>>31,q)|0;A=q;if((A-w|0)<2){B=w;while(1){Y=B+-1|0;a[Y>>0]=48;if((A-Y|0)<2)B=Y;else{ya=Y;break}}}else ya=w;a[ya+-1>>0]=(ma>>31&2)+43;B=ya+-2|0;a[B>>0]=ta;wa=B;xa=A-B|0}B=s+1+ua+D+xa|0;Df(b,32,f,B,h);vf(b,t,s);Df(b,48,f,B,h^65536);if(v){J=oa>>>0>F>>>0?F:oa;Y=n+9|0;R=Y;X=n+8|0;Q=J;do{K=Af(c[Q>>2]|0,0,Y)|0;if((Q|0)==(J|0))if((K|0)==(Y|0)){a[X>>0]=48;za=X}else za=K;else if(K>>>0>n>>>0){fh(n|0,48,K-o|0)|0;y=K;while(1){Z=y+-1|0;if(Z>>>0>n>>>0)y=Z;else{za=Z;break}}}else za=K;vf(b,za,R-za|0);Q=Q+4|0}while(Q>>>0<=F>>>0);if(x|0)vf(b,5305,1);if(Q>>>0<H>>>0&(ua|0)>0){F=ua;R=Q;while(1){X=Af(c[R>>2]|0,0,Y)|0;if(X>>>0>n>>>0){fh(n|0,48,X-o|0)|0;J=X;while(1){v=J+-1|0;if(v>>>0>n>>>0)J=v;else{Aa=v;break}}}else Aa=X;vf(b,Aa,(F|0)<9?F:9);R=R+4|0;J=F+-9|0;if(!(R>>>0<H>>>0&(F|0)>9)){Ba=J;break}else F=J}}else Ba=ua;Df(b,48,Ba+9|0,9,0)}else{F=pa?H:oa+4|0;if((ua|0)>-1){R=n+9|0;Y=(va|0)==0;Q=R;x=0-o|0;J=n+8|0;K=ua;v=oa;while(1){D=Af(c[v>>2]|0,0,R)|0;if((D|0)==(R|0)){a[J>>0]=48;Ca=J}else Ca=D;do if((v|0)==(oa|0)){D=Ca+1|0;vf(b,Ca,1);if(Y&(K|0)<1){Da=D;break}vf(b,5305,1);Da=D}else{if(Ca>>>0<=n>>>0){Da=Ca;break}fh(n|0,48,Ca+x|0)|0;D=Ca;while(1){A=D+-1|0;if(A>>>0>n>>>0)D=A;else{Da=A;break}}}while(0);X=Q-Da|0;vf(b,Da,(K|0)>(X|0)?X:K);D=K-X|0;v=v+4|0;if(!(v>>>0<F>>>0&(D|0)>-1)){Ea=D;break}else K=D}}else Ea=ua;Df(b,48,Ea+18|0,18,0);vf(b,wa,q-wa|0)}Df(b,32,f,B,h^8192);M=B}else{K=(i&32|0)!=0;F=s+3|0;Df(b,32,f,F,h&-65537);vf(b,t,s);vf(b,r!=r|0.0!=0.0?(K?5281:5285):K?5273:5277,3);Df(b,32,f,F,h^8192);M=F}while(0);l=j;return ((M|0)<(f|0)?f:M)|0}function Gf(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function Hf(a,b){a=+a;b=b|0;return +(+If(a,b))}function If(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=ih(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+If(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function Jf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Kf()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(kf()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(kf()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Kf(){return mf()|0}function Lf(){return mf()|0}function Mf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=0;while(1){if((d[5307+f>>0]|0)==(b|0)){g=2;break}h=f+1|0;if((h|0)==87){i=5395;j=87;g=5;break}else f=h}if((g|0)==2)if(!f)k=5395;else{i=5395;j=f;g=5}if((g|0)==5)while(1){g=0;f=i;do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);j=j+-1|0;if(!j){k=f;break}else{i=f;g=5}}return Nf(k,c[e+20>>2]|0)|0}function Nf(a,b){a=a|0;b=b|0;return Of(a,b)|0}function Of(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Pf(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (d|0?d:a)|0}function Pf(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;f=(c[b>>2]|0)+1794895138|0;g=Qf(c[b+8>>2]|0,f)|0;h=Qf(c[b+12>>2]|0,f)|0;i=Qf(c[b+16>>2]|0,f)|0;a:do if((g>>>0<d>>>2>>>0?(j=d-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Qf(c[b+(q<<2)>>2]|0,f)|0;s=Qf(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0<d>>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=qf(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=Qf(c[b+(m<<2)>>2]|0,f)|0;j=Qf(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0<d>>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function Qf(a,b){a=a|0;b=b|0;var c=0;c=qh(a|0)|0;return ((b|0)==0?a:c)|0}function Rf(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;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Sf(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0<d>>>0){j=dc[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){l=0;m=b;n=d;o=k;break b}p=f+-1|0;if((a[b+p>>0]|0)==10)break;else f=p}p=dc[c[e+36>>2]&15](e,b,f)|0;if(p>>>0<f>>>0){j=p;break a}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0}else{l=0;m=b;n=d;o=k}while(0);jh(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function Sf(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Tf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=4}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){e=j;f=4;break}else g=j}}while(0);if((f|0)==4){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function Uf(){Fb(8232);return 8240}function Vf(){Xb(8232);return}function Wf(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=Xf(a)|0;break}d=(tf(a)|0)==0;e=Xf(a)|0;if(d)b=e;else{uf(a);b=e}}else{if(!(c[429]|0))f=0;else f=Wf(c[429]|0)|0;e=c[(Uf()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=tf(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Xf(d)|0|e;else i=e;if(h|0)uf(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}Vf();b=g}while(0);return b|0}function Xf(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?(dc[c[a+36>>2]&15](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)dc[c[a+40>>2]&15](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 Yf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Sf(b)|0)){k=c[i>>2]|0;m=4}else n=-1;else{k=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0<k>>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((dc[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);l=f;return n|0}function Zf(a){a=a|0;var b=0,c=0,d=0;b=(Tf(a)|0)+1|0;c=ag(b)|0;if(!c)d=0;else{jh(c|0,a|0,b|0)|0;d=c}return d|0}function _f(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b&255;f=b&255;if((c[d+76>>2]|0)>=0?(tf(d)|0)!=0:0){if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=Yf(d,b)|0;uf(d);j=i}else k=3;do if((k|0)==3){if((f|0)!=(a[d+75>>0]|0)?(i=d+20|0,h=c[i>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=h+1;a[h>>0]=e;j=f;break}j=Yf(d,b)|0}while(0);return j|0}function $f(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0,i=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){f=-1.0/(a*a);break}if(e){f=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;g=c[j+4>>2]|0;i=-1077;k=g;l=c[j>>2]|0;m=g;n=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)f=0.0;else{i=-1023;k=d;l=b;m=d;n=9}else f=a;while(0);if((n|0)==9){n=k+614242|0;c[j>>2]=l;c[j+4>>2]=(n&1048575)+1072079006;a=+h[j>>3]+-1.0;o=a*(a*.5);p=a/(a+2.0);q=p*p;r=q*q;h[j>>3]=a-o;l=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=l;s=+h[j>>3];t=a-s-o+p*(o+(r*(r*(r*.15313837699209373+.22222198432149784)+.3999999999940942)+q*(r*(r*(r*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));r=s*.4342944818781689;q=+(i+(n>>>20)|0);o=q*.30102999566361177;p=o+r;f=p+(r+(o-p)+(t*.4342944818781689+(q*3.694239077158931e-13+(s+t)*2.5082946711645275e-11)))}return +f}
6 function ag(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[2061]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=8284+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;do if((j|0)!=(o|0)){if(o>>>0<(c[2065]|0)>>>0)Ab();p=o+12|0;if((c[p>>2]|0)==(m|0)){c[p>>2]=j;c[k>>2]=o;break}else Ab()}else c[2061]=g&~(1<<i);while(0);o=i<<3;c[m+4>>2]=o|3;k=m+o+4|0;c[k>>2]=c[k>>2]|1;q=n;l=b;return q|0}k=c[2063]|0;if(e>>>0>k>>>0){if(h|0){o=2<<f;j=h<<f&(o|0-o);o=(j&0-j)+-1|0;j=o>>>12&16;p=o>>>j;o=p>>>5&8;r=p>>>o;p=r>>>2&4;s=r>>>p;r=s>>>1&2;t=s>>>r;s=t>>>1&1;u=(o|j|p|r|s)+(t>>>s)|0;s=8284+(u<<1<<2)|0;t=s+8|0;r=c[t>>2]|0;p=r+8|0;j=c[p>>2]|0;do if((s|0)!=(j|0)){if(j>>>0<(c[2065]|0)>>>0)Ab();o=j+12|0;if((c[o>>2]|0)==(r|0)){c[o>>2]=s;c[t>>2]=j;v=g;break}else Ab()}else{o=g&~(1<<u);c[2061]=o;v=o}while(0);j=(u<<3)-e|0;c[r+4>>2]=e|3;t=r+e|0;c[t+4>>2]=j|1;c[t+j>>2]=j;if(k|0){s=c[2066]|0;f=k>>>3;h=8284+(f<<1<<2)|0;n=1<<f;if(v&n){f=h+8|0;m=c[f>>2]|0;if(m>>>0<(c[2065]|0)>>>0)Ab();else{w=m;x=f}}else{c[2061]=v|n;w=h;x=h+8|0}c[x>>2]=s;c[w+12>>2]=s;c[s+8>>2]=w;c[s+12>>2]=h}c[2063]=j;c[2066]=t;q=p;l=b;return q|0}t=c[2062]|0;if(t){j=(t&0-t)+-1|0;h=j>>>12&16;s=j>>>h;j=s>>>5&8;n=s>>>j;s=n>>>2&4;f=n>>>s;n=f>>>1&2;m=f>>>n;f=m>>>1&1;i=c[8548+((j|h|s|n|f)+(m>>>f)<<2)>>2]|0;f=(c[i+4>>2]&-8)-e|0;m=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!m){y=i;z=f}else{n=i;i=f;f=m;while(1){m=(c[f+4>>2]&-8)-e|0;s=m>>>0<i>>>0;h=s?m:i;m=s?f:n;f=c[f+16+(((c[f+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){y=m;z=h;break}else{n=m;i=h}}}i=c[2065]|0;if(y>>>0<i>>>0)Ab();n=y+e|0;if(y>>>0>=n>>>0)Ab();f=c[y+24>>2]|0;p=c[y+12>>2]|0;do if((p|0)==(y|0)){r=y+20|0;u=c[r>>2]|0;if(!u){h=y+16|0;m=c[h>>2]|0;if(!m){A=0;break}else{B=m;C=h}}else{B=u;C=r}while(1){r=B+20|0;u=c[r>>2]|0;if(u|0){B=u;C=r;continue}r=B+16|0;u=c[r>>2]|0;if(!u)break;else{B=u;C=r}}if(C>>>0<i>>>0)Ab();else{c[C>>2]=0;A=B;break}}else{r=c[y+8>>2]|0;if(r>>>0<i>>>0)Ab();u=r+12|0;if((c[u>>2]|0)!=(y|0))Ab();h=p+8|0;if((c[h>>2]|0)==(y|0)){c[u>>2]=p;c[h>>2]=r;A=p;break}else Ab()}while(0);a:do if(f|0){p=c[y+28>>2]|0;i=8548+(p<<2)|0;do if((y|0)==(c[i>>2]|0)){c[i>>2]=A;if(!A){c[2062]=t&~(1<<p);break a}}else if(f>>>0>=(c[2065]|0)>>>0){c[f+16+(((c[f+16>>2]|0)!=(y|0)&1)<<2)>>2]=A;if(!A)break a;else break}else Ab();while(0);p=c[2065]|0;if(A>>>0<p>>>0)Ab();c[A+24>>2]=f;i=c[y+16>>2]|0;do if(i|0)if(i>>>0<p>>>0)Ab();else{c[A+16>>2]=i;c[i+24>>2]=A;break}while(0);i=c[y+20>>2]|0;if(i|0)if(i>>>0<(c[2065]|0)>>>0)Ab();else{c[A+20>>2]=i;c[i+24>>2]=A;break}}while(0);if(z>>>0<16){f=z+e|0;c[y+4>>2]=f|3;t=y+f+4|0;c[t>>2]=c[t>>2]|1}else{c[y+4>>2]=e|3;c[n+4>>2]=z|1;c[n+z>>2]=z;if(k|0){t=c[2066]|0;f=k>>>3;i=8284+(f<<1<<2)|0;p=1<<f;if(g&p){f=i+8|0;r=c[f>>2]|0;if(r>>>0<(c[2065]|0)>>>0)Ab();else{D=r;E=f}}else{c[2061]=g|p;D=i;E=i+8|0}c[E>>2]=t;c[D+12>>2]=t;c[t+8>>2]=D;c[t+12>>2]=i}c[2063]=z;c[2066]=n}q=y+8|0;l=b;return q|0}else F=e}else F=e}else if(a>>>0<=4294967231){i=a+11|0;t=i&-8;p=c[2062]|0;if(p){f=0-t|0;r=i>>>8;if(r)if(t>>>0>16777215)G=31;else{i=(r+1048320|0)>>>16&8;h=r<<i;r=(h+520192|0)>>>16&4;u=h<<r;h=(u+245760|0)>>>16&2;m=14-(r|i|h)+(u<<h>>>15)|0;G=t>>>(m+7|0)&1|m<<1}else G=0;m=c[8548+(G<<2)>>2]|0;b:do if(!m){H=0;I=0;J=f;K=81}else{h=0;u=f;i=m;r=t<<((G|0)==31?0:25-(G>>>1)|0);s=0;while(1){j=(c[i+4>>2]&-8)-t|0;if(j>>>0<u>>>0)if(!j){L=i;M=0;N=i;K=85;break b}else{O=i;P=j}else{O=h;P=u}j=c[i+20>>2]|0;i=c[i+16+(r>>>31<<2)>>2]|0;o=(j|0)==0|(j|0)==(i|0)?s:j;j=(i|0)==0;if(j){H=o;I=O;J=P;K=81;break}else{h=O;u=P;r=r<<((j^1)&1);s=o}}}while(0);if((K|0)==81){if((H|0)==0&(I|0)==0){m=2<<G;f=p&(m|0-m);if(!f){F=t;break}m=(f&0-f)+-1|0;f=m>>>12&16;e=m>>>f;m=e>>>5&8;n=e>>>m;e=n>>>2&4;g=n>>>e;n=g>>>1&2;k=g>>>n;g=k>>>1&1;Q=0;R=c[8548+((m|f|e|n|g)+(k>>>g)<<2)>>2]|0}else{Q=I;R=H}if(!R){S=Q;T=J}else{L=Q;M=J;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(c[N+4>>2]&-8)-t|0;k=g>>>0<M>>>0;n=k?g:M;g=k?N:L;N=c[N+16+(((c[N+16>>2]|0)==0&1)<<2)>>2]|0;if(!N){S=g;T=n;break}else{L=g;M=n;K=85}}if((S|0)!=0?T>>>0<((c[2063]|0)-t|0)>>>0:0){n=c[2065]|0;if(S>>>0<n>>>0)Ab();g=S+t|0;if(S>>>0>=g>>>0)Ab();k=c[S+24>>2]|0;e=c[S+12>>2]|0;do if((e|0)==(S|0)){f=S+20|0;m=c[f>>2]|0;if(!m){s=S+16|0;r=c[s>>2]|0;if(!r){U=0;break}else{V=r;W=s}}else{V=m;W=f}while(1){f=V+20|0;m=c[f>>2]|0;if(m|0){V=m;W=f;continue}f=V+16|0;m=c[f>>2]|0;if(!m)break;else{V=m;W=f}}if(W>>>0<n>>>0)Ab();else{c[W>>2]=0;U=V;break}}else{f=c[S+8>>2]|0;if(f>>>0<n>>>0)Ab();m=f+12|0;if((c[m>>2]|0)!=(S|0))Ab();s=e+8|0;if((c[s>>2]|0)==(S|0)){c[m>>2]=e;c[s>>2]=f;U=e;break}else Ab()}while(0);c:do if(k){e=c[S+28>>2]|0;n=8548+(e<<2)|0;do if((S|0)==(c[n>>2]|0)){c[n>>2]=U;if(!U){f=p&~(1<<e);c[2062]=f;X=f;break c}}else if(k>>>0>=(c[2065]|0)>>>0){c[k+16+(((c[k+16>>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=p;break c}else break}else Ab();while(0);e=c[2065]|0;if(U>>>0<e>>>0)Ab();c[U+24>>2]=k;n=c[S+16>>2]|0;do if(n|0)if(n>>>0<e>>>0)Ab();else{c[U+16>>2]=n;c[n+24>>2]=U;break}while(0);n=c[S+20>>2]|0;if(n)if(n>>>0<(c[2065]|0)>>>0)Ab();else{c[U+20>>2]=n;c[n+24>>2]=U;X=p;break}else X=p}else X=p;while(0);do if(T>>>0>=16){c[S+4>>2]=t|3;c[g+4>>2]=T|1;c[g+T>>2]=T;p=T>>>3;if(T>>>0<256){k=8284+(p<<1<<2)|0;n=c[2061]|0;e=1<<p;if(n&e){p=k+8|0;f=c[p>>2]|0;if(f>>>0<(c[2065]|0)>>>0)Ab();else{Y=f;Z=p}}else{c[2061]=n|e;Y=k;Z=k+8|0}c[Z>>2]=g;c[Y+12>>2]=g;c[g+8>>2]=Y;c[g+12>>2]=k;break}k=T>>>8;if(k)if(T>>>0>16777215)_=31;else{e=(k+1048320|0)>>>16&8;n=k<<e;k=(n+520192|0)>>>16&4;p=n<<k;n=(p+245760|0)>>>16&2;f=14-(k|e|n)+(p<<n>>>15)|0;_=T>>>(f+7|0)&1|f<<1}else _=0;f=8548+(_<<2)|0;c[g+28>>2]=_;n=g+16|0;c[n+4>>2]=0;c[n>>2]=0;n=1<<_;if(!(X&n)){c[2062]=X|n;c[f>>2]=g;c[g+24>>2]=f;c[g+12>>2]=g;c[g+8>>2]=g;break}n=T<<((_|0)==31?0:25-(_>>>1)|0);p=c[f>>2]|0;while(1){if((c[p+4>>2]&-8|0)==(T|0)){K=139;break}$=p+16+(n>>>31<<2)|0;f=c[$>>2]|0;if(!f){K=136;break}else{n=n<<1;p=f}}if((K|0)==136)if($>>>0<(c[2065]|0)>>>0)Ab();else{c[$>>2]=g;c[g+24>>2]=p;c[g+12>>2]=g;c[g+8>>2]=g;break}else if((K|0)==139){n=p+8|0;f=c[n>>2]|0;e=c[2065]|0;if(f>>>0>=e>>>0&p>>>0>=e>>>0){c[f+12>>2]=g;c[n>>2]=g;c[g+8>>2]=f;c[g+12>>2]=p;c[g+24>>2]=0;break}else Ab()}}else{f=T+t|0;c[S+4>>2]=f|3;n=S+f+4|0;c[n>>2]=c[n>>2]|1}while(0);q=S+8|0;l=b;return q|0}else F=t}else F=t}else F=-1;while(0);S=c[2063]|0;if(S>>>0>=F>>>0){T=S-F|0;$=c[2066]|0;if(T>>>0>15){_=$+F|0;c[2066]=_;c[2063]=T;c[_+4>>2]=T|1;c[_+T>>2]=T;c[$+4>>2]=F|3}else{c[2063]=0;c[2066]=0;c[$+4>>2]=S|3;T=$+S+4|0;c[T>>2]=c[T>>2]|1}q=$+8|0;l=b;return q|0}$=c[2064]|0;if($>>>0>F>>>0){T=$-F|0;c[2064]=T;S=c[2067]|0;_=S+F|0;c[2067]=_;c[_+4>>2]=T|1;c[S+4>>2]=F|3;q=S+8|0;l=b;return q|0}if(!(c[2179]|0)){c[2181]=4096;c[2180]=4096;c[2182]=-1;c[2183]=-1;c[2184]=0;c[2172]=0;S=d&-16^1431655768;c[d>>2]=S;c[2179]=S;aa=4096}else aa=c[2181]|0;S=F+48|0;d=F+47|0;T=aa+d|0;_=0-aa|0;aa=T&_;if(aa>>>0<=F>>>0){q=0;l=b;return q|0}X=c[2171]|0;if(X|0?(Y=c[2169]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){q=0;l=b;return q|0}d:do if(!(c[2172]&4)){X=c[2067]|0;e:do if(X){Z=8692;while(1){Y=c[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(c[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=c[Z+8>>2]|0;if(!Y){K=163;break e}else Z=Y}p=T-$&_;if(p>>>0<2147483647){Y=nh(p|0)|0;if((Y|0)==((c[Z>>2]|0)+(c[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=p;else{da=p;ea=Y;K=180;break d}else{fa=Y;ga=p;K=171}}else ca=0}else K=163;while(0);do if((K|0)==163){X=nh(0)|0;if((X|0)!=(-1|0)?(t=X,p=c[2180]|0,Y=p+-1|0,U=((Y&t|0)==0?0:(Y+t&0-p)-t|0)+aa|0,t=c[2169]|0,p=U+t|0,U>>>0>F>>>0&U>>>0<2147483647):0){Y=c[2171]|0;if(Y|0?p>>>0<=t>>>0|p>>>0>Y>>>0:0){ca=0;break}Y=nh(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;K=180;break d}else{fa=Y;ga=U;K=171}}else ca=0}while(0);do if((K|0)==171){U=0-ga|0;if(!(S>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;K=180;break d}Y=c[2181]|0;X=d-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;K=180;break d}if((nh(X|0)|0)==(-1|0)){nh(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;K=180;break d}}while(0);c[2172]=c[2172]|4;ha=ca;K=178}else{ha=0;K=178}while(0);if(((K|0)==178?aa>>>0<2147483647:0)?(ca=nh(aa|0)|0,aa=nh(0)|0,fa=aa-ca|0,ga=fa>>>0>(F+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0<aa>>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;K=180}if((K|0)==180){ca=(c[2169]|0)+da|0;c[2169]=ca;if(ca>>>0>(c[2170]|0)>>>0)c[2170]=ca;ca=c[2067]|0;do if(ca){ha=8692;while(1){ia=c[ha>>2]|0;ja=ha+4|0;ka=c[ja>>2]|0;if((ea|0)==(ia+ka|0)){K=190;break}fa=c[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((K|0)==190?(c[ha+12>>2]&8|0)==0:0)?ca>>>0<ea>>>0&ca>>>0>=ia>>>0:0){c[ja>>2]=ka+da;fa=ca+8|0;ga=(fa&7|0)==0?0:0-fa&7;fa=ca+ga|0;aa=(c[2064]|0)+(da-ga)|0;c[2067]=fa;c[2064]=aa;c[fa+4>>2]=aa|1;c[fa+aa+4>>2]=40;c[2068]=c[2183];break}aa=c[2065]|0;if(ea>>>0<aa>>>0){c[2065]=ea;la=ea}else la=aa;aa=ea+da|0;fa=8692;while(1){if((c[fa>>2]|0)==(aa|0)){K=198;break}ga=c[fa+8>>2]|0;if(!ga)break;else fa=ga}if((K|0)==198?(c[fa+12>>2]&8|0)==0:0){c[fa>>2]=ea;ha=fa+4|0;c[ha>>2]=(c[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;d=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+F|0;S=d-ga-F|0;c[ga+4>>2]=F|3;do if((d|0)!=(ca|0)){if((d|0)==(c[2066]|0)){ba=(c[2063]|0)+S|0;c[2063]=ba;c[2066]=ha;c[ha+4>>2]=ba|1;c[ha+ba>>2]=ba;break}ba=c[d+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;f:do if(ba>>>0>=256){T=c[d+24>>2]|0;X=c[d+12>>2]|0;do if((X|0)==(d|0)){U=d+16|0;Y=U+4|0;p=c[Y>>2]|0;if(!p){t=c[U>>2]|0;if(!t){ma=0;break}else{na=t;oa=U}}else{na=p;oa=Y}while(1){Y=na+20|0;p=c[Y>>2]|0;if(p|0){na=p;oa=Y;continue}Y=na+16|0;p=c[Y>>2]|0;if(!p)break;else{na=p;oa=Y}}if(oa>>>0<la>>>0)Ab();else{c[oa>>2]=0;ma=na;break}}else{Y=c[d+8>>2]|0;if(Y>>>0<la>>>0)Ab();p=Y+12|0;if((c[p>>2]|0)!=(d|0))Ab();U=X+8|0;if((c[U>>2]|0)==(d|0)){c[p>>2]=X;c[U>>2]=Y;ma=X;break}else Ab()}while(0);if(!T)break;X=c[d+28>>2]|0;Y=8548+(X<<2)|0;do if((d|0)!=(c[Y>>2]|0))if(T>>>0>=(c[2065]|0)>>>0){c[T+16+(((c[T+16>>2]|0)!=(d|0)&1)<<2)>>2]=ma;if(!ma)break f;else break}else Ab();else{c[Y>>2]=ma;if(ma|0)break;c[2062]=c[2062]&~(1<<X);break f}while(0);X=c[2065]|0;if(ma>>>0<X>>>0)Ab();c[ma+24>>2]=T;Y=d+16|0;U=c[Y>>2]|0;do if(U|0)if(U>>>0<X>>>0)Ab();else{c[ma+16>>2]=U;c[U+24>>2]=ma;break}while(0);U=c[Y+4>>2]|0;if(!U)break;if(U>>>0<(c[2065]|0)>>>0)Ab();else{c[ma+20>>2]=U;c[U+24>>2]=ma;break}}else{U=c[d+8>>2]|0;X=c[d+12>>2]|0;T=8284+($<<1<<2)|0;do if((U|0)!=(T|0)){if(U>>>0<la>>>0)Ab();if((c[U+12>>2]|0)==(d|0))break;Ab()}while(0);if((X|0)==(U|0)){c[2061]=c[2061]&~(1<<$);break}do if((X|0)==(T|0))pa=X+8|0;else{if(X>>>0<la>>>0)Ab();Y=X+8|0;if((c[Y>>2]|0)==(d|0)){pa=Y;break}Ab()}while(0);c[U+12>>2]=X;c[pa>>2]=U}while(0);qa=d+_|0;ra=_+S|0}else{qa=d;ra=S}$=qa+4|0;c[$>>2]=c[$>>2]&-2;c[ha+4>>2]=ra|1;c[ha+ra>>2]=ra;$=ra>>>3;if(ra>>>0<256){ba=8284+($<<1<<2)|0;Z=c[2061]|0;T=1<<$;do if(!(Z&T)){c[2061]=Z|T;sa=ba;ta=ba+8|0}else{$=ba+8|0;Y=c[$>>2]|0;if(Y>>>0>=(c[2065]|0)>>>0){sa=Y;ta=$;break}Ab()}while(0);c[ta>>2]=ha;c[sa+12>>2]=ha;c[ha+8>>2]=sa;c[ha+12>>2]=ba;break}T=ra>>>8;do if(!T)ua=0;else{if(ra>>>0>16777215){ua=31;break}Z=(T+1048320|0)>>>16&8;_=T<<Z;$=(_+520192|0)>>>16&4;Y=_<<$;_=(Y+245760|0)>>>16&2;p=14-($|Z|_)+(Y<<_>>>15)|0;ua=ra>>>(p+7|0)&1|p<<1}while(0);T=8548+(ua<<2)|0;c[ha+28>>2]=ua;ba=ha+16|0;c[ba+4>>2]=0;c[ba>>2]=0;ba=c[2062]|0;p=1<<ua;if(!(ba&p)){c[2062]=ba|p;c[T>>2]=ha;c[ha+24>>2]=T;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}p=ra<<((ua|0)==31?0:25-(ua>>>1)|0);ba=c[T>>2]|0;while(1){if((c[ba+4>>2]&-8|0)==(ra|0)){K=265;break}va=ba+16+(p>>>31<<2)|0;T=c[va>>2]|0;if(!T){K=262;break}else{p=p<<1;ba=T}}if((K|0)==262)if(va>>>0<(c[2065]|0)>>>0)Ab();else{c[va>>2]=ha;c[ha+24>>2]=ba;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}else if((K|0)==265){p=ba+8|0;T=c[p>>2]|0;_=c[2065]|0;if(T>>>0>=_>>>0&ba>>>0>=_>>>0){c[T+12>>2]=ha;c[p>>2]=ha;c[ha+8>>2]=T;c[ha+12>>2]=ba;c[ha+24>>2]=0;break}else Ab()}}else{T=(c[2064]|0)+S|0;c[2064]=T;c[2067]=ha;c[ha+4>>2]=T|1}while(0);q=ga+8|0;l=b;return q|0}ha=8692;while(1){S=c[ha>>2]|0;if(S>>>0<=ca>>>0?(wa=S+(c[ha+4>>2]|0)|0,wa>>>0>ca>>>0):0)break;ha=c[ha+8>>2]|0}ha=wa+-47|0;ga=ha+8|0;S=ha+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+16|0;ha=S>>>0<ga>>>0?ca:S;S=ha+8|0;d=ea+8|0;aa=(d&7|0)==0?0:0-d&7;d=ea+aa|0;fa=da+-40-aa|0;c[2067]=d;c[2064]=fa;c[d+4>>2]=fa|1;c[d+fa+4>>2]=40;c[2068]=c[2183];fa=ha+4|0;c[fa>>2]=27;c[S>>2]=c[2173];c[S+4>>2]=c[2174];c[S+8>>2]=c[2175];c[S+12>>2]=c[2176];c[2173]=ea;c[2174]=da;c[2176]=0;c[2175]=S;S=ha+24|0;do{d=S;S=S+4|0;c[S>>2]=7}while((d+8|0)>>>0<wa>>>0);if((ha|0)!=(ca|0)){S=ha-ca|0;c[fa>>2]=c[fa>>2]&-2;c[ca+4>>2]=S|1;c[ha>>2]=S;d=S>>>3;if(S>>>0<256){aa=8284+(d<<1<<2)|0;T=c[2061]|0;p=1<<d;if(T&p){d=aa+8|0;_=c[d>>2]|0;if(_>>>0<(c[2065]|0)>>>0)Ab();else{xa=_;ya=d}}else{c[2061]=T|p;xa=aa;ya=aa+8|0}c[ya>>2]=ca;c[xa+12>>2]=ca;c[ca+8>>2]=xa;c[ca+12>>2]=aa;break}aa=S>>>8;if(aa)if(S>>>0>16777215)za=31;else{p=(aa+1048320|0)>>>16&8;T=aa<<p;aa=(T+520192|0)>>>16&4;d=T<<aa;T=(d+245760|0)>>>16&2;_=14-(aa|p|T)+(d<<T>>>15)|0;za=S>>>(_+7|0)&1|_<<1}else za=0;_=8548+(za<<2)|0;c[ca+28>>2]=za;c[ca+20>>2]=0;c[ga>>2]=0;T=c[2062]|0;d=1<<za;if(!(T&d)){c[2062]=T|d;c[_>>2]=ca;c[ca+24>>2]=_;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}d=S<<((za|0)==31?0:25-(za>>>1)|0);T=c[_>>2]|0;while(1){if((c[T+4>>2]&-8|0)==(S|0)){K=292;break}Aa=T+16+(d>>>31<<2)|0;_=c[Aa>>2]|0;if(!_){K=289;break}else{d=d<<1;T=_}}if((K|0)==289)if(Aa>>>0<(c[2065]|0)>>>0)Ab();else{c[Aa>>2]=ca;c[ca+24>>2]=T;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}else if((K|0)==292){d=T+8|0;S=c[d>>2]|0;ga=c[2065]|0;if(S>>>0>=ga>>>0&T>>>0>=ga>>>0){c[S+12>>2]=ca;c[d>>2]=ca;c[ca+8>>2]=S;c[ca+12>>2]=T;c[ca+24>>2]=0;break}else Ab()}}}else{S=c[2065]|0;if((S|0)==0|ea>>>0<S>>>0)c[2065]=ea;c[2173]=ea;c[2174]=da;c[2176]=0;c[2070]=c[2179];c[2069]=-1;S=0;do{d=8284+(S<<1<<2)|0;c[d+12>>2]=d;c[d+8>>2]=d;S=S+1|0}while((S|0)!=32);S=ea+8|0;T=(S&7|0)==0?0:0-S&7;S=ea+T|0;d=da+-40-T|0;c[2067]=S;c[2064]=d;c[S+4>>2]=d|1;c[S+d+4>>2]=40;c[2068]=c[2183]}while(0);da=c[2064]|0;if(da>>>0>F>>>0){ea=da-F|0;c[2064]=ea;da=c[2067]|0;ca=da+F|0;c[2067]=ca;c[ca+4>>2]=ea|1;c[da+4>>2]=F|3;q=da+8|0;l=b;return q|0}}c[(kf()|0)>>2]=12;q=0;l=b;return q|0}function bg(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;if(!a)return;b=a+-8|0;d=c[2065]|0;if(b>>>0<d>>>0)Ab();e=c[a+-4>>2]|0;a=e&3;if((a|0)==1)Ab();f=e&-8;g=b+f|0;a:do if(!(e&1)){h=c[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+f|0;if(i>>>0<d>>>0)Ab();if((i|0)==(c[2066]|0)){k=g+4|0;l=c[k>>2]|0;if((l&3|0)!=3){m=i;n=j;o=i;break}c[2063]=j;c[k>>2]=l&-2;c[i+4>>2]=j|1;c[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=c[i+8>>2]|0;k=c[i+12>>2]|0;p=8284+(l<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0<d>>>0)Ab();if((c[h+12>>2]|0)!=(i|0))Ab()}if((k|0)==(h|0)){c[2061]=c[2061]&~(1<<l);m=i;n=j;o=i;break}if((k|0)!=(p|0)){if(k>>>0<d>>>0)Ab();p=k+8|0;if((c[p>>2]|0)==(i|0))q=p;else Ab()}else q=k+8|0;c[h+12>>2]=k;c[q>>2]=h;m=i;n=j;o=i;break}h=c[i+24>>2]|0;k=c[i+12>>2]|0;do if((k|0)==(i|0)){p=i+16|0;l=p+4|0;r=c[l>>2]|0;if(!r){s=c[p>>2]|0;if(!s){t=0;break}else{u=s;v=p}}else{u=r;v=l}while(1){l=u+20|0;r=c[l>>2]|0;if(r|0){u=r;v=l;continue}l=u+16|0;r=c[l>>2]|0;if(!r)break;else{u=r;v=l}}if(v>>>0<d>>>0)Ab();else{c[v>>2]=0;t=u;break}}else{l=c[i+8>>2]|0;if(l>>>0<d>>>0)Ab();r=l+12|0;if((c[r>>2]|0)!=(i|0))Ab();p=k+8|0;if((c[p>>2]|0)==(i|0)){c[r>>2]=k;c[p>>2]=l;t=k;break}else Ab()}while(0);if(h){k=c[i+28>>2]|0;l=8548+(k<<2)|0;do if((i|0)==(c[l>>2]|0)){c[l>>2]=t;if(!t){c[2062]=c[2062]&~(1<<k);m=i;n=j;o=i;break a}}else if(h>>>0>=(c[2065]|0)>>>0){c[h+16+(((c[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=t;if(!t){m=i;n=j;o=i;break a}else break}else Ab();while(0);k=c[2065]|0;if(t>>>0<k>>>0)Ab();c[t+24>>2]=h;l=i+16|0;p=c[l>>2]|0;do if(p|0)if(p>>>0<k>>>0)Ab();else{c[t+16>>2]=p;c[p+24>>2]=t;break}while(0);p=c[l+4>>2]|0;if(p)if(p>>>0<(c[2065]|0)>>>0)Ab();else{c[t+20>>2]=p;c[p+24>>2]=t;m=i;n=j;o=i;break}else{m=i;n=j;o=i}}else{m=i;n=j;o=i}}else{m=b;n=f;o=b}while(0);if(o>>>0>=g>>>0)Ab();b=g+4|0;f=c[b>>2]|0;if(!(f&1))Ab();if(!(f&2)){t=c[2066]|0;if((g|0)==(c[2067]|0)){d=(c[2064]|0)+n|0;c[2064]=d;c[2067]=m;c[m+4>>2]=d|1;if((m|0)!=(t|0))return;c[2066]=0;c[2063]=0;return}if((g|0)==(t|0)){t=(c[2063]|0)+n|0;c[2063]=t;c[2066]=o;c[m+4>>2]=t|1;c[o+t>>2]=t;return}t=(f&-8)+n|0;d=f>>>3;b:do if(f>>>0>=256){u=c[g+24>>2]|0;v=c[g+12>>2]|0;do if((v|0)==(g|0)){q=g+16|0;a=q+4|0;e=c[a>>2]|0;if(!e){p=c[q>>2]|0;if(!p){w=0;break}else{x=p;y=q}}else{x=e;y=a}while(1){a=x+20|0;e=c[a>>2]|0;if(e|0){x=e;y=a;continue}a=x+16|0;e=c[a>>2]|0;if(!e)break;else{x=e;y=a}}if(y>>>0<(c[2065]|0)>>>0)Ab();else{c[y>>2]=0;w=x;break}}else{a=c[g+8>>2]|0;if(a>>>0<(c[2065]|0)>>>0)Ab();e=a+12|0;if((c[e>>2]|0)!=(g|0))Ab();q=v+8|0;if((c[q>>2]|0)==(g|0)){c[e>>2]=v;c[q>>2]=a;w=v;break}else Ab()}while(0);if(u|0){v=c[g+28>>2]|0;i=8548+(v<<2)|0;do if((g|0)==(c[i>>2]|0)){c[i>>2]=w;if(!w){c[2062]=c[2062]&~(1<<v);break b}}else if(u>>>0>=(c[2065]|0)>>>0){c[u+16+(((c[u+16>>2]|0)!=(g|0)&1)<<2)>>2]=w;if(!w)break b;else break}else Ab();while(0);v=c[2065]|0;if(w>>>0<v>>>0)Ab();c[w+24>>2]=u;i=g+16|0;j=c[i>>2]|0;do if(j|0)if(j>>>0<v>>>0)Ab();else{c[w+16>>2]=j;c[j+24>>2]=w;break}while(0);j=c[i+4>>2]|0;if(j|0)if(j>>>0<(c[2065]|0)>>>0)Ab();else{c[w+20>>2]=j;c[j+24>>2]=w;break}}}else{j=c[g+8>>2]|0;v=c[g+12>>2]|0;u=8284+(d<<1<<2)|0;if((j|0)!=(u|0)){if(j>>>0<(c[2065]|0)>>>0)Ab();if((c[j+12>>2]|0)!=(g|0))Ab()}if((v|0)==(j|0)){c[2061]=c[2061]&~(1<<d);break}if((v|0)!=(u|0)){if(v>>>0<(c[2065]|0)>>>0)Ab();u=v+8|0;if((c[u>>2]|0)==(g|0))z=u;else Ab()}else z=v+8|0;c[j+12>>2]=v;c[z>>2]=j}while(0);c[m+4>>2]=t|1;c[o+t>>2]=t;if((m|0)==(c[2066]|0)){c[2063]=t;return}else A=t}else{c[b>>2]=f&-2;c[m+4>>2]=n|1;c[o+n>>2]=n;A=n}n=A>>>3;if(A>>>0<256){o=8284+(n<<1<<2)|0;f=c[2061]|0;b=1<<n;if(f&b){n=o+8|0;t=c[n>>2]|0;if(t>>>0<(c[2065]|0)>>>0)Ab();else{B=t;C=n}}else{c[2061]=f|b;B=o;C=o+8|0}c[C>>2]=m;c[B+12>>2]=m;c[m+8>>2]=B;c[m+12>>2]=o;return}o=A>>>8;if(o)if(A>>>0>16777215)D=31;else{B=(o+1048320|0)>>>16&8;C=o<<B;o=(C+520192|0)>>>16&4;b=C<<o;C=(b+245760|0)>>>16&2;f=14-(o|B|C)+(b<<C>>>15)|0;D=A>>>(f+7|0)&1|f<<1}else D=0;f=8548+(D<<2)|0;c[m+28>>2]=D;c[m+20>>2]=0;c[m+16>>2]=0;C=c[2062]|0;b=1<<D;do if(C&b){B=A<<((D|0)==31?0:25-(D>>>1)|0);o=c[f>>2]|0;while(1){if((c[o+4>>2]&-8|0)==(A|0)){E=124;break}F=o+16+(B>>>31<<2)|0;n=c[F>>2]|0;if(!n){E=121;break}else{B=B<<1;o=n}}if((E|0)==121)if(F>>>0<(c[2065]|0)>>>0)Ab();else{c[F>>2]=m;c[m+24>>2]=o;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((E|0)==124){B=o+8|0;i=c[B>>2]|0;n=c[2065]|0;if(i>>>0>=n>>>0&o>>>0>=n>>>0){c[i+12>>2]=m;c[B>>2]=m;c[m+8>>2]=i;c[m+12>>2]=o;c[m+24>>2]=0;break}else Ab()}}else{c[2062]=C|b;c[f>>2]=m;c[m+24>>2]=f;c[m+12>>2]=m;c[m+8>>2]=m}while(0);m=(c[2069]|0)+-1|0;c[2069]=m;if(!m)G=8700;else return;while(1){m=c[G>>2]|0;if(!m)break;else G=m+8|0}c[2069]=-1;return}function cg(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return}function dg(a){a=a|0;ua(7199,7222,304,7475)}function eg(a){a=a|0;ua(7312,7222,315,7335)}function fg(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=ag(b)|0;if(a|0){c=a;break}a=ah()|0;if(!a){c=0;break}qc[a&3]()}return c|0}function gg(a){a=a|0;bg(a);return}function hg(a){a=a|0;ua(7356,7385,1183,7475)}function ig(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;if(e>>>0<=4294967279)if(e>>>0<11){a[b+11>>0]=e;h=b}else i=5;else{hg(b);i=5}if((i|0)==5){i=e+16&-16;j=fg(i)|0;c[b>>2]=j;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;h=j}jg(h,d,e)|0;a[g>>0]=0;cg(h+e|0,g);l=f;return}function jg(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)jh(a|0,b|0,c|0)|0;return a|0}function kg(b){b=b|0;if((a[b+11>>0]|0)<0)gg(c[b>>2]|0);return}function lg(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=mg()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=c[463];ng(7582,d)}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k;k=c[h>>2]|0;h=c[k+4>>2]|0;j=dc[c[(c[166]|0)+16>>2]&15](664,k,g)|0;k=c[463]|0;if(j){j=c[g>>2]|0;g=mc[c[(c[j>>2]|0)+8>>2]&15](j)|0;c[f>>2]=k;c[f+4>>2]=h;c[f+8>>2]=g;ng(7496,f)}else{c[e>>2]=k;c[e+4>>2]=h;ng(7541,e)}}ng(7620,b)}function mg(){var a=0,b=0;a=l;l=l+16|0;if(!(Wa(8740,2)|0)){b=pb(c[2186]|0)|0;l=a;return b|0}else ng(7771,a);return 0}function ng(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[430]|0;rf(b,a,e)|0;_f(10,b)|0;Ab()}function og(a){a=a|0;return}function pg(a){a=a|0;og(a);gg(a);return}function qg(a){a=a|0;return}function rg(a){a=a|0;return}function sg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;if(!(wg(a,b,0)|0))if((b|0)!=0?(g=Ag(b,688,672,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|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;wc[c[(c[g>>2]|0)+28>>2]&7](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1}else i=0;j=i}else j=0;else j=1;l=e;return j|0}function tg(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(wg(a,c[b+8>>2]|0,g)|0)zg(0,b,d,e,f);return}function ug(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;do if(!(wg(b,c[d+8>>2]|0,g)|0)){if(wg(b,c[d>>2]|0,g)|0){h=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[h>>2]=f;c[i>>2]=e;i=d+40|0;c[i>>2]=(c[i>>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[h>>2]=1}}else yg(0,d,e,f);while(0);return}function vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(wg(a,c[b+8>>2]|0,0)|0)xg(0,b,d,e);return}function wg(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function xg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=d+16|0;g=c[b>>2]|0;h=d+36|0;i=d+24|0;do if(g){if((g|0)!=(e|0)){c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=2;a[d+54>>0]=1;break}if((c[i>>2]|0)==2)c[i>>2]=f}else{c[b>>2]=e;c[i>>2]=f;c[h>>2]=1}while(0);return}function yg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return}function zg(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;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;i=d+54|0;j=d+48|0;k=d+24|0;l=d+36|0;if(!h){c[b>>2]=e;c[k>>2]=g;c[l>>2]=1;if(!((c[j>>2]|0)==1&(g|0)==1))break;a[i>>0]=1;break}if((h|0)!=(e|0)){c[l>>2]=(c[l>>2]|0)+1;a[i>>0]=1;break}l=c[k>>2]|0;if((l|0)==2){c[k>>2]=g;m=g}else m=l;if((c[j>>2]|0)==1&(m|0)==1)a[i>>0]=1}while(0);return}function Ag(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+-8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(wg(m,f,0)|0){c[i+48>>2]=1;ec[c[(c[m>>2]|0)+20>>2]&3](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0}else{fc[c[(c[m>>2]|0)+24>>2]&7](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{r=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break}r=c[g>>2]|0}while(0);l=h;return r|0}function Bg(a){a=a|0;og(a);gg(a);return}function Cg(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(wg(a,c[b+8>>2]|0,g)|0)zg(0,b,d,e,f);else{h=c[a+8>>2]|0;ec[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function Dg(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,o=0,p=0,q=0;do if(!(wg(b,c[d+8>>2]|0,g)|0)){h=b+8|0;if(!(wg(b,c[d>>2]|0,g)|0)){i=c[h>>2]|0;fc[c[(c[i>>2]|0)+24>>2]&7](i,d,e,f,g);break}i=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(j=d+20|0,(c[j>>2]|0)!=(e|0)):0){c[i>>2]=f;k=d+44|0;if((c[k>>2]|0)==4)break;l=d+52|0;a[l>>0]=0;m=d+53|0;a[m>>0]=0;n=c[h>>2]|0;ec[c[(c[n>>2]|0)+20>>2]&3](n,d,e,e,1,g);if(a[m>>0]|0)if(!(a[l>>0]|0)){o=3;p=11}else q=3;else{o=4;p=11}if((p|0)==11){c[j>>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;q=o}else q=o}c[k>>2]=q;break}if((f|0)==1)c[i>>2]=1}else yg(0,d,e,f);while(0);return}function Eg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(wg(a,c[b+8>>2]|0,0)|0)xg(0,b,d,e);else{f=c[a+8>>2]|0;wc[c[(c[f>>2]|0)+28>>2]&7](f,b,d,e)}return}function Fg(a){a=a|0;return}function Gg(){var a=0;a=l;l=l+16|0;if(!(vb(8744,26)|0)){l=a;return}else ng(7820,a)}function Hg(a){a=a|0;var b=0;b=l;l=l+16|0;bg(a);if(!(Yb(c[2186]|0,0)|0)){l=b;return}else ng(7870,b)}function Ig(){var a=0,b=0;a=mg()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)Jg(c[b+12>>2]|0);Jg(Kg()|0)}function Jg(a){a=a|0;var b=0;b=l;l=l+16|0;qc[a&3]();ng(7923,b)}function Kg(){var a=0;a=c[462]|0;c[462]=a+0;return a|0}function Lg(a){a=a|0;return}function Mg(a){a=a|0;Lg(a);gg(a);return}function Ng(a){a=a|0;return 7963}function Og(a){a=a|0;return}function Pg(a){a=a|0;og(a);gg(a);return}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;return wg(a,b,0)|0}function Rg(a){a=a|0;og(a);gg(a);return}function Sg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;c[d>>2]=c[c[d>>2]>>2];if(!(Tg(a,b,0)|0))if(((b|0)!=0?(g=Ag(b,688,760,0)|0,(g|0)!=0):0)?(c[g+8>>2]&~c[a+8>>2]|0)==0:0){b=a+12|0;a=g+12|0;if(!(wg(c[b>>2]|0,c[a>>2]|0,0)|0)?!(wg(c[b>>2]|0,792,0)|0):0){g=c[b>>2]|0;if((((g|0)!=0?(b=Ag(g,688,672,0)|0,(b|0)!=0):0)?(g=c[a>>2]|0,(g|0)!=0):0)?(a=Ag(g,688,672,0)|0,(a|0)!=0):0){g=f+4|0;h=g+52|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));c[f>>2]=a;c[f+8>>2]=b;c[f+12>>2]=-1;c[f+48>>2]=1;wc[c[(c[a>>2]|0)+28>>2]&7](a,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1}else i=0;j=i}else j=0}else j=1}else j=0;else j=1;l=e;return j|0}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(wg(a,b,0)|0)d=1;else d=wg(b,800,0)|0;return d|0}function Ug(a){a=a|0;og(a);gg(a);return}function Vg(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(wg(b,c[d+8>>2]|0,h)|0)zg(0,d,e,f,g);else{i=d+52|0;j=a[i>>0]|0;k=d+53|0;l=a[k>>0]|0;m=c[b+12>>2]|0;n=b+16+(m<<3)|0;a[i>>0]=0;a[k>>0]=0;Zg(b+16|0,d,e,f,g,h);a:do if((m|0)>1){o=d+24|0;p=d+54|0;q=b+8|0;r=b+24|0;do{if(a[p>>0]|0)break a;if(!(a[i>>0]|0)){if(a[k>>0]|0?(c[q>>2]&1|0)==0:0)break a}else{if((c[o>>2]|0)==1)break a;if(!(c[q>>2]&2))break a}a[i>>0]=0;a[k>>0]=0;Zg(r,d,e,f,g,h);r=r+8|0}while(r>>>0<n>>>0)}while(0);a[i>>0]=j;a[k>>0]=l}return}function Wg(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,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;a:do if(!(wg(b,c[d+8>>2]|0,g)|0)){h=b+12|0;i=d+24|0;j=d+36|0;k=d+54|0;l=b+8|0;m=b+16|0;if(!(wg(b,c[d>>2]|0,g)|0)){n=c[h>>2]|0;o=b+16+(n<<3)|0;_g(m,d,e,f,g);p=b+24|0;if((n|0)<=1)break;n=c[l>>2]|0;if((n&2|0)==0?(c[j>>2]|0)!=1:0){if(!(n&1)){n=p;while(1){if(a[k>>0]|0)break a;if((c[j>>2]|0)==1)break a;_g(n,d,e,f,g);n=n+8|0;if(n>>>0>=o>>>0)break a}}else q=p;while(1){if(a[k>>0]|0)break a;if((c[j>>2]|0)==1?(c[i>>2]|0)==1:0)break a;_g(q,d,e,f,g);q=q+8|0;if(q>>>0>=o>>>0)break a}}else r=p;while(1){if(a[k>>0]|0)break a;_g(r,d,e,f,g);r=r+8|0;if(r>>>0>=o>>>0)break a}}o=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[o>>2]=f;n=d+44|0;if((c[n>>2]|0)==4)break;s=b+16+(c[h>>2]<<3)|0;t=d+52|0;u=d+53|0;v=0;w=m;x=0;b:while(1){if(w>>>0>=s>>>0){y=v;z=18;break}a[t>>0]=0;a[u>>0]=0;Zg(w,d,e,e,1,g);if(a[k>>0]|0){y=v;z=18;break}do if(a[u>>0]|0){if(!(a[t>>0]|0))if(!(c[l>>2]&1)){y=1;z=18;break b}else{A=1;B=x;break}if((c[i>>2]|0)==1){z=23;break b}if(!(c[l>>2]&2)){z=23;break b}else{A=1;B=1}}else{A=v;B=x}while(0);v=A;w=w+8|0;x=B}do if((z|0)==18){if((!x?(c[p>>2]=e,w=d+40|0,c[w>>2]=(c[w>>2]|0)+1,(c[j>>2]|0)==1):0)?(c[i>>2]|0)==2:0){a[k>>0]=1;if(y){z=23;break}else{C=4;break}}if(y)z=23;else C=4}while(0);if((z|0)==23)C=3;c[n>>2]=C;break}if((f|0)==1)c[o>>2]=1}else yg(0,d,e,f);while(0);return}function Xg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if(!(wg(b,c[d+8>>2]|0,0)|0)){g=c[b+12>>2]|0;h=b+16+(g<<3)|0;Yg(b+16|0,d,e,f);if((g|0)>1){g=d+54|0;i=b+24|0;do{Yg(i,d,e,f);if(a[g>>0]|0)break a;i=i+8|0}while(i>>>0<h>>>0)}}else xg(0,d,e,f);while(0);return}function Yg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a+4>>2]|0;g=f>>8;if(!(f&1))h=g;else h=c[(c[d>>2]|0)+g>>2]|0;g=c[a>>2]|0;wc[c[(c[g>>2]|0)+28>>2]&7](g,b,d+h|0,f&2|0?e:2);return}function Zg(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,i=0,j=0;h=c[a+4>>2]|0;i=h>>8;if(!(h&1))j=i;else j=c[(c[e>>2]|0)+i>>2]|0;i=c[a>>2]|0;ec[c[(c[i>>2]|0)+20>>2]&3](i,b,d,e+j|0,h&2|0?f:2,g);return}function _g(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a+4>>2]|0;h=g>>8;if(!(g&1))i=h;else i=c[(c[d>>2]|0)+h>>2]|0;h=c[a>>2]|0;fc[c[(c[h>>2]|0)+24>>2]&7](h,b,d+i|0,g&2|0?e:2,f);return}function $g(a){a=a|0;c[a>>2]=1944;return}function ah(){var a=0;a=c[2187]|0;c[2187]=a+0;return a|0}function bh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=dc[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0}function ch(a){a=a|0;var b=0;if(!a)b=0;else b=(Ag(a,688,760,0)|0)!=0;return b&1|0}function dh(){}function eh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (z=e,a-c>>>0|0)|0}function fh(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;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function gh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}z=a<<c-32;return 0}function hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (z=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function ih(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}z=0;return b>>>c-32|0}function jh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return za(b|0,d|0,e|0)|0;f=b|0;g=b+e|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}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function kh(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function lh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (z=n,o)|0}else{if(!m){n=0;o=0;return (z=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (z=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(R(l|0)|0)-(R(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (z=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (z=n,o)|0}r=j-1|0;if(r&j|0){s=(R(j|0)|0)+33-(R(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<<p|g>>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(A>>>0))&y|g<<p&s-33>>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (z=n,o)|0}else{r=kh(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (z=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (z=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (z=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((kh(l|0)|0)>>>0);return (z=n,o)|0}r=(R(l|0)|0)-(R(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (z=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (z=n,o)|0}while(0);if(!t){C=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=hh(b|0,d|0,-1,-1)|0;k=z;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;eh(e|0,k|0,g|0,a|0)|0;i=z;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=eh(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=z;u=u-1|0}while((u|0)!=0);C=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (z=n,o)|0}function mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return lh(a,b,c,d,0)|0}function nh(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){W()|0;Qa(12);return -1}c[i>>2]=d;if((d|0)>(V()|0)?(U()|0)==0:0){c[i>>2]=b;Qa(12);return -1}return b|0}function oh(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else jh(b,c,d)|0;return b|0}function ph(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f|0;lh(a,b,d,e,g)|0;l=f;return (z=c[g+4>>2]|0,c[g>>2]|0)|0}function qh(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function rh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return dc[a&15](b|0,c|0,d|0)|0}function sh(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;ec[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function th(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;fc[a&7](b|0,c|0,d|0,e|0,f|0)}function uh(a,b,c){a=a|0;b=b|0;c=c|0;return +gc[a&1](b|0,c|0)}function vh(a,b){a=a|0;b=b|0;return +hc[a&3](b|0)}function wh(a){a=a|0;return ic[a&7]()|0}function xh(a,b){a=a|0;b=b|0;jc[a&31](b|0)}function yh(a,b,c){a=a|0;b=b|0;c=c|0;kc[a&7](b|0,c|0)}function zh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;lc[a&3](b|0,c|0,d|0,e|0,f|0,+g,h|0)}function Ah(a,b){a=a|0;b=b|0;return mc[a&15](b|0)|0}function Bh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;nc[a&3](b|0,c|0,d|0,+e)}function Ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;oc[a&7](b|0,c|0,d|0)}function Dh(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;pc[a&7](b|0,c|0,d|0,e|0,f|0,+g)}function Eh(a){a=a|0;qc[a&3]()}function Fh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;rc[a&3](b|0,c|0,+d)}function Gh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return sc[a&1](b|0,c|0,d|0,e|0)|0}function Hh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;h=+h;tc[a&3](b|0,c|0,d|0,e|0,f|0,+g,+h)}function Ih(a,b,c){a=a|0;b=b|0;c=c|0;return uc[a&7](b|0,c|0)|0}function Jh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return vc[a&3](b|0,c|0,d|0,+e)|0}function Kh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;wc[a&7](b|0,c|0,d|0,e|0)}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;S(0);return 0}function Mh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;S(1)}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(2)}function Oh(a,b){a=a|0;b=b|0;S(3);return 0.0}function Ph(a){a=a|0;S(4);return 0.0}function Qh(){S(5);return 0}function Rh(a){a=a|0;S(6)}function Sh(a,b){a=a|0;b=b|0;S(7)}function Th(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=g|0;S(8)}function Uh(a){a=a|0;S(9);return 0}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;S(10)}function Wh(a,b,c){a=a|0;b=b|0;c=c|0;S(11)}function Xh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;S(12)}function Yh(){S(13)}function Zh(a,b,c){a=a|0;b=b|0;c=+c;S(14)}function _h(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(15);return 0}function $h(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;S(16)}function ai(a,b){a=a|0;b=b|0;S(17);return 0}function bi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;S(18);return 0}function ci(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(19)}
7 
8 // EMSCRIPTEN_END_FUNCS
9 var dc=[Lh,gf,hf,nf,sg,Qg,Sg,pe,ge,Ce,te,Se,Ie,Lh,Lh,Lh];var ec=[Mh,tg,Cg,Vg];var fc=[Nh,ug,Dg,Wg,Ye,Nh,Nh,Nh];var gc=[Oh,Ze];var hc=[Ph,Jc,Kc,Ph];var ic=[Qh,ke,xe,Ne,We,Qh,Qh,Qh];var jc=[Rh,wd,xd,Jd,Sd,Td,Vd,Wd,Zd,_d,be,ce,og,pg,qg,rg,Bg,Lg,Mg,Pg,Rg,Ug,je,we,Me,Ve,Hg,Rh,Rh,Rh,Rh,Rh];var kc=[Sh,Xc,Yd,Ee,Mc,Oc,Sh,Sh];var lc=[Th,yd,Kd,Th];var mc=[Uh,ff,Ng,ie,le,Ec,ve,ye,Hc,Le,Oe,Ge,Ue,Xe,Lc,Uh];var nc=[Vh,ne,Ae,Vh];var oc=[Wh,ee,fe,re,se,Pe,Fe,He];var pc=[Xh,Ad,Md,Ud,Xd,$d,de,Xh];var qc=[Yh,lg,Gg,Yh];var rc=[Zh,me,ze,Zh];var sc=[_h,Te];var tc=[$h,zd,Ld,$h];var uc=[ai,oe,Be,Re,_e,$e,af,ai];var vc=[bi,qe,De,bi];var wc=[ci,vg,Eg,Xg,Qe,Gc,ci,ci];return{stackSave:yc,getTempRet0:Dc,_memset:fh,__GLOBAL__sub_I_fos_js_cpp:bf,_bitshift64Lshr:ih,_bitshift64Shl:gh,_fflush:Wf,___cxa_is_pointer_type:ch,_llvm_cttz_i32:kh,_sbrk:nh,_memcpy:jh,_llvm_bswap_i32:qh,___uremdi3:ph,stackAlloc:xc,_i64Subtract:eh,__GLOBAL__sub_I_bind_cpp:cf,___udivmoddi4:lh,setTempRet0:Cc,_i64Add:hh,_emscripten_get_global_libc:pf,___getTypeName:ef,___udivdi3:mh,___errno_location:kf,___cxa_can_catch:bh,_free:bg,runPostSets:dh,setThrew:Bc,establishStackSpace:Ac,_memmove:oh,stackRestore:zc,_malloc:ag,stackAlloc:xc,stackSave:yc,stackRestore:zc,establishStackSpace:Ac,setThrew:Bc,setTempRet0:Cc,getTempRet0:Dc,dynCall_iiii:rh,dynCall_viiiiii:sh,dynCall_viiiii:th,dynCall_dii:uh,dynCall_di:vh,dynCall_i:wh,dynCall_vi:xh,dynCall_vii:yh,dynCall_viiiiidi:zh,dynCall_ii:Ah,dynCall_viiid:Bh,dynCall_viii:Ch,dynCall_viiiiid:Dh,dynCall_v:Eh,dynCall_viid:Fh,dynCall_iiiii:Gh,dynCall_viiiiidd:Hh,dynCall_iii:Ih,dynCall_iiiid:Jh,dynCall_viiii:Kh}})
10 
11 
12 // EMSCRIPTEN_END_ASM
13 (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _memset=Module["_memset"]=asm["_memset"];var __GLOBAL__sub_I_fos_js_cpp=Module["__GLOBAL__sub_I_fos_js_cpp"]=asm["__GLOBAL__sub_I_fos_js_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setThrew=Module["setThrew"]=asm["setThrew"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _memmove=Module["_memmove"]=asm["_memmove"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viiiiidi=Module["dynCall_viiiiidi"]=asm["dynCall_viiiiidi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiid=Module["dynCall_viiid"]=asm["dynCall_viiid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiiid=Module["dynCall_viiiiid"]=asm["dynCall_viiiiid"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiidd=Module["dynCall_viiiiidd"]=asm["dynCall_viiiiidd"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiid=Module["dynCall_iiiid"]=asm["dynCall_iiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;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);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];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(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].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){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{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}Module.printErr("exception thrown: "+toLog);Module["quit"](1,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["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](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()
14 
15 
16 
17