From 80e376906605611709bfd3c05a2f96c87f36c1e1 Mon Sep 17 00:00:00 2001 From: Brian Armstrong Date: Sun, 20 Jan 2019 22:51:01 -0800 Subject: [PATCH] Module system + submodules + build script --- .gitignore | 3 + .gitmodules | 12 ++ examples/text/receivetext.html | 3 +- examples/text/receivetext.js | 7 +- examples/text/sendtext.html | 3 +- examples/text/sendtext.js | 8 +- package.json | 18 ++ quiet-emscripten.js | 23 ++- quiet-emscripten.js.mem | Bin 45051 -> 42825 bytes quiet.js | 189 +++++++++++-------- src/c_src/Emscripten.cmake | 335 +++++++++++++++++++++++++++++++++ src/c_src/build-emscripten.sh | 106 +++++++++++ src/c_src/emscripten-post.js | 1 + src/c_src/emscripten-pre.js | 1 + src/c_src/jansson | 1 + src/c_src/libcorrect | 1 + src/c_src/liquid-dsp | 1 + src/c_src/quiet | 1 + webpack.config.js | 27 +++ 19 files changed, 646 insertions(+), 94 deletions(-) create mode 100644 .gitmodules create mode 100644 package.json create mode 100644 src/c_src/Emscripten.cmake create mode 100755 src/c_src/build-emscripten.sh create mode 100644 src/c_src/emscripten-post.js create mode 100644 src/c_src/emscripten-pre.js create mode 160000 src/c_src/jansson create mode 160000 src/c_src/libcorrect create mode 160000 src/c_src/liquid-dsp create mode 160000 src/c_src/quiet create mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index 19e4c1e..07552ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ libfec.js +src/c_src/emscripten/ +src/c_src/js/ +src/c_src/licenses diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ade2ea5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,12 @@ +[submodule "src/c_src/quiet"] + path = src/c_src/quiet + url = https://github.com/quiet/quiet +[submodule "src/c_src/jansson"] + path = src/c_src/jansson + url = https://github.com/akheron/jansson +[submodule "src/c_src/liquid-dsp"] + path = src/c_src/liquid-dsp + url = https://github.com/quiet/liquid-dsp +[submodule "src/c_src/libcorrect"] + path = src/c_src/libcorrect + url = https://github.com/quiet/libcorrect diff --git a/examples/text/receivetext.html b/examples/text/receivetext.html index d26c17c..b12c90e 100644 --- a/examples/text/receivetext.html +++ b/examples/text/receivetext.html @@ -7,10 +7,9 @@ - - +

Receive Text

diff --git a/examples/text/receivetext.js b/examples/text/receivetext.js index da43280..e353ada 100644 --- a/examples/text/receivetext.js +++ b/examples/text/receivetext.js @@ -1,8 +1,9 @@ var TextReceiver = (function() { Quiet.init({ - profilesPrefix: "/", - memoryInitializerPrefix: "/", - libfecPrefix: "/" + profilesPath: "/quiet-profiles.json", + memoryInitializerPath: "/quiet-emscripten.js.mem", + emscriptenPath: "/quiet-emscripten.js" + }); var target; var content = new ArrayBuffer(0); diff --git a/examples/text/sendtext.html b/examples/text/sendtext.html index 667ed66..6bd17f4 100644 --- a/examples/text/sendtext.html +++ b/examples/text/sendtext.html @@ -7,10 +7,9 @@ - - +

Send Text

diff --git a/examples/text/sendtext.js b/examples/text/sendtext.js index 0af7feb..1bfdcaf 100644 --- a/examples/text/sendtext.js +++ b/examples/text/sendtext.js @@ -1,8 +1,8 @@ var TextTransmitter = (function() { Quiet.init({ - profilesPrefix: "/", - memoryInitializerPrefix: "/", - libfecPrefix: "/" + profilesPath: "/quiet-profiles.json", + memoryInitializerPath: "/quiet-emscripten.js.mem", + emscriptenPath: "/quiet-emscripten.js" }); var btn; var textbox; @@ -34,7 +34,7 @@ var TextTransmitter = (function() { function onQuietReady() { var profilename = document.querySelector('[data-quiet-profile-name]').getAttribute('data-quiet-profile-name'); - transmit = Quiet.transmitter({profile: profilename, onFinish: onTransmitFinish}); + transmit = Quiet.transmitter({profile: profilename, onFinish: onTransmitFinish, clampFrame: false}); btn.addEventListener('click', onClick, false); }; diff --git a/package.json b/package.json new file mode 100644 index 0000000..2dd1a6b --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "quiet.js", + "version": "1.1.0", + "description": "Send data using Web Audio", + "main": "output/library.js", + "scripts": { + "build": "webpack --env build" + }, + "license": "SEE LICENSE IN LICENSE", + "devDependencies": { + "webpack": "^3.11.0" + }, + "dependencies": { + "@babel/core": "^7.0.0-beta.40", + "@babel/preset-env": "^7.0.0-beta.40", + "babel-loader": "^8.0.0-beta.0" + } +} diff --git a/quiet-emscripten.js b/quiet-emscripten.js index 4d4b330..c20e721 100644 --- a/quiet-emscripten.js +++ b/quiet-emscripten.js @@ -1,15 +1,18 @@ -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 read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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 print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function 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"}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}),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){assert(args.length==sig.length-1);if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].apply(null,args)}else{assert(sig.length==1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i0),size)|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=false;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){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i>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>2]=0}stop=ret+size;while(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>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=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){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var 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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>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"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval((function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;Module.printErr("still waiting on run dependencies:")}Module.printErr("dependency: "+dep)}if(shown){Module.printErr("(end of list)")}}),1e4)}}else{Module.printErr("warning: run dependency added without ID")}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{Module.printErr("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+47072;__ATINIT__.push();memoryInitializer="quiet-emscripten.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;assert(tempDoublePtr%8==0);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()}Module["_roundf"]=_roundf;Module["_memset"]=_memset;function _pthread_mutex_lock(){}function _pthread_cond_signal(){}function _abort(){Module["abort"]()}function _pthread_cond_destroy(){}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function _pthread_mutex_init(){}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var _llvm_fabs_f64=Math_abs;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}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 _llvm_ctpop_i32(x){var ret=0;while(x){if(x&1)ret++;x>>>=1}return ret}var _llvm_pow_f32=Math_pow;var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else Module.printErr("failed to set errno from JS");return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)this.stack=demangleAll(this.stack)};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function _pthread_cond_timedwait(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_bitshift64Lshr"]=_bitshift64Lshr;function _sched_yield(){return 0}function _pthread_cond_init(){}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}Module["_i64Add"]=_i64Add;function _pthread_mutex_unlock(){}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_mutex_destroy(){}function _pthread_cond_wait(){return 0}var _llvm_fabs_f32=Math_abs;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};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 print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function 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"}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}),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){assert(args.length==sig.length-1);if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].apply(null,args)}else{assert(sig.length==1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i0),size)|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=false;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){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i>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>2]=0}stop=ret+size;while(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>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=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){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var buffer;var 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=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>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"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval((function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;Module.printErr("still waiting on run dependencies:")}Module.printErr("dependency: "+dep)}if(shown){Module.printErr("(end of list)")}}),1e4)}}else{Module.printErr("warning: run dependency added without ID")}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{Module.printErr("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+44848;__ATINIT__.push();memoryInitializer="quiet-emscripten.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;assert(tempDoublePtr%8==0);Module["_i64Subtract"]=_i64Subtract;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else Module.printErr("failed to set errno from JS");return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_roundf"]=_roundf;Module["_memset"]=_memset;function _pthread_mutex_lock(){}function _pthread_cond_signal(){}function _abort(){Module["abort"]()}function _pthread_cond_destroy(){}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function _pthread_mutex_init(){}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var _llvm_fabs_f64=Math_abs;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}var PTHREAD_SPECIFIC_NEXT_KEY=1;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 _llvm_ctpop_i32(x){var ret=0;while(x){if(x&1)ret++;x>>>=1}return ret}var _llvm_pow_f32=Math_pow;var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)this.stack=demangleAll(this.stack)};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}var _llvm_sqrt_f64=Math_sqrt;function _pthread_cond_timedwait(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function _sched_yield(){return 0}function _pthread_cond_init(){}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _pthread_mutex_unlock(){}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_mutex_destroy(){}function _pthread_cond_wait(){return 0}var _llvm_fabs_f32=Math_abs;var _llvm_sqrt_f32=Math_sqrt;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>2]|0)){g[a>>2]=0.0;g[a+4>>2]=0.0;return}h=b+136|0;switch(c[h>>2]|0){case 0:{f=b+120|0;e=c[f>>2]|0;i=e+1|0;c[f>>2]=i;b=c[b+64>>2]|0;d=c[b+(e<<3)>>2]|0;e=c[b+(e<<3)+4>>2]|0;if((i|0)==64){c[f>>2]=0;c[h>>2]=1}c[a>>2]=d;c[a+4>>2]=e;return}case 1:{d=b+120|0;f=c[d>>2]|0;i=f+1|0;c[d>>2]=i;j=c[b+100>>2]|0;e=c[j+(f<<3)>>2]|0;f=c[j+(f<<3)+4>>2]|0;if((i|0)==(c[b+96>>2]|0)){c[d>>2]=0;c[h>>2]=2}c[a>>2]=e;c[a+4>>2]=f;return}case 2:{d=b+120|0;f=c[d>>2]|0;j=f+1|0;c[d>>2]=j;i=c[b+116>>2]|0;e=c[i+(f<<3)>>2]|0;f=c[i+(f<<3)+4>>2]|0;if((j|0)==(c[b+112>>2]|0)){c[d>>2]=0;c[h>>2]=3}c[a>>2]=e;c[a+4>>2]=f;return}case 3:{d=b+120|0;j=(c[d>>2]|0)+1|0;c[d>>2]=j;if((j|0)==(c[b+4>>2]<<1|0)){c[d>>2]=0;c[b+132>>2]=1;c[e>>2]=0}c[a>>2]=0;c[a+4>>2]=0;return}default:{Qp(25744,74,1,c[2348]|0)|0;kb(1)}}}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.0;h=Xp(244)|0;c[h>>2]=a;c[h+4>>2]=b;a=h+64|0;c[a>>2]=7;b=h+68|0;g[b>>2]=.30000001192092896;d=h+116|0;c[d>>2]=Xp(512)|0;c[h+120>>2]=Xp(512)|0;e=Qj(7,137,1)|0;f=0;do{k=(Tj(e)|0)!=0;i=c[d>>2]|0;g[i+(f<<3)>>2]=k?.7071067690849304:-.7071067690849304;g[i+(f<<3)+4>>2]=0.0;i=(Tj(e)|0)!=0;l=i?.7071067811865476:-.7071067811865476;i=c[d>>2]|0;k=i+(f<<3)|0;i=i+(f<<3)+4|0;j=l+ +g[i>>2];g[k>>2]=+g[k>>2]+l*0.0;g[i>>2]=j;f=f+1|0}while((f|0)!=64);Sj(e);k=eh(c[d>>2]|0,64,7,2,c[a>>2]|0,+g[b>>2])|0;c[h+72>>2]=k;dh(k,.5);c[h+104>>2]=32;k=h+100|0;c[k>>2]=Me(7,32,2,c[a>>2]|0,+g[b>>2])|0;f=h+92|0;c[f>>2]=zj(0)|0;e=zj(0)|0;i=h+96|0;c[i>>2]=e;Cj(e,9.999999747378752e-05);c[h+128>>2]=0;c[h+140>>2]=0;c[h+160>>2]=0;c[h+136>>2]=0;c[h+148>>2]=0;c[h+152>>2]=14;c[h+124>>2]=0;Wf(h,0)|0;c[h+188>>2]=di(48)|0;e=h+208|0;c[e>>2]=64;b=ph()|0;d=h+200|0;c[d>>2]=b;rh(b,c[e>>2]|0,5,1,7,47)|0;d=sh(c[d>>2]|0)|0;c[h+196>>2]=d;c[h+192>>2]=Xp(d<<3)|0;c[h+204>>2]=Xp(c[e>>2]|0)|0;c[h+184>>2]=0;yl(h+48|0);e=h+228|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;Dj(c[f>>2]|0);Dj(c[i>>2]|0);Ie(c[k>>2]|0);c[h+224>>2]=0;c[h+216>>2]=0;c[h+220>>2]=0;g[h+8>>2]=0.0;return h|0}function Wf(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?572:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25819,72,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25892,72,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25892,72,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25965,79,1,c[2348]|0)|0;kb(1)}else{gq(a+168|0,b|0,16)|0;Xf(a,c[a+152>>2]|0);return 0}return 0}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+152>>2]=b;e=b+6|0;b=a+156|0;c[b>>2]=e;d=a+160|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+148|0;e=c[d>>2]|0;if(e|0)qh(e);e=ph()|0;c[d>>2]=e;rh(e,c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0,c[a+180>>2]|0)|0;e=sh(c[d>>2]|0)|0;b=a+144|0;c[b>>2]=e;d=a+140|0;c[d>>2]=_p(c[d>>2]|0,e<<3)|0;d=a+136|0;e=c[d>>2]|0;if(e|0)Fh(e);e=Eh(c[b>>2]|0,16)|0;c[d>>2]=e;e=Gh(e)|0;c[a+132>>2]=e;a=a+128|0;c[a>>2]=_p(c[a>>2]|0,e<<3)|0;return}function Yf(a){a=a|0;if(c[a+232>>2]|0)uk(c[a+240>>2]|0);Yp(c[a+116>>2]|0);Yp(c[a+120>>2]|0);Yp(c[a+128>>2]|0);Yp(c[a+140>>2]|0);Yp(c[a+160>>2]|0);Yp(c[a+192>>2]|0);Yp(c[a+204>>2]|0);Fh(c[a+136>>2]|0);qh(c[a+148>>2]|0);Hi(c[a+188>>2]|0);qh(c[a+200>>2]|0);fh(c[a+72>>2]|0);Ge(c[a+100>>2]|0);Ej(c[a+92>>2]|0);Ej(c[a+96>>2]|0);Yp(a);return}function Zf(a,b){a=a|0;b=b|0;c[a+124>>2]=b;return}function _f(a,b){a=a|0;b=b|0;c[a+184>>2]=b;return}function $f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;w=i;i=i+48|0;if((i|0)>=(j|0))ba();e=w+40|0;f=w+32|0;g=w+24|0;o=w+16|0;p=w+8|0;q=w;if(!d){i=w;return}r=a+228|0;s=a+224|0;t=g+4|0;u=o+4|0;h=p+4|0;k=q+4|0;l=a+236|0;m=a+240|0;n=f+4|0;v=0;a:while(1){if(c[r>>2]|0?(c[l>>2]|0)==0:0){x=c[m>>2]|0;y=c[b+(v<<3)+4>>2]|0;c[f>>2]=c[b+(v<<3)>>2];c[n>>2]=y;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(x,e)}switch(c[s>>2]|0){case 0:{y=c[b+(v<<3)+4>>2]|0;c[g>>2]=c[b+(v<<3)>>2];c[t>>2]=y;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];ag(a,e);break}case 1:{y=c[b+(v<<3)+4>>2]|0;c[o>>2]=c[b+(v<<3)>>2];c[u>>2]=y;c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];bg(a,e);break}case 2:{y=c[b+(v<<3)+4>>2]|0;c[p>>2]=c[b+(v<<3)>>2];c[h>>2]=y;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];cg(a,e);break}case 3:{y=c[b+(v<<3)+4>>2]|0;c[q>>2]=c[b+(v<<3)>>2];c[k>>2]=y;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];eg(a,e);break}default:{e=11;break a}}v=v+1|0;if(v>>>0>=d>>>0){e=13;break}}if((e|0)==11){Qp(26500,58,1,c[2348]|0)|0;kb(1)}else if((e|0)==13){i=w;return}}function ag(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+8|0;h=n;m=a+72|0;k=c[m>>2]|0;f=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=f;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];l=hh(k,l)|0;if(!l){i=n;return}k=a+76|0;g[k>>2]=+lh(c[m>>2]|0);e=a+88|0;g[e>>2]=+mh(c[m>>2]|0);f=a+80|0;g[f>>2]=+nh(c[m>>2]|0);h=a+84|0;g[h>>2]=+oh(c[m>>2]|0);d=+g[k>>2];k=c[a+104>>2]|0;if(d>0.0){d=d*+(k>>>0);b=0}else{d=(d+1.0)*+(k>>>0);b=1}c[a+112>>2]=(~~d>>>0>>>0)%(k>>>0)|0;c[a+108>>2]=b;Ne(c[a+100>>2]|0,.5/+g[e>>2]);k=a+92|0;Fj(c[k>>2]|0,+g[f>>2]);Hj(c[k>>2]|0,+g[h>>2]);c[a+224>>2]=1;k=a+236|0;c[k>>2]=1;$f(a,l,kh(c[m>>2]|0)|0);c[k>>2]=0;i=n;return}function bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+32|0;if((i|0)>=(j|0))ba();f=k+24|0;e=k+16|0;l=k+8|0;g=k;m=c[b+4>>2]|0;d=a+92|0;h=c[d>>2]|0;c[l>>2]=c[b>>2];c[l+4>>2]=m;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];Mj(h,f,e);Ij(c[d>>2]|0);d=a+100|0;h=c[d>>2]|0;b=e+4|0;l=c[b>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=l;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Ke(h,f);Le(c[d>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){g=c[e>>2]|0;h=c[b>>2]|0;c[d>>2]=f+-1}else{g=0;h=0}if((f|0)<0){i=k;return}d=c[a+64>>2]<<1;e=a+216|0;b=c[e>>2]|0;if(b>>>0>=d>>>0){b=b-d|0;m=c[a+120>>2]|0;c[m+(b<<3)>>2]=g;c[m+(b<<3)+4>>2]=h;b=c[e>>2]|0}c[e>>2]=b+1;if((b|0)!=(d+63|0)){i=k;return}c[a+224>>2]=2;i=k;return}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;if((i|0)>=(j|0))ba();o=q+24|0;e=q+16|0;d=q+8|0;f=q;m=c[b+4>>2]|0;p=a+92|0;n=c[p>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=m;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];Mj(n,o,e);Ij(c[p>>2]|0);n=a+100|0;d=c[n>>2]|0;b=e+4|0;m=c[b>>2]|0;c[f>>2]=c[e>>2];c[f+4>>2]=m;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];Ke(d,o);Le(c[n>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){l=c[e>>2]|0;m=c[b>>2]|0;c[d>>2]=f+-1;b=l;d=m}else{b=0;d=0}if((f|0)<0){i=q;return}m=a+220|0;l=c[m>>2]|0;k=c[a+128>>2]|0;c[k+(l<<3)>>2]=b;c[k+(l<<3)+4>>2]=d;l=(c[m>>2]|0)+1|0;c[m>>2]=l;if((l|0)!=(c[a+132>>2]|0)){i=q;return}dg(a);b=a+164|0;if(c[b>>2]|0){c[m>>2]=0;c[a+224>>2]=3;i=q;return}l=a+48|0;c[l>>2]=(c[l>>2]|0)+1;if(c[a>>2]|0){f=a+8|0;g[f>>2]=0.0;g[a+12>>2]=+yp(+g[a+88>>2])*20.0;g[a+16>>2]=+Jj(c[p>>2]|0);k=a+20|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;k=c[a>>2]|0;l=c[a+160>>2]|0;b=c[b>>2]|0;d=c[a+4>>2]|0;e=o;h=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));ob[k&1](l,b,0,0,0,o,d)|0}Dj(c[p>>2]|0);Dj(c[a+96>>2]|0);Ie(c[n>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[m>>2]=0;g[a+8>>2]=0.0;i=q;return}function dg(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();l=p;h=b+136|0;f=b+140|0;Hh(c[h>>2]|0,c[b+128>>2]|0,c[f>>2]|0);e=c[b+148>>2]|0;f=c[f>>2]|0;k=b+160|0;g=c[k>>2]|0;if(!(c[b+124>>2]|0))e=yh(e,f,g)|0;else e=zh(e,f,g)|0;o=b+164|0;c[o>>2]=e;if(!e){i=p;return}q=+Ih(c[h>>2]|0);r=+Jh(c[h>>2]|0);n=b+96|0;Fj(c[n>>2]|0,q);Hj(c[n>>2]|0,r+q*+((c[b+132>>2]|0)>>>0));n=c[b+152>>2]|0;m=c[k>>2]|0;e=a[m+n>>0]|0;if(e<<24>>24!=102){b=c[2348]|0;c[l>>2]=e&255;c[l+4>>2]=102;Kp(b,26045,l)|0;c[o>>2]=0;i=p;return}f=(d[m+(n+1)>>0]|0)<<8|(d[m+(n+2)>>0]|0);g=b+208|0;c[g>>2]=f;s=a[m+(n+3)>>0]|0;h=s&255;l=d[m+(n+4)>>0]|0;k=l>>>5;l=l&31;e=(d[m+(n+5)>>0]|0)&31;if((s+-1&255)>59){Qp(26128,66,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}switch(k|0){case 0:case 7:{Qp(26195,70,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}default:{}}if((l+-1|0)>>>0>26){Qp(26266,78,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}if((e+-1|0)>>>0>26){Qp(26345,78,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}n=b+188|0;c[n>>2]=Gi(c[n>>2]|0,h)|0;n=b+200|0;rh(c[n>>2]|0,f,k,l,e,h)|0;n=sh(c[n>>2]|0)|0;c[b+196>>2]=n;s=b+192|0;c[s>>2]=_p(c[s>>2]|0,n<<3)|0;n=b+204|0;b=_p(c[n>>2]|0,c[g>>2]|0)|0;c[n>>2]=b;if(!((b|0)==0|(c[s>>2]|0)==0)){i=p;return}Qp(26424,75,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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.0,x=0.0;v=i;i=i+96|0;if((i|0)>=(j|0))ba();t=v+48|0;k=v+32|0;d=v+16|0;e=v+8|0;m=v;f=v+40|0;h=v+24|0;l=m+4|0;g[m>>2]=0.0;g[l>>2]=0.0;r=c[b+4>>2]|0;u=a+92|0;s=c[u>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=r;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];Mj(s,t,k);Ij(c[u>>2]|0);s=a+100|0;d=c[s>>2]|0;b=k+4|0;r=c[b>>2]|0;c[e>>2]=c[k>>2];c[e+4>>2]=r;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];Ke(d,t);Le(c[s>>2]|0,c[a+112>>2]|0,k);d=a+108|0;e=c[d>>2]|0;c[d>>2]=e+1;if((e|0)>-1){q=c[k>>2]|0;r=c[b>>2]|0;c[m>>2]=q;c[l>>2]=r;c[d>>2]=e+-1;b=q;d=r}else{b=0;d=0}if((e|0)<0){i=v;return}r=a+96|0;p=c[r>>2]|0;c[f>>2]=b;c[f+4>>2]=d;c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];Mj(p,t,m);p=a+188|0;n=c[p>>2]|0;q=c[l>>2]|0;c[h>>2]=c[m>>2];c[h+4>>2]=q;c[t>>2]=c[h>>2];c[t+4>>2]=c[h+4>>2];Mi(n,t,k);x=+Qi(c[p>>2]|0);w=+Ri(c[p>>2]|0);Kj(c[r>>2]|0,x);Ij(c[r>>2]|0);p=a+8|0;g[p>>2]=w*w+ +g[p>>2];n=c[l>>2]|0;q=a+220|0;o=c[q>>2]|0;k=a+192|0;f=c[k>>2]|0;c[f+(o<<3)>>2]=c[m>>2];c[f+(o<<3)+4>>2]=n;o=(c[q>>2]|0)+1|0;c[q>>2]=o;f=a+196|0;if((o|0)!=(c[f>>2]|0)){i=v;return}h=a+200|0;b=c[h>>2]|0;d=c[k>>2]|0;l=a+204|0;e=c[l>>2]|0;if(!(c[a+184>>2]|0))b=yh(b,d,e)|0;else b=zh(b,d,e)|0;d=a+212|0;c[d>>2]=b;o=a+48|0;c[o>>2]=(c[o>>2]|0)+1;o=a+52|0;c[o>>2]=(c[o>>2]|0)+1;o=a+56|0;c[o>>2]=(c[o>>2]|0)+b;b=a+208|0;o=a+60|0;c[o>>2]=(c[o>>2]|0)+(c[b>>2]|0);if(c[a>>2]|0){m=wh(c[h>>2]|0)|0;g[p>>2]=+yp(+g[p>>2]/+((c[f>>2]|0)>>>0))*10.0;g[a+12>>2]=+yp(+g[a+88>>2])*20.0;g[a+16>>2]=+Jj(c[u>>2]|0);c[a+20>>2]=c[k>>2];c[a+24>>2]=c[f>>2];c[a+28>>2]=m;c[a+32>>2]=c[636+(m<<4)+12>>2];c[a+36>>2]=th(c[h>>2]|0)|0;c[a+40>>2]=uh(c[h>>2]|0)|0;c[a+44>>2]=vh(c[h>>2]|0)|0;m=c[a>>2]|0;n=c[a+160>>2]|0;o=c[a+164>>2]|0;l=c[l>>2]|0;k=c[b>>2]|0;e=c[d>>2]|0;f=c[a+4>>2]|0;h=t;b=p;d=h+40|0;do{c[h>>2]=c[b>>2];h=h+4|0;b=b+4|0}while((h|0)<(d|0));ob[m&1](n,o,l,k,e,t,f)|0}Dj(c[u>>2]|0);Dj(c[r>>2]|0);Ie(c[s>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[q>>2]=0;g[a+8>>2]=0.0;i=v;return}function fg(a){a=a|0;var b=0;b=a+232|0;if(c[b>>2]|0)return;c[a+240>>2]=qk(2e3)|0;c[a+228>>2]=1;c[b>>2]=1;return}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=i;i=i+256|0;if((i|0)>=(j|0))ba();w=x+248|0;v=x+224|0;s=x+200|0;r=x+192|0;q=x+168|0;p=x+144|0;o=x+136|0;n=x+112|0;m=x+88|0;l=x+64|0;k=x+40|0;f=x+16|0;e=x+8|0;d=x;u=x+252|0;if(!(c[a+232>>2]|0)){Qp(26559,90,1,c[2348]|0)|0;i=x;return}t=Ep(b,37318)|0;c[d>>2]=b;Kp(t,28173,d)|0;Qp(37886,2,1,t)|0;Qp(37457,11,1,t)|0;Qp(28200,12,1,t)|0;c[e>>2]=2e3;Kp(t,37469,e)|0;Qp(26650,54,1,t)|0;Qp(37695,16,1,t)|0;sk(c[a+240>>2]|0,u);d=0;do{e=c[u>>2]|0;z=+g[e+(d<<3)>>2];y=+g[e+(d<<3)+4>>2];d=d+1|0;c[f>>2]=d;h[f+8>>3]=z;h[f+16>>3]=y;Kp(t,37712,f)|0}while((d|0)!=2e3);Qp(37886,2,1,t)|0;Qp(26705,18,1,t)|0;Qp(28283,48,1,t)|0;Qp(39490,9,1,t)|0;Qp(37790,24,1,t)|0;Qp(37815,30,1,t)|0;Qp(26724,27,1,t)|0;d=c[a+116>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[k>>2]=1;h[k+8>>3]=y;h[k+16>>3]=z;Kp(t,26752,k)|0;d=1;do{k=c[u>>2]|0;y=+g[k+(d<<3)>>2];z=+g[k+(d<<3)+4>>2];d=d+1|0;c[l>>2]=d;h[l+8>>3]=y;h[l+16>>3]=z;Kp(t,26752,l)|0}while((d|0)!=64);Qp(26792,27,1,t)|0;d=c[a+120>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[m>>2]=1;h[m+8>>3]=y;h[m+16>>3]=z;Kp(t,26820,m)|0;d=1;do{m=c[u>>2]|0;y=+g[m+(d<<3)>>2];z=+g[m+(d<<3)+4>>2];d=d+1|0;c[n>>2]=d;h[n+8>>3]=y;h[n+16>>3]=z;Kp(t,26820,n)|0}while((d|0)!=64);e=a+144|0;c[o>>2]=c[e>>2];Kp(t,26860,o)|0;d=c[a+140>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(o=d,y=+g[o>>2],z=+g[o+4>>2],c[p>>2]=1,h[p+8>>3]=y,h[p+16>>3]=z,Kp(t,26887,p)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{p=c[u>>2]|0;y=+g[p+(d<<3)>>2];z=+g[p+(d<<3)+4>>2];d=d+1|0;c[q>>2]=d;h[q+8>>3]=y;h[q+16>>3]=z;Kp(t,26887,q)|0}while(d>>>0<(c[e>>2]|0)>>>0)}e=a+196|0;c[r>>2]=c[e>>2];Kp(t,26925,r)|0;d=c[a+192>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(r=d,y=+g[r>>2],z=+g[r+4>>2],c[s>>2]=1,h[s+8>>3]=y,h[s+16>>3]=z,Kp(t,26953,s)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{s=c[u>>2]|0;y=+g[s+(d<<3)>>2];z=+g[s+(d<<3)+4>>2];d=d+1|0;c[v>>2]=d;h[v+8>>3]=y;h[v+16>>3]=z;Kp(t,26953,v)|0}while(d>>>0<(c[e>>2]|0)>>>0)}Qp(26992,20,1,t)|0;Qp(27013,45,1,t)|0;Qp(27059,20,1,t)|0;Qp(27080,28,1,t)|0;Qp(39490,9,1,t)|0;Qp(27109,23,1,t)|0;Qp(39476,13,1,t)|0;Qp(27133,34,1,t)|0;Qp(27168,20,1,t)|0;Qp(27189,47,1,t)|0;Qp(27059,20,1,t)|0;Qp(27080,28,1,t)|0;Qp(39490,9,1,t)|0;Qp(27109,23,1,t)|0;Qp(39476,13,1,t)|0;Qp(27237,35,1,t)|0;Qp(37886,2,1,t)|0;Hp(t)|0;c[w>>2]=b;Rp(27273,w)|0;i=x;return}function hg(){var a=0,b=0,d=0,e=0;a=Xp(100)|0;c[a+4>>2]=2;c[a+8>>2]=3;g[a+12>>2]=.5;c[a+16>>2]=63;d=a+24|0;c[d>>2]=0;c[a+28>>2]=6;e=$h(2,3,.5)|0;c[a>>2]=e;b=a+32|0;c[b>>2]=Qj(6,109,1)|0;ai(e);c[a+84>>2]=0;Vj(c[b>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;ig(a,8);c[a+72>>2]=0;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;b=Ck(0,6,1,1)|0;c[a+56>>2]=b;b=Fk(b)|0;c[a+76>>2]=b;c[d>>2]=b<<3;c[a+80>>2]=Xp(b)|0;return a|0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+88>>2]|0){Qp(27317,87,1,c[2348]|0)|0;return}c[a+36>>2]=b;d=b+5|0;e=a+44|0;c[e>>2]=_p(c[e>>2]|0,d)|0;e=a+52|0;b=c[e>>2]|0;if(b|0)Ek(b);b=Ck(d,6,6,1)|0;c[e>>2]=b;b=Fk(b)|0;e=a+40|0;c[e>>2]=b;d=a+48|0;c[d>>2]=_p(c[d>>2]|0,b)|0;c[a+20>>2]=c[e>>2]<<3;return}function jg(a){a=a|0;ai(c[a>>2]|0);c[a+84>>2]=0;Vj(c[a+32>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;return}function kg(a){a=a|0;bi(c[a>>2]|0);Sj(c[a+32>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Ek(c[a+52>>2]|0);Yp(c[a+80>>2]|0);Ek(c[a+56>>2]|0);Yp(a);return}function lg(a){a=a|0;return c[a+88>>2]|0}function mg(a){a=a|0;if(!(c[a+88>>2]|0)){Qp(27405,58,1,c[2348]|0)|0;a=0;return a|0}else{a=_((c[a+20>>2]|0)+(c[a+16>>2]|0)+(c[a+24>>2]|0)+(c[a+8>>2]<<1)|0,c[a+4>>2]|0)|0;return a|0}return 0}function ng(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;m=b+72|0;n=b+60|0;if((((c[m>>2]|0)==(g|0)?(c[n>>2]|0)==(h|0):0)?(l=b+64|0,(c[l>>2]|0)==(i|0)):0)?(k=b+68|0,(c[k>>2]|0)==(j|0)):0){h=b+56|0;i=b+80|0}else{c[m>>2]=g;c[n>>2]=h;l=b+64|0;c[l>>2]=i;k=b+68|0;c[k>>2]=j;o=b+56|0;h=Dk(c[o>>2]|0,g,h,i,j)|0;c[o>>2]=h;h=Fk(h)|0;c[b+76>>2]=h;c[b+24>>2]=h<<3;i=b+80|0;c[i>>2]=_p(c[i>>2]|0,h)|0;h=o}c[b+88>>2]=1;g=b+44|0;o=b+36|0;gq(c[g>>2]|0,e|0,c[o>>2]|0)|0;o=c[o>>2]|0;a[(c[g>>2]|0)+o>>0]=4;a[(c[g>>2]|0)+(o+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(o+2)>>0]=c[m>>2];e=o+3|0;a[(c[g>>2]|0)+e>>0]=c[n>>2]<<5;e=(c[g>>2]|0)+e|0;a[e>>0]=d[e>>0]|0|c[l>>2]&31;a[(c[g>>2]|0)+(o+4)>>0]=c[k>>2]&31;o=b+48|0;Jk(c[b+52>>2]|0,c[g>>2]|0,c[o>>2]|0);Nj(c[o>>2]|0,c[b+40>>2]|0);Jk(c[h>>2]|0,f,c[i>>2]|0);return}function og(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;g=a+84|0;switch(c[g>>2]|0){case 0:{pg(a,b);break}case 1:{e=a+96|0;Vp(f,c[e>>2]|0,8);ci(c[a>>2]|0,(d[(c[a+48>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+20>>2]|0)){c[e>>2]=0;c[g>>2]=2}break}case 2:{e=a+96|0;Vp(f,c[e>>2]|0,8);ci(c[a>>2]|0,(d[(c[a+80>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+24>>2]|0)){c[e>>2]=0;c[g>>2]=3}break}case 3:{qg(a,b);break}default:{Qp(27464,70,1,c[2348]|0)|0;kb(1)}}e=a+92|0;if(!(c[e>>2]|0)){a=0;i=h;return a|0}ai(c[a>>2]|0);c[g>>2]=0;Vj(c[a+32>>2]|0);c[a+88>>2]=0;c[e>>2]=0;c[a+96>>2]=0;a=1;i=h;return a|0}function pg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;k=a+32|0;l=Tj(c[k>>2]|0)|0;ci(c[a>>2]|0,l&255,b);l=a+96|0;d=c[l>>2]|0;j=a+8|0;h=c[j>>2]|0;a:do if(d>>>0>>0?(i=a+4|0,e=c[i>>2]|0,(e|0)!=0):0){f=0;while(1){n=+Vh((_(d,e)|0)+f|0,_(e<<1,h)|0);d=b+(f<<3)|0;e=b+(f<<3)+4|0;m=n*+g[e>>2];g[d>>2]=n*+g[d>>2];g[e>>2]=m;f=f+1|0;e=c[i>>2]|0;d=c[l>>2]|0;if(f>>>0>=e>>>0)break a;h=c[j>>2]|0}}while(0);b=d+1|0;c[l>>2]=b;if((b|0)!=(c[a+16>>2]|0))return;Vj(c[k>>2]|0);c[l>>2]=0;c[a+84>>2]=1;return}function qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0;k=(Np()|0)%2|0;ci(c[a>>2]|0,k&255,b);k=a+96|0;d=c[k>>2]|0;i=a+8|0;h=c[i>>2]|0;if(d>>>0>=h>>>0?(j=a+4|0,e=c[j>>2]|0,(e|0)!=0):0){f=0;while(1){m=+Vh((_(d,e)|0)+f|0,_(e<<1,h)|0);h=b+(f<<3)|0;e=b+(f<<3)+4|0;l=m*+g[e>>2];g[h>>2]=m*+g[h>>2];g[e>>2]=l;f=f+1|0;e=c[j>>2]|0;if(f>>>0>=e>>>0)break;d=c[k>>2]|0;h=c[i>>2]|0}d=c[k>>2]|0}b=d+1|0;c[k>>2]=b;if((b|0)!=(c[a+28>>2]|0))return;c[k>>2]=0;c[a+92>>2]=1;return}function rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;q=Xp(256)|0;c[q+16>>2]=a;c[q+20>>2]=b;n=q+4|0;c[n>>2]=2;o=q+8|0;c[o>>2]=3;p=q+12|0;g[p>>2]=.5;c[q>>2]=Ue(3,.375)|0;m=q+132|0;c[m>>2]=63;f=q+136|0;c[f>>2]=Xp(252)|0;c[q+140>>2]=Xp(252)|0;k=i;i=i+((1*((c[n>>2]|0)*63<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=Qj(6,109,1)|0;b=$h(c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;if((c[o>>2]|0)!=(0-(c[m>>2]|0)|0)){h=0;do{d=Tj(a)|0;d=d&255;if(h>>>0<(c[m>>2]|0)>>>0)g[(c[f>>2]|0)+(h<<2)>>2]=d|0?1.0:-1.0;e=c[o>>2]|0;if(h>>>0>>0)ci(b,d,k);else ci(b,d,k+((_(c[n>>2]|0,h-e|0)|0)<<3)|0);h=h+1|0}while(h>>>0<((c[o>>2]|0)+(c[m>>2]|0)|0)>>>0)}bi(b);Sj(a);l=q+108|0;c[l>>2]=tl(k,_(c[n>>2]|0,c[m>>2]|0)|0,.5,.05000000074505806)|0;h=q+124|0;c[h>>2]=qk(_((c[o>>2]|0)+(c[m>>2]|0)|0,c[n>>2]|0)|0)|0;a=q+84|0;c[a>>2]=32;e=q+76|0;c[e>>2]=te(12,32,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;f=q+80|0;c[f>>2]=ue(12,c[a>>2]|0,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;a=q+128|0;c[a>>2]=zj(0)|0;d=q+156|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;sg(q,8);d=q+196|0;c[d>>2]=1;c[q+180>>2]=6;c[q+184>>2]=1;c[q+188>>2]=1;b=Ck(1,6,1,1)|0;c[q+208>>2]=b;b=Fk(b)|0;c[q+192>>2]=b;c[q+204>>2]=Xp(c[d>>2]|0)|0;c[q+200>>2]=Xp(b)|0;b=q+216|0;d=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));rk(c[h>>2]|0);ul(c[l>>2]|0);Dj(c[a>>2]|0);g[q+64>>2]=0.0;g[q+68>>2]=0.0;g[q+72>>2]=0.0;pe(c[e>>2]|0);pe(c[f>>2]|0);g[q+88>>2]=0.0;i=r;return q|0}function sg(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+144>>2]=b;b=b+5|0;d=a+164|0;c[d>>2]=_p(c[d>>2]|0,b)|0;d=a+168|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(b,6,6,1)|0;c[d>>2]=b;b=Fk(b)|0;e=a+148|0;c[e>>2]=b;d=a+160|0;c[d>>2]=_p(c[d>>2]|0,b)|0;e=c[e>>2]<<3;c[a+152>>2]=e;a=a+156|0;c[a>>2]=_p(c[a>>2]|0,e)|0;return}function tg(a){a=a|0;if(c[a+236>>2]|0){uk(c[a+240>>2]|0);pk(c[a+244>>2]|0);pk(c[a+248>>2]|0);pk(c[a+252>>2]|0)}Re(c[a>>2]|0);ne(c[a+76>>2]|0);ne(c[a+80>>2]|0);Ej(c[a+128>>2]|0);vl(c[a+108>>2]|0);uk(c[a+124>>2]|0);Yp(c[a+136>>2]|0);Yp(c[a+140>>2]|0);Ek(c[a+168>>2]|0);Yp(c[a+156>>2]|0);Yp(c[a+160>>2]|0);Yp(c[a+164>>2]|0);Ek(c[a+208>>2]|0);Yp(c[a+200>>2]|0);Yp(c[a+204>>2]|0);Yp(a);return}function ug(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;G=i;i=i+80|0;if((i|0)>=(j|0))ba();e=G+64|0;f=G+24|0;g=G+8|0;F=G;t=G+56|0;y=G+48|0;z=G+40|0;A=G+32|0;B=G+16|0;if(!d){i=G;return}C=t+4|0;D=a+232|0;h=a+216|0;k=F+4|0;l=a+124|0;m=f+4|0;n=a+108|0;o=a+112|0;p=a+116|0;q=a+120|0;r=g+4|0;s=z+4|0;u=A+4|0;v=B+4|0;w=a+240|0;x=y+4|0;E=0;do{H=c[a>>2]|0;I=c[b+(E<<3)+4>>2]|0;c[t>>2]=c[b+(E<<3)>>2];c[C>>2]=I;c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];Te(H,e,F);if(c[D>>2]|0){I=c[w>>2]|0;H=c[k>>2]|0;c[y>>2]=c[F>>2];c[x>>2]=H;c[e>>2]=c[y>>2];c[e+4>>2]=c[y+4>>2];tk(I,e)}switch(c[h>>2]|0){case 0:{J=c[F>>2]|0;H=c[k>>2]|0;I=c[l>>2]|0;c[f>>2]=J;c[m>>2]=H;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(I,e);I=c[n>>2]|0;c[g>>2]=J;c[r>>2]=H;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];if(wl(I,e,o,p,q)|0)vg(a);break}case 1:{J=c[k>>2]|0;c[z>>2]=c[F>>2];c[s>>2]=J;c[e>>2]=c[z>>2];c[e+4>>2]=c[z+4>>2];wg(a,e);break}case 2:{J=c[k>>2]|0;c[A>>2]=c[F>>2];c[u>>2]=J;c[e>>2]=c[A>>2];c[e+4>>2]=c[A+4>>2];yg(a,e);break}case 3:{J=c[k>>2]|0;c[B>>2]=c[F>>2];c[v>>2]=J;c[e>>2]=c[B>>2];c[e+4>>2]=c[B+4>>2];Ag(a,e);break}default:{}}E=E+1|0}while((E|0)!=(d|0));i=G;return}function vg(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.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;L=i;i=i+80|0;if((i|0)>=(j|0))ba();z=L+64|0;A=L+56|0;B=L+48|0;D=L+40|0;E=L+24|0;J=L+8|0;K=L;F=L+32|0;G=L+16|0;H=a+76|0;pe(c[H>>2]|0);I=a+80|0;pe(c[I>>2]|0);sk(c[a+124>>2]|0,J);b=+g[a+112>>2];if(!(b<.5&b>-.5))Ha(27535,27577,501,27609);C=a+4|0;m=a+8|0;d=_(c[C>>2]<<1,c[m>>2]|0)|0;f=c[a+84>>2]|0;h=+(f>>>0);b=-(b*h);k=a+92|0;g[k>>2]=b;e=~~+dq(+b);l=a+96|0;c[l>>2]=e;d=d+-1|0;if((e|0)<0){do{e=f+e|0;b=h+b;d=d+-1|0}while((e|0)<0);c[l>>2]=e;g[k>>2]=b}c[a+100>>2]=0;y=a+128|0;Fj(c[y>>2]|0,+g[a+116>>2]);e=_((c[m>>2]|0)+(c[a+132>>2]|0)|0,c[C>>2]|0)|0;if(!e){K=a+216|0;c[K>>2]=1;i=L;return}f=F+4|0;k=K+4|0;l=a+64|0;m=a+68|0;p=B+4|0;q=A+4|0;r=D+4|0;s=E+4|0;t=a+72|0;u=G+4|0;x=0;do{if(x>>>0>>0){M=c[y>>2]|0;O=c[J>>2]|0;N=c[O+(x<<3)+4>>2]|0;c[F>>2]=c[O+(x<<3)>>2];c[f>>2]=N;c[z>>2]=c[F>>2];c[z+4>>2]=c[F+4>>2];Mj(M,z,K);Ij(c[y>>2]|0);v=+g[K>>2];w=+g[k>>2];M=c[m>>2]|0;c[B>>2]=c[l>>2];c[p>>2]=M;c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];Ko(A,z);n=+g[A>>2];o=+g[q>>2];h=v*n-w*o;b=w*n+v*o;if((h!=h|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(D,n,o,v,w);h=+g[D>>2];b=+g[r>>2]}g[E>>2]=h;g[s>>2]=b;c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];o=+Bo(z);o=o*+((c[C>>2]|0)>>>0);g[t>>2]=o;g[l>>2]=v;g[m>>2]=w;re(c[H>>2]|0,o);re(c[I>>2]|0,+g[t>>2])}else{N=c[J>>2]|0;O=c[N+(x<<3)+4>>2]|0;c[G>>2]=c[N+(x<<3)>>2];c[u>>2]=O;c[z>>2]=c[G>>2];c[z+4>>2]=c[G+4>>2];wg(a,z)}x=x+1|0}while((x|0)!=(e|0));O=a+216|0;c[O>>2]=1;i=L;return}function wg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=i;i=i+64|0;if((i|0)>=(j|0))ba();s=v+48|0;n=v+40|0;l=v+32|0;q=v+24|0;r=v+8|0;f=v;d=v+16|0;t=a+220|0;u=a+132|0;if((c[t>>2]|0)==(c[u>>2]|0)){Qp(27630,64,1,c[2348]|0)|0;i=v;return}w=a+128|0;x=c[w>>2]|0;y=c[b+4>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=y;c[s>>2]=c[d>>2];c[s+4>>2]=c[d+4>>2];Mj(x,s,f);Ij(c[w>>2]|0);p=+g[f>>2];o=+g[f+4>>2];b=a+64|0;f=a+68|0;d=c[f>>2]|0;c[l>>2]=c[b>>2];c[l+4>>2]=d;c[s>>2]=c[l>>2];c[s+4>>2]=c[l+4>>2];Ko(n,s);m=+g[n>>2];k=+g[n+4>>2];h=p*m-o*k;e=o*m+p*k;if((h!=h|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(q,m,k,p,o);h=+g[q>>2];e=+g[q+4>>2]}g[r>>2]=h;g[r+4>>2]=e;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];m=+Bo(s);d=a+4|0;m=m*+((c[d>>2]|0)>>>0);g[a+72>>2]=m;g[b>>2]=p;g[f>>2]=o;g[s>>2]=0.0;if(xg(a,m,s)|0?(y=c[t>>2]|0,g[(c[a+140>>2]|0)+(y<<2)>>2]=+g[s>>2]/+((c[d>>2]|0)>>>0),y=y+1|0,c[t>>2]=y,(y|0)==(c[u>>2]|0)):0)c[a+216>>2]=2;i=v;return}function xg(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();f=s+24|0;r=s+20|0;n=s+16|0;h=s+8|0;k=s;l=a+76|0;re(c[l>>2]|0,b);m=a+80|0;re(c[m>>2]|0,b);g[r>>2]=0.0;g[n>>2]=0.0;if(c[a+232>>2]|0){ok(c[a+244>>2]|0,+g[a+72>>2]);se(c[l>>2]|0,c[a+96>>2]|0,r);ok(c[a+248>>2]|0,+g[r>>2])}q=a+100|0;e=c[q>>2]|0;if((e|0)>=1){n=e;p=0;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}c[q>>2]=2;p=a+96|0;se(c[l>>2]|0,c[p>>2]|0,r);se(c[m>>2]|0,c[p>>2]|0,n);l=a+88|0;b=+g[l>>2]*.9900000095367432;c[k>>2]=c[r>>2];g[k+4>>2]=0.0;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];Ko(h,f);b=b+ +g[h>>2]*+g[n>>2]*.05000000074505806;g[l>>2]=b;l=a+92|0;b=+g[l>>2]+b;g[l>>2]=b;f=~~+dq(+b);c[p>>2]=f;k=c[a+84>>2]|0;if((f|0)<0){o=+(k>>>0);e=c[q>>2]|0;do{f=k+f|0;b=o+b;e=e+-1|0}while((f|0)<0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e}h=k+-1|0;if(f>>>0<=h>>>0){n=c[q>>2]|0;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}o=+(k>>>0);e=c[q>>2]|0;do{f=f-k|0;b=b-o;e=e+1|0}while(f>>>0>h>>>0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e;n=e;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}function yg(b,d){b=b|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0;x=i;i=i+96|0;if((i|0)>=(j|0))ba();v=x+48|0;k=x+40|0;r=x+32|0;f=x+16|0;h=x+8|0;u=x;m=x+24|0;w=b+128|0;n=c[w>>2]|0;l=c[d+4>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=l;c[v>>2]=c[m>>2];c[v+4>>2]=c[m+4>>2];Mj(n,v,u);Ij(c[w>>2]|0);s=+g[u>>2];t=+g[u+4>>2];d=b+64|0;u=b+68|0;n=c[u>>2]|0;c[r>>2]=c[d>>2];c[r+4>>2]=n;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];Ko(k,v);p=+g[k>>2];q=+g[k+4>>2];o=s*p-t*q;e=t*p+s*q;if((o!=o|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(f,p,q,s,t);o=+g[f>>2];e=+g[f+4>>2]}g[h>>2]=o;g[h+4>>2]=e;c[v>>2]=c[h>>2];c[v+4>>2]=c[h+4>>2];q=+Bo(v);q=q*+((c[b+4>>2]|0)>>>0);r=b+72|0;g[r>>2]=q;g[d>>2]=s;g[u>>2]=t;g[k>>2]=0.0;if(!(xg(b,q,k)|0)){i=x;return}m=b+224|0;a[(c[b+156>>2]|0)+(c[m>>2]|0)>>0]=+g[k>>2]>0.0&1;n=(c[m>>2]|0)+1|0;c[m>>2]=n;if((n|0)!=(c[b+152>>2]|0)){i=x;return}zg(b);d=b+172|0;do if(!(c[d>>2]|0)){f=c[b+16>>2]|0;if(f|0){m=b+24|0;g[b+28>>2]=+yp(+g[b+120>>2])*20.0;g[m>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;h=c[b+164>>2]|0;k=c[b+20>>2]|0;l=v;n=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));ob[f&1](h,0,0,0,0,v,k)|0;v=b+216|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[w>>2]|0);g[b+64>>2]=0.0;g[u>>2]=0.0;g[r>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;if(c[d>>2]|0)break}v=b+216|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[w>>2]|0);g[b+64>>2]=0.0;g[u>>2]=0.0;g[r>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;i=x;return}while(0);c[b+216>>2]=3;i=x;return}function zg(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();e=n;f=b+160|0;m=b+148|0;ck(c[b+156>>2]|0,c[b+152>>2]|0,c[f>>2]|0,c[m>>2]|0,e);e=c[e>>2]|0;if((e|0)!=(c[m>>2]|0))Ha(29224,27577,762,27695);Oj(c[f>>2]|0,e);e=b+164|0;f=Kk(c[b+168>>2]|0,c[f>>2]|0,c[e>>2]|0)|0;m=b+172|0;c[m>>2]=f;if(!f){i=n;return}h=c[b+144>>2]|0;g=c[e>>2]|0;if((a[g+h>>0]|0)!=4){Qp(27723,64,1,c[2348]|0)|0;c[m>>2]=0;i=n;return}l=d[g+(h+1)>>0]<<8|d[g+(h+2)>>0];e=d[g+(h+3)>>0]|0;k=e>>>5;e=e&31;h=d[g+(h+4)>>0]&31;if((k|0)==7){Qp(27788,70,1,c[2348]|0)|0;c[m>>2]=0;f=0;g=0}else g=k;if(e>>>0>27){Qp(27859,78,1,c[2348]|0)|0;c[m>>2]=0;f=0;e=0}if(h>>>0>27){Qp(27938,78,1,c[2348]|0)|0;c[m>>2]=0;i=n;return}if(!f){i=n;return}m=b+196|0;c[m>>2]=l;c[b+180>>2]=g;c[b+184>>2]=e;c[b+188>>2]=h;f=b+208|0;k=Dk(c[f>>2]|0,l,g,e,h)|0;c[f>>2]=k;k=Fk(k)|0;c[b+192>>2]=k;l=b+200|0;c[l>>2]=_p(c[l>>2]|0,k)|0;b=b+204|0;c[b>>2]=_p(c[b>>2]|0,c[m>>2]|0)|0;i=n;return}function Ag(b,e){b=b|0;e=e|0;var f=0.0,h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+96|0;if((i|0)>=(j|0))ba();z=B+48|0;o=B+40|0;x=B+32|0;h=B+16|0;n=B+8|0;y=B;t=B+24|0;A=b+128|0;u=c[A>>2]|0;s=c[e+4>>2]|0;c[t>>2]=c[e>>2];c[t+4>>2]=s;c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];Mj(u,z,y);Ij(c[A>>2]|0);v=+g[y>>2];w=+g[y+4>>2];e=b+64|0;y=b+68|0;u=c[y>>2]|0;c[x>>2]=c[e>>2];c[x+4>>2]=u;c[z>>2]=c[x>>2];c[z+4>>2]=c[x+4>>2];Ko(o,z);l=+g[o>>2];m=+g[o+4>>2];k=v*l-w*m;f=w*l+v*m;if((k!=k|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(h,l,m,v,w);k=+g[h>>2];f=+g[h+4>>2]}g[n>>2]=k;g[n+4>>2]=f;c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];m=+Bo(z);m=m*+((c[b+4>>2]|0)>>>0);x=b+72|0;g[x>>2]=m;g[e>>2]=v;g[y>>2]=w;g[o>>2]=0.0;if(!(xg(b,m,o)|0)){i=B;return}t=b+176|0;u=((d[t>>0]|0)<<1|+g[o>>2]>0.0)&255;a[t>>0]=u;t=b+228|0;e=b+200|0;a[(c[e>>2]|0)+((c[t>>2]|0)>>>3)>>0]=u;u=(c[t>>2]|0)+1|0;c[t>>2]=u;if((u|0)!=(c[b+192>>2]<<3|0)){i=B;return}h=b+204|0;r=Kk(c[b+208>>2]|0,c[e>>2]|0,c[h>>2]|0)|0;c[b+212>>2]=r;s=c[b+16>>2]|0;if(s|0){p=b+24|0;g[b+28>>2]=+yp(+g[b+120>>2])*20.0;g[p>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=c[b+180>>2];c[b+56>>2]=c[b+184>>2];c[b+60>>2]=c[b+188>>2];t=c[b+164>>2]|0;u=c[b+172>>2]|0;n=c[h>>2]|0;e=c[b+196>>2]|0;h=c[b+20>>2]|0;o=z;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));ob[s&1](t,u,n,e,r,z,h)|0}z=b+216|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[A>>2]|0);g[b+64>>2]=0.0;g[y>>2]=0.0;g[x>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;i=B;return}function Bg(a){a=a|0;var b=0;b=a+236|0;if(c[b>>2]|0){a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}c[a+240>>2]=qk(2e3)|0;c[a+244>>2]=lk(2e3)|0;c[a+248>>2]=lk(2e3)|0;c[a+252>>2]=lk(2e3)|0;a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+96|0;if((i|0)>=(j|0))ba();n=p+80|0;m=p+64|0;k=p+48|0;o=p+24|0;f=p+16|0;e=p+8|0;d=p;if(!(c[a+236>>2]|0)){Qp(28017,86,1,c[2348]|0)|0;i=p;return}l=Ep(b,37318)|0;if(!l){o=c[2348]|0;c[d>>2]=b;Kp(o,28104,d)|0;i=p;return}c[e>>2]=b;Kp(l,28173,e)|0;Qp(37886,2,1,l)|0;Qp(37457,11,1,l)|0;Qp(28200,12,1,l)|0;c[f>>2]=2e3;Kp(l,28213,f)|0;Qp(28232,23,1,l)|0;Qp(28256,26,1,l)|0;sk(c[a+240>>2]|0,f);d=0;do{e=c[f>>2]|0;r=+g[e+(d<<3)>>2];q=+g[e+(d<<3)+4>>2];d=d+1|0;c[o>>2]=d;h[o+8>>3]=r;h[o+16>>3]=q;Kp(l,37712,o)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28283,48,1,l)|0;Qp(37815,30,1,l)|0;Qp(37886,2,1,l)|0;Qp(28332,27,1,l)|0;nk(c[a+244>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[k>>2]=d;h[k+8>>3]=r;Kp(l,28360,k)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28379,23,1,l)|0;Qp(28403,23,1,l)|0;Qp(37886,2,1,l)|0;Qp(28427,27,1,l)|0;nk(c[a+248>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[m>>2]=d;h[m+8>>3]=r;Kp(l,28455,m)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28474,23,1,l)|0;Qp(28498,21,1,l)|0;Qp(37886,2,1,l)|0;Hp(l)|0;c[n>>2]=b;Rp(28520,n)|0;i=p;return}function Dg(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;if(a>>>0<2){Qp(28566,75,1,c[2348]|0)|0;kb(1)}if(a&1|0){Qp(28642,69,1,c[2348]|0)|0;kb(1)}j=Xp(184)|0;c[j>>2]=a;k=j+4|0;c[k>>2]=b;l=j+8|0;c[l>>2]=d;b=a+b|0;i=j+36|0;c[i>>2]=b;c[j+40>>2]=Xp(a<<3)|0;c[j+44>>2]=Xp(b<<3)|0;g=j+48|0;c[g>>2]=b;b=Xp(a)|0;h=j+12|0;c[h>>2]=b;if(!e){_i(a,b);d=c[h>>2]|0;b=c[j>>2]|0}else{fq(b|0,e|0,a|0)|0;d=b;b=a}$i(d,b,j+16|0,j+20|0,j+24|0);a=j+52|0;c[a>>2]=aj(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[h>>2]|0)|0;l=j+64|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[j+84>>2]=8;Eg(j,0);c[j+104>>2]=1;l=Ck(1,1,1,1)|0;c[j+100>>2]=l;l=Fk(l)|0;c[j+120>>2]=l;c[j+112>>2]=Xp(l)|0;c[j+124>>2]=1;c[j+116>>2]=Xp(4)|0;c[j+108>>2]=di(48)|0;Gg(j,f);f=j+128|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[g>>2]=c[i>>2];cj(c[a>>2]|0);return j|0}function Eg(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?604:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(28712,67,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(28848,74,1,c[2348]|0)|0;kb(1)}else{gq(a+168|0,b|0,16)|0;Fg(a,c[a+84>>2]|0);return}}function Fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();g=k+8|0;h=k;c[a+84>>2]=b;e=b+6|0;b=a+88|0;c[b>>2]=e;d=a+72|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+68|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0)|0;c[d>>2]=b;b=Fk(b)|0;e=a+92|0;c[e>>2]=b;f=a+76|0;c[f>>2]=_p(c[f>>2]|0,b)|0;f=a+180|0;Vp(g,c[e>>2]<<3,c[636+(c[f>>2]<<4)+12>>2]|0);e=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;b=a+96|0;c[b>>2]=e;d=a+80|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+64|0;e=c[d>>2]|0;if(e|0)Hi(e);c[d>>2]=di(c[f>>2]|0)|0;Vp(h,c[b>>2]|0,c[a+24>>2]|0);c[a+56>>2]=((c[h+4>>2]|0)!=0&1)+(c[h>>2]|0);i=k;return}function Gg(a,b){a=a|0;b=b|0;var d=0;while(1)if(!b)b=588;else break;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(28712,67,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(28848,74,1,c[2348]|0)|0;kb(1)}else{gq(a+152|0,b|0,16)|0;Hg(a);return}}function Hg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();g=b+8|0;e=b;f=a+100|0;d=Dk(c[f>>2]|0,c[a+104>>2]|0,c[a+152>>2]|0,c[a+156>>2]|0,c[a+160>>2]|0)|0;c[f>>2]=d;d=Fk(d)|0;f=a+120|0;c[f>>2]=d;h=a+112|0;c[h>>2]=_p(c[h>>2]|0,d)|0;h=a+108|0;d=a+164|0;c[h>>2]=Gi(c[h>>2]|0,c[d>>2]|0)|0;Vp(g,c[f>>2]<<3,c[636+(c[d>>2]<<4)+12>>2]|0);g=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;d=a+124|0;c[d>>2]=g;f=a+116|0;c[f>>2]=_p(c[f>>2]|0,g<<2)|0;Vp(e,c[d>>2]|0,c[a+24>>2]|0);d=c[e>>2]|0;e=c[e+4>>2]|0;c[a+60>>2]=((e>>>0>0|(e|0)==0&d>>>0>4294967295)&1)+d;i=b;return}function Ig(a){a=a|0;var b=0;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[a+48>>2]=c[a+36>>2];cj(c[a+52>>2]|0);return}function Jg(a){a=a|0;bj(c[a+52>>2]|0);Ek(c[a+68>>2]|0);Hi(c[a+64>>2]|0);Ek(c[a+100>>2]|0);Hi(c[a+108>>2]|0);Yp(c[a+112>>2]|0);Yp(c[a+116>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+12>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+76>>2]|0);Yp(c[a+80>>2]|0);Yp(a);return}function Kg(a){a=a|0;return c[a+136>>2]|0}function Lg(a){a=a|0;return (c[a+56>>2]|0)+3+(c[a+60>>2]|0)|0}function Mg(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=b+128|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[b+48>>2]=c[b+36>>2];cj(c[b+52>>2]|0);m=b+104|0;if((c[m>>2]|0)!=(g|0)){c[m>>2]=g;Hg(b)}c[b+136>>2]=1;g=b+72|0;h=c[g>>2]|0;k=b+84|0;l=c[k>>2]|0;if(!e)eq(h|0,0,l|0)|0;else gq(h|0,e|0,l|0)|0;e=c[k>>2]|0;a[(c[g>>2]|0)+e>>0]=105;a[(c[g>>2]|0)+(e+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[m>>2];m=b+164|0;a[(c[g>>2]|0)+(e+3)>>0]=c[m>>2];l=e+4|0;a[(c[g>>2]|0)+l>>0]=c[b+152>>2]<<5;l=(c[g>>2]|0)+l|0;a[l>>0]=d[l>>0]|0|c[b+156>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+160>>2]&31;e=b+76|0;Jk(c[b+68>>2]|0,c[g>>2]|0,c[e>>2]|0);l=b+92|0;Nj(c[e>>2]|0,c[l>>2]|0);ek(c[e>>2]|0,8,c[l>>2]|0,c[b+80>>2]|0,c[636+(c[b+180>>2]<<4)+12>>2]|0,c[b+96>>2]|0,n);l=b+112|0;Jk(c[b+100>>2]|0,f,c[l>>2]|0);f=b+116|0;e=b+124|0;eq(c[f>>2]|0,0,c[e>>2]<<2|0)|0;bk(c[l>>2]|0,c[b+120>>2]|0,c[636+(c[m>>2]<<4)+12>>2]|0,c[e>>2]|0,c[f>>2]|0);i=n;return}function Ng(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;if(!d){i=a+140|0;i=c[i>>2]|0;return i|0}f=a+48|0;g=a+36|0;h=a+44|0;i=0;do{e=c[f>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){Og(a);c[f>>2]=0;e=0}c[f>>2]=e+1;k=c[h>>2]|0;j=c[k+(e<<3)+4>>2]|0;c[b+(i<<3)>>2]=c[k+(e<<3)>>2];c[b+(i<<3)+4>>2]=j;i=i+1|0}while((i|0)!=(d|0));k=a+140|0;k=c[k>>2]|0;return k|0}function Og(a){a=a|0;var b=0,d=0,e=0,f=0,h=0;b=a+128|0;c[b>>2]=(c[b>>2]|0)+1;f=a+132|0;switch(c[f>>2]|0){case 0:{dj(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=1;return}case 1:{ej(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=2;return}case 2:{fj(c[a+52>>2]|0,c[a+44>>2]|0);c[b>>2]=0;c[f>>2]=3;return}case 3:{Pg(a);return}case 4:{Qg(a);return}case 5:{d=a+36|0;b=a+44|0;if(c[d>>2]|0){e=0;do{h=c[b>>2]|0;g[h+(e<<3)>>2]=0.0;g[h+(e<<3)+4>>2]=0.0;e=e+1|0}while(e>>>0<(c[d>>2]|0)>>>0)}hj(c[a+52>>2]|0,c[b>>2]|0);c[a+140>>2]=1;c[a+136>>2]=0;c[f>>2]=6;return}case 6:{e=a+36|0;if(!(c[e>>2]|0))return;b=a+44|0;d=0;do{h=c[b>>2]|0;g[h+(d<<3)>>2]=0.0;g[h+(d<<3)+4>>2]=0.0;d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0);return}default:{Qp(28923,74,1,c[2348]|0)|0;kb(1)}}}function Pg(b){b=b|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!(c[b>>2]|0))e=b+40|0;else{i=b+12|0;j=b+144|0;k=b+96|0;l=b+64|0;m=b+80|0;e=b+40|0;n=0;do{do if((a[(c[i>>2]|0)+n>>0]|0)==2){f=c[j>>2]|0;h=c[l>>2]|0;if(f>>>0<(c[k>>2]|0)>>>0){c[j>>2]=f+1;Li(h,d[(c[m>>2]|0)+f>>0]|0,(c[e>>2]|0)+(n<<3)|0);break}else{h=Ii(h)|0;Li(c[l>>2]|0,h,(c[e>>2]|0)+(n<<3)|0);break}}else{h=c[e>>2]|0;g[h+(n<<3)>>2]=0.0;g[h+(n<<3)+4>>2]=0.0}while(0);n=n+1|0}while(n>>>0<(c[b>>2]|0)>>>0)}gj(c[b+52>>2]|0,c[e>>2]|0,c[b+44>>2]|0);e=b+128|0;if((c[e>>2]|0)!=(c[b+56>>2]|0))return;c[e>>2]=0;c[b+132>>2]=4;return}function Qg(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!(c[b>>2]|0))d=b+40|0;else{h=b+12|0;i=b+148|0;j=b+124|0;k=b+108|0;l=b+116|0;d=b+40|0;m=0;do{do if((a[(c[h>>2]|0)+m>>0]|0)==2){e=c[i>>2]|0;f=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;Li(f,c[(c[l>>2]|0)+(e<<2)>>2]|0,(c[d>>2]|0)+(m<<3)|0);break}else{f=Ii(f)|0;Li(c[k>>2]|0,f,(c[d>>2]|0)+(m<<3)|0);break}}else{f=c[d>>2]|0;g[f+(m<<3)>>2]=0.0;g[f+(m<<3)+4>>2]=0.0}while(0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}gj(c[b+52>>2]|0,c[d>>2]|0,c[b+44>>2]|0);if((c[b+128>>2]|0)!=(c[b+60>>2]|0))return;c[b+132>>2]=5;return}function Rg(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0;i=Xp(232)|0;if(a>>>0>=8){if(a&1|0){Qp(29060,70,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(29131,92,1,c[2348]|0)|0;kb(1)}}else Qp(28998,61,1,c[2348]|0)|0;c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+156>>2]=f;c[i+160>>2]=h;f=Xp(a)|0;h=i+12|0;c[h>>2]=f;if(!e){_i(a,f);f=c[h>>2]|0;h=c[i>>2]|0}else{fq(f|0,e|0,a|0)|0;h=a}$i(f,h,i+16|0,i+20|0,i+24|0);h=i+208|0;c[h>>2]=ij(a,b,d,e,5,i)|0;d=i+40|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[i+60>>2]=8;c[i+36>>2]=0;Wg(i,0);c[i+96>>2]=48;c[i+100>>2]=2;d=i+104|0;c[d>>2]=1;a=i+108|0;c[a>>2]=1;b=i+112|0;c[b>>2]=1;e=i+116|0;c[e>>2]=1;c[i+128>>2]=di(48)|0;c[i+120>>2]=0;e=Ck(c[d>>2]|0,c[a>>2]|0,c[b>>2]|0,c[e>>2]|0)|0;c[i+124>>2]=e;e=Fk(e)|0;c[i+140>>2]=e;c[i+132>>2]=Xp(e)|0;d=c[d>>2]|0;c[i+136>>2]=Xp(d)|0;c[i+152>>2]=Xp(d<<3)|0;c[i+144>>2]=0;d=i+212|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;g[i+204>>2]=9.999999960041972e-13;zl(i+164|0);jj(c[h>>2]|0);return i|0}function Sg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=e+212|0;c[b>>2]=(c[b>>2]|0)+1;switch(c[e+216>>2]|0){case 0:{Tg(e,a);return 0}case 1:{Vg(e,a);return 0}default:{Qp(29705,81,1,c[2348]|0)|0;kb(1)}}return 0}function Tg(b,d){b=b|0;d=d|0;var e=0,f=0,h=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.0;y=i;i=i+64|0;if((i|0)>=(j|0))ba();w=y+24|0;t=y;h=y+16|0;k=y+8|0;e=c[b>>2]|0;if(!e){i=y;return}n=b+12|0;o=b+36|0;p=b+40|0;q=k+4|0;r=b+220|0;s=b+56|0;x=b+204|0;v=b+72|0;l=b+92|0;m=h+4|0;f=0;while(1){if((a[(c[n>>2]|0)+f>>0]|0)==2){if(!(c[o>>2]|0)){e=c[p>>2]|0;z=c[d+(f<<3)+4>>2]|0;c[k>>2]=c[d+(f<<3)>>2];c[q>>2]=z;c[w>>2]=c[k>>2];c[w+4>>2]=c[k+4>>2];Mi(e,w,t);a[(c[s>>2]|0)+(c[r>>2]|0)>>0]=c[t>>2]}else{e=c[p>>2]|0;A=c[d+(f<<3)+4>>2]|0;z=_(c[r>>2]|0,c[636+(c[l>>2]<<4)+12>>2]|0)|0;z=(c[s>>2]|0)+z|0;c[h>>2]=c[d+(f<<3)>>2];c[m>>2]=A;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];Ni(e,w,t,z)}c[r>>2]=(c[r>>2]|0)+1;B=+Ri(c[p>>2]|0);g[x>>2]=+g[x>>2]+B*B;if((c[r>>2]|0)==(c[v>>2]|0))break;e=c[b>>2]|0}f=f+1|0;if(f>>>0>=e>>>0){u=13;break}}if((u|0)==13){i=y;return}Ug(b);p=b+164|0;g[p>>2]=+yp(+g[x>>2]/+((c[v>>2]|0)>>>0))*10.0;e=b+76|0;if(!(c[e>>2]|0)){m=b+208|0;g[b+168>>2]=+vj(c[m>>2]|0);g[b+172>>2]=+wj(c[m>>2]|0);n=b+176|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;n=c[b+156>>2]|0;o=c[b+48>>2]|0;e=c[e>>2]|0;f=c[b+160>>2]|0;h=w;k=p;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));ob[n&1](o,e,0,0,0,w,f)|0;A=b+212|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;g[x>>2]=9.999999960041972e-13;zl(p);jj(c[m>>2]|0);i=y;return}else{c[b+216>>2]=1;i=y;return}}function Ug(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();p=q;do if(!(c[b+36>>2]|0)){e=b+52|0;n=b+68|0;ek(c[b+56>>2]|0,c[636+(c[b+92>>2]<<4)+12>>2]|0,c[b+72>>2]|0,c[e>>2]|0,8,c[n>>2]|0,p);f=c[p>>2]|0;if((f|0)==(c[n>>2]|0)){Oj(c[e>>2]|0,f);g=Kk(c[b+44>>2]|0,c[e>>2]|0,c[b+48>>2]|0)|0;o=b+76|0;c[o>>2]=g;break}else Ha(29224,29256,537,29292)}else{g=b+52|0;o=b+68|0;gq(c[g>>2]|0,c[b+56>>2]|0,c[o>>2]|0)|0;Pj(c[g>>2]|0,(c[o>>2]|0)>>>3);g=Lk(c[b+44>>2]|0,c[g>>2]|0,c[b+48>>2]|0)|0;o=b+76|0;c[o>>2]=g}while(0);if(!g){i=q;return}h=c[b+60>>2]|0;e=b+48|0;f=c[e>>2]|0;if((a[f+h>>0]|0)!=105){Qp(29324,68,1,c[2348]|0)|0;c[o>>2]=0;g=0;f=c[e>>2]|0}n=d[f+(h+1)>>0]<<8|d[f+(h+2)>>0];m=a[f+(h+3)>>0]|0;l=m&255;if((m+-1&255)>59){Qp(29393,70,1,c[2348]|0)|0;c[o>>2]=0;i=q;return}k=d[f+(h+4)>>0]|0;e=k>>>5;k=k&31;m=d[f+(h+5)>>0]&31;if((e|0)==7){Qp(29464,74,1,c[2348]|0)|0;c[o>>2]=0;g=0;h=0}else h=e;if(k>>>0>27){Qp(29539,82,1,c[2348]|0)|0;c[o>>2]=0;g=0;f=0}else f=k;if(m>>>0>27){Qp(29622,82,1,c[2348]|0)|0;c[o>>2]=0;i=q;return}if(!g){i=q;return}e=b+96|0;if((l|0)==(c[e>>2]|0))e=b+100|0;else{c[e>>2]=l;e=b+100|0;c[e>>2]=c[636+(l<<4)+12>>2];o=b+128|0;c[o>>2]=Gi(c[o>>2]|0,l)|0}g=b+104|0;c[g>>2]=n;c[b+108>>2]=h;c[b+112>>2]=f;c[b+116>>2]=m;o=b+124|0;f=Dk(c[o>>2]|0,n,h,f,m)|0;c[o>>2]=f;o=(c[b+120>>2]|0)==0;f=Fk(f)|0;e=c[e>>2]|0;if(o){o=b+140|0;c[o>>2]=f;Vp(p,f<<3,e);f=o;e=((c[p+4>>2]|0)!=0&1)+(c[p>>2]|0)|0}else{o=f<<3;f=b+140|0;c[f>>2]=o;Vp(p,o,e);e=((c[p+4>>2]|0)!=0&1)+(c[p>>2]|0)|0}p=b+144|0;c[p>>2]=e;o=b+132|0;c[o>>2]=_p(c[o>>2]|0,c[f>>2]|0)|0;o=b+136|0;c[o>>2]=_p(c[o>>2]|0,c[g>>2]|0)|0;b=b+152|0;c[b>>2]=_p(c[b>>2]|0,c[p>>2]<<3)|0;i=q;return}function Vg(b,d){b=b|0;d=d|0;var e=0,f=0,h=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;C=i;i=i+64|0;if((i|0)>=(j|0))ba();B=C+24|0;u=C;l=C+16|0;m=C+8|0;e=c[b>>2]|0;if(!e){i=C;return}q=b+12|0;r=b+224|0;A=b+152|0;x=b+120|0;s=b+128|0;t=m+4|0;w=b+132|0;n=b+140|0;o=b+228|0;y=b+100|0;z=b+144|0;p=l+4|0;k=0;while(1){if((a[(c[q>>2]|0)+k>>0]|0)==2){f=d+(k<<3)|0;h=d+(k<<3)+4|0;E=c[h>>2]|0;e=c[r>>2]|0;D=c[A>>2]|0;c[D+(e<<3)>>2]=c[f>>2];c[D+(e<<3)+4>>2]=E;e=c[s>>2]|0;f=c[f>>2]|0;h=c[h>>2]|0;if(!(c[x>>2]|0)){c[m>>2]=f;c[t>>2]=h;c[B>>2]=c[m>>2];c[B+4>>2]=c[m+4>>2];Mi(e,B,u);$j(c[w>>2]|0,c[n>>2]|0,c[o>>2]|0,c[y>>2]|0,c[u>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[y>>2]|0)}else{E=_(c[r>>2]|0,c[y>>2]|0)|0;E=(c[w>>2]|0)+E|0;c[l>>2]=f;c[p>>2]=h;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];Ni(e,B,u,E)}E=(c[r>>2]|0)+1|0;c[r>>2]=E;if((E|0)==(c[z>>2]|0))break;e=c[b>>2]|0}k=k+1|0;if(k>>>0>=e>>>0){v=16;break}}if((v|0)==16){i=C;return}h=c[b+124>>2]|0;e=c[w>>2]|0;k=b+136|0;f=c[k>>2]|0;if(!(c[x>>2]|0))e=Kk(h,e,f)|0;else e=Lk(h,e,f)|0;f=b+148|0;c[f>>2]=e;e=b+156|0;if(!(c[e>>2]|0)){E=b+212|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;g[b+204>>2]=9.999999960041972e-13;zl(b+164|0);jj(c[b+208>>2]|0);i=C;return}else{r=b+208|0;s=b+164|0;g[b+168>>2]=+vj(c[r>>2]|0);g[b+172>>2]=+wj(c[r>>2]|0);c[b+176>>2]=c[A>>2];c[b+180>>2]=c[z>>2];c[b+184>>2]=c[b+96>>2];c[b+188>>2]=c[y>>2];c[b+192>>2]=c[b+108>>2];c[b+196>>2]=c[b+112>>2];c[b+200>>2]=c[b+116>>2];o=c[e>>2]|0;p=c[b+48>>2]|0;q=c[b+76>>2]|0;n=c[k>>2]|0;m=c[b+104>>2]|0;e=c[f>>2]|0;f=c[b+160>>2]|0;h=B;k=s;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));ob[o&1](p,q,n,m,e,B,f)|0;E=b+212|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;g[b+204>>2]=9.999999960041972e-13;zl(s);jj(c[r>>2]|0);i=C;return}}function Wg(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?620:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(29787,76,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(29864,76,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(29864,76,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(29941,83,1,c[2348]|0)|0;kb(1)}else{gq(a+80|0,b|0,16)|0;Xg(a,c[a+60>>2]|0);return}}function Xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;c[a+60>>2]=b;e=b+6|0;b=a+64|0;c[b>>2]=e;d=a+48|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+44|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(c[b>>2]|0,c[a+80>>2]|0,c[a+84>>2]|0,c[a+88>>2]|0)|0;c[d>>2]=b;e=(c[a+36>>2]|0)==0;b=Fk(b)|0;if(e){d=a+68|0;c[d>>2]=b;Vp(f,b<<3,c[636+(c[a+92>>2]<<4)+12>>2]|0);b=((c[f+4>>2]|0)!=0&1)+(c[f>>2]|0)|0;d=c[d>>2]|0}else{d=b<<3;c[a+68>>2]=d;b=d}f=a+72|0;c[f>>2]=b;b=a+52|0;c[b>>2]=_p(c[b>>2]|0,d)|0;b=a+56|0;c[b>>2]=_p(c[b>>2]|0,c[f>>2]|0)|0;b=a+40|0;d=c[b>>2]|0;if(!d){a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}Hi(d);a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}function Yg(a){a=a|0;kj(c[a+208>>2]|0);Ek(c[a+44>>2]|0);Hi(c[a+40>>2]|0);Ek(c[a+124>>2]|0);Hi(c[a+128>>2]|0);Yp(c[a+12>>2]|0);Yp(c[a+132>>2]|0);Yp(c[a+136>>2]|0);Yp(c[a+152>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(a);return}function Zg(a,b){a=a|0;b=b|0;c[a+36>>2]=b;Xg(a,c[a+60>>2]|0);return}function _g(a,b){a=a|0;b=b|0;c[a+120>>2]=b;return}function $g(a,b,d){a=a|0;b=b|0;d=d|0;lj(c[a+208>>2]|0,b,d);return}function ah(a){a=a|0;xj(c[a+208>>2]|0);return}function bh(a,b){a=a|0;b=b|0;yj(c[a+208>>2]|0,b);return}function ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!b){Qp(30025,63,1,c[2348]|0)|0;kb(1)}else{d=Xp(96)|0;c[d>>2]=b;h=b<<3;m=Xp(h)|0;i=d+4|0;c[i>>2]=m;fq(m|0,a|0,h|0)|0;g[d+12>>2]=+Bk(m,b);m=1<<(Rh(c[d>>2]<<1)|0);b=d+32|0;c[b>>2]=m;h=m<<3;l=Xp(h)|0;e=d+16|0;c[e>>2]=l;k=Xp(h)|0;a=d+20|0;c[a>>2]=k;f=d+24|0;c[f>>2]=Xp(h)|0;j=d+28|0;c[j>>2]=Xp(h)|0;h=d+36|0;c[h>>2]=Mk(m,l,k,1,0)|0;c[d+40>>2]=Mk(c[b>>2]|0,c[f>>2]|0,c[j>>2]|0,-1,0)|0;j=c[b>>2]<<3;f=d+8|0;c[f>>2]=Xp(j)|0;eq(c[e>>2]|0,0,j|0)|0;gq(c[e>>2]|0,c[i>>2]|0,c[d>>2]<<3|0)|0;el(c[h>>2]|0);gq(c[f>>2]|0,c[a>>2]|0,c[b>>2]<<3|0)|0;a=c[b>>2]|0;c[d+44>>2]=a>>>1;c[d+56>>2]=0;g[d+60>>2]=0.0;g[d+64>>2]=0.0;c[d+88>>2]=0;c[d+92>>2]=0;eq(c[e>>2]|0,0,a<<3|0)|0;a=d+72|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[d+48>>2]=.5;b=~~(+((c[b>>2]|0)>>>0)*.30000001192092896/6.283185307179586);c[d+52>>2]=(b|0)<0?0:b;return d|0}return 0}function dh(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;if(b<=0.0|b>2.0){a=c[2348]|0;h[d>>3]=b;Kp(a,30089,d)|0;i=e;return}else{g[a+48>>2]=b;i=e;return}}function eh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();m=r+8|0;n=r;if(!b){Qp(30141,70,1,c[2348]|0)|0;kb(1)}if((e+-2|0)>>>0>78){Qp(30212,76,1,c[2348]|0)|0;kb(1)}if((f+-1|0)>>>0>99){Qp(30289,71,1,c[2348]|0)|0;kb(1)}if(h<0.0|h>1.0){Qp(30361,80,1,c[2348]|0)|0;kb(1)}o=(f<<1)+b|0;p=_(o,e)|0;q=Xp(p<<3)|0;d=Ee(d,e,f,h,0.0)|0;if(!o){Fe(d);b=ch(q,p)|0;Yp(q);i=r;return b|0}f=n+4|0;l=0;do{if(l>>>0>>0){h=+g[a+(l<<3)>>2];k=+g[a+(l<<3)+4>>2]}else{h=0.0;k=0.0}s=q+((_(l,e)|0)<<3)|0;g[n>>2]=h;g[f>>2]=k;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];Je(d,m,s);l=l+1|0}while((l|0)!=(o|0));Fe(d);s=ch(q,p)|0;Yp(q);i=r;return s|0}function fh(a){a=a|0;Yp(c[a+4>>2]|0);Yp(c[a+8>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(c[a+24>>2]|0);Yp(c[a+28>>2]|0);dl(c[a+36>>2]|0);dl(c[a+40>>2]|0);Yp(a);return}function gh(a){a=a|0;return}function hh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();d=g+16|0;e=g+8|0;f=g;switch(c[a+88>>2]|0){case 0:{f=c[b+4>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=f;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];ih(a,d);break}case 1:{e=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];jh(a,d);break}default:{}}d=a+92|0;if(!(c[d>>2]|0)){a=0;i=g;return a|0}c[d>>2]=0;a=c[a+28>>2]|0;i=g;return a|0}function ih(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.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,P=0,Q=0,R=0,S=0;Q=i;i=i+48|0;if((i|0)>=(j|0))ba();E=Q+40|0;F=Q+32|0;G=Q+24|0;H=Q+16|0;I=Q+8|0;J=Q;N=c[b>>2]|0;M=c[b+4>>2]|0;P=a+44|0;b=c[P>>2]|0;c[P>>2]=b+1;L=a+16|0;K=c[L>>2]|0;c[K+(b<<3)>>2]=N;c[K+(b<<3)+4>>2]=M;p=(c[k>>2]=N,+g[k>>2]);s=(c[k>>2]=M,+g[k>>2]);M=a+64|0;g[M>>2]=+g[M>>2]+(p*p+s*s);N=a+32|0;b=c[N>>2]|0;if((c[P>>2]|0)>>>0>>0){i=Q;return}c[P>>2]=b>>>1;el(c[a+36>>2]|0);K=a+60|0;p=+O(+(+g[K>>2]+ +g[M>>2]));f=c[N>>2]|0;s=+(f>>>0);s=s*(p*+O(+(+((c[a>>2]|0)>>>0)/s)));s=1.0/(s*+O(+(+g[a+12>>2])));t=a+52|0;D=c[t>>2]|0;b=0-D|0;if((D|0)<(b|0)){e=0;b=0;d=0.0}else{u=a+40|0;v=a+28|0;w=I+4|0;x=J+4|0;y=a+20|0;z=a+8|0;A=G+4|0;B=F+4|0;C=H+4|0;D=a+24|0;r=b;e=0;b=0;d=0.0;while(1){if(f|0){q=0;do{R=((q-r+f|0)>>>0)%(f>>>0)|0;S=c[y>>2]|0;m=+g[S+(q<<3)>>2];n=+g[S+(q<<3)+4>>2];S=c[z>>2]|0;f=c[S+(R<<3)+4>>2]|0;c[G>>2]=c[S+(R<<3)>>2];c[A>>2]=f;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);o=+g[F>>2];p=+g[B>>2];l=m*o-n*p;h=n*o+m*p;if((l!=l|0.0!=0.0)&(h!=h|0.0!=0.0)){ao(H,m,n,o,p);l=+g[H>>2];h=+g[C>>2]}f=c[D>>2]|0;g[f+(q<<3)>>2]=l;g[f+(q<<3)+4>>2]=h;q=q+1|0;f=c[N>>2]|0}while(q>>>0>>0)}el(c[u>>2]|0);S=c[v>>2]|0;R=c[N>>2]|0;g[I>>2]=s;g[w>>2]=0.0;c[E>>2]=c[I>>2];c[E+4>>2]=c[I+4>>2];fk(S,R,E,S);if(!(c[N>>2]|0))f=0;else{q=0;do{S=c[v>>2]|0;f=c[S+(q<<3)+4>>2]|0;c[J>>2]=c[S+(q<<3)>>2];c[x>>2]=f;c[E>>2]=c[J>>2];c[E+4>>2]=c[J+4>>2];p=+wo(E);f=p>d;d=f?p:d;e=f?q:e;b=f?r:b;q=q+1|0;f=c[N>>2]|0}while(q>>>0>>0)}if((r|0)<(c[t>>2]|0))r=r+1|0;else break}}S=a+56|0;c[S>>2]=(c[S>>2]|0)+1;if(d>+g[a+48>>2]?e>>>0<(f-(c[a>>2]|0)|0)>>>0:0){c[a+88>>2]=1;c[a+68>>2]=b;S=c[L>>2]|0;gq(S|0,S+(e<<3)|0,f-e<<3|0)|0;c[P>>2]=(c[N>>2]|0)-e;i=Q;return}R=c[L>>2]|0;S=f>>>1;gq(R|0,R+(S<<3)|0,S<<3|0)|0;c[K>>2]=c[M>>2];g[M>>2]=0.0;i=Q;return}function jh(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,h=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.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,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=i;i=i+144|0;if((i|0)>=(j|0))ba();S=U+136|0;x=U+128|0;y=U+120|0;z=U+112|0;A=U+104|0;B=U+96|0;C=U+88|0;E=U+80|0;F=U+72|0;G=U+64|0;H=U+56|0;I=U+48|0;J=U+40|0;K=U+32|0;L=U+24|0;M=U+16|0;N=U+8|0;T=U;v=c[b>>2]|0;w=c[b+4>>2]|0;P=a+44|0;R=c[P>>2]|0;c[P>>2]=R+1;Q=a+16|0;D=c[Q>>2]|0;c[D+(R<<3)>>2]=v;c[D+(R<<3)+4>>2]=w;R=a+32|0;if((c[P>>2]|0)>>>0<(c[R>>2]|0)>>>0){i=U;return}D=a+36|0;el(c[D>>2]|0);b=c[R>>2]|0;if(b|0){h=a+68|0;m=a+20|0;n=a+8|0;r=y+4|0;u=x+4|0;v=z+4|0;w=a+24|0;f=0;do{V=((b+f-(c[h>>2]|0)|0)>>>0)%(b>>>0)|0;W=c[m>>2]|0;k=+g[W+(f<<3)>>2];l=+g[W+(f<<3)+4>>2];W=c[n>>2]|0;b=c[W+(V<<3)+4>>2]|0;c[y>>2]=c[W+(V<<3)>>2];c[r>>2]=b;c[S>>2]=c[y>>2];c[S+4>>2]=c[y+4>>2];Ko(x,S);o=+g[x>>2];p=+g[u>>2];e=k*o-l*p;d=l*o+k*p;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(z,k,l,o,p);e=+g[z>>2];d=+g[v>>2]}b=c[w>>2]|0;g[b+(f<<3)>>2]=e;g[b+(f<<3)+4>>2]=d;f=f+1|0;b=c[R>>2]|0}while(f>>>0>>0)}el(c[a+40>>2]|0);V=(c[R>>2]|0)+-1|0;v=a+28|0;z=c[v>>2]|0;W=c[z+(V<<3)+4>>2]|0;c[A>>2]=c[z+(V<<3)>>2];c[A+4>>2]=W;c[S>>2]=c[A>>2];c[S+4>>2]=c[A+4>>2];q=+O(+(+wo(S)));W=c[v>>2]|0;V=c[W+4>>2]|0;c[B>>2]=c[W>>2];c[B+4>>2]=V;c[S>>2]=c[B>>2];c[S+4>>2]=c[B+4>>2];p=+O(+(+wo(S)));V=c[v>>2]|0;W=c[V+12>>2]|0;c[C>>2]=c[V+8>>2];c[C+4>>2]=W;c[S>>2]=c[C>>2];c[S+4>>2]=c[C+4>>2];t=+O(+(+wo(S)));s=(q+t)*.5-p;q=(t-q)*.5;t=-q/(s*2.0);g[a+72>>2]=t;t=p+(q*t+t*(s*t));W=c[R>>2]|0;g[a+76>>2]=t*t/(+(W>>>0)*+g[a+12>>2]);gq(c[v>>2]|0,c[Q>>2]|0,W<<3|0)|0;if(c[R>>2]|0){b=a+4|0;f=F+4|0;h=E+4|0;m=G+4|0;u=0;do{if(u>>>0<(c[a>>2]|0)>>>0){V=c[b>>2]|0;W=c[V+(u<<3)+4>>2]|0;c[F>>2]=c[V+(u<<3)>>2];c[f>>2]=W;c[S>>2]=c[F>>2];c[S+4>>2]=c[F+4>>2];Ko(E,S);o=+g[E>>2];p=+g[h>>2]}else{o=0.0;p=0.0}r=c[Q>>2]|0;n=r+(u<<3)|0;k=+g[n>>2];r=r+(u<<3)+4|0;l=+g[r>>2];e=o*k-p*l;d=p*k+o*l;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(G,k,l,o,p);e=+g[G>>2];d=+g[m>>2]}g[n>>2]=e;g[r>>2]=d;u=u+1|0}while(u>>>0<(c[R>>2]|0)>>>0)}el(c[D>>2]|0);n=a+20|0;if(!(c[R>>2]|0)){f=0;b=0;d=0.0}else{h=H+4|0;m=0;b=0;d=0.0;do{W=c[n>>2]|0;f=c[W+(m<<3)+4>>2]|0;c[H>>2]=c[W+(m<<3)>>2];c[h>>2]=f;c[S>>2]=c[H>>2];c[S+4>>2]=c[H+4>>2];t=+wo(S);f=t>d;b=f?m:b;d=f?t:d;m=m+1|0;f=c[R>>2]|0}while(m>>>0>>0)}H=((b+-1+f|0)>>>0)%(f>>>0)|0;W=((b+1|0)>>>0)%(f>>>0)|0;f=c[n>>2]|0;V=c[f+(H<<3)+4>>2]|0;c[I>>2]=c[f+(H<<3)>>2];c[I+4>>2]=V;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];s=+wo(S);V=c[n>>2]|0;f=c[V+(W<<3)+4>>2]|0;c[J>>2]=c[V+(W<<3)>>2];c[J+4>>2]=f;c[S>>2]=c[J>>2];c[S+4>>2]=c[J+4>>2];t=+wo(S);t=+(b>>>0)+-((t-s)*.5)/(((s+t)*.5-d)*2.0);f=c[R>>2]|0;d=+(f>>>0);d=(b>>>0>f>>>1>>>0?t-d:t)*2.0*3.141592653589793/d;f=a+80|0;g[f>>2]=d;a:do if(!(c[a>>2]|0)){e=0.0;d=0.0}else{h=K+4|0;m=M+4|0;n=L+4|0;r=N+4|0;k=d;b=0;e=0.0;d=0.0;while(1){W=c[Q>>2]|0;s=+g[W+(b<<3)>>2];t=+g[W+(b<<3)+4>>2];q=k*-0.0;o=-k;p=+(b>>>0);l=p*q-q;k=p*o+q*0.0;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(K,q,o,p,0.0);l=+g[K>>2];k=+g[h>>2]}g[M>>2]=l;g[m>>2]=k;c[S>>2]=c[M>>2];c[S+4>>2]=c[M+4>>2];Io(L,S);o=+g[L>>2];p=+g[n>>2];k=s*o-t*p;l=t*o+s*p;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(N,s,t,o,p);k=+g[N>>2];l=+g[r>>2]}e=e+k;d=d+l;b=b+1|0;if(b>>>0>=(c[a>>2]|0)>>>0)break a;k=+g[f>>2]}}while(0);g[T>>2]=e;g[T+4>>2]=d;c[S>>2]=c[T>>2];c[S+4>>2]=c[T+4>>2];g[a+84>>2]=+Bo(S);c[a+92>>2]=1;W=(c[R>>2]|0)>>>1;gq(c[Q>>2]|0,(c[v>>2]|0)+(W<<3)|0,W<<3|0)|0;c[a+88>>2]=0;g[a+60>>2]=+Bk(c[Q>>2]|0,(c[R>>2]|0)>>>1);g[a+64>>2]=0.0;c[P>>2]=(c[R>>2]|0)>>>1;i=U;return}function kh(a){a=a|0;return c[a+32>>2]|0}function lh(a){a=a|0;return +(+g[a+72>>2])}function mh(a){a=a|0;return +(+g[a+76>>2])}function nh(a){a=a|0;return +(+g[a+80>>2])}function oh(a){a=a|0;return +(+g[a+84>>2])}function ph(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();e=a;b=Xp(36)|0;c[b>>2]=di(48)|0;c[b+8>>2]=2;c[b+12>>2]=1;d=Ck(1,1,1,1)|0;c[b+4>>2]=d;d=Fk(d)|0;c[b+24>>2]=d;f=d<<3;c[b+28>>2]=f;Vp(e,f,2);c[b+16>>2]=Xp(((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)<<1)|0;c[b+32>>2]=d<<1;c[b+20>>2]=Xp(d<<3)|0;i=a;return b|0}function qh(a){a=a|0;Ek(c[a+4>>2]|0);Hi(c[a>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(a);return}function rh(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,k=0,l=0,m=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();l=h;m=a+12|0;c[m>>2]=b;b=Gi(c[a>>2]|0,g)|0;c[a>>2]=b;k=a+8|0;c[k>>2]=Ji(b)|0;b=a+4|0;f=Dk(c[b>>2]|0,c[m>>2]|0,d,e,f)|0;c[b>>2]=f;f=Fk(f)|0;c[a+24>>2]=f;f=f<<3;c[a+28>>2]=f;Vp(l,f,c[k>>2]|0);f=((c[l+4>>2]|0)!=0&1)+(c[l>>2]|0)|0;b=a+32|0;c[b>>2]=f;g=a+16|0;c[g>>2]=_p(c[g>>2]|0,_(c[k>>2]|0,f)|0)|0;a=a+20|0;c[a>>2]=_p(c[a>>2]|0,c[b>>2]<<2)|0;i=h;return 0}function sh(a){a=a|0;return c[a+32>>2]|0}function th(a){a=a|0;return Gk(c[a+4>>2]|0)|0}function uh(a){a=a|0;return Hk(c[a+4>>2]|0)|0}function vh(a){a=a|0;return Ik(c[a+4>>2]|0)|0}function wh(a){a=a|0;return Ki(c[a>>2]|0)|0}function xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+20|0;e=c[f>>2]|0;g=a+16|0;Jk(c[a+4>>2]|0,b,c[g>>2]|0);b=a+32|0;eq(c[f>>2]|0,0,c[b>>2]<<2|0)|0;bk(c[g>>2]|0,c[a+24>>2]|0,c[a+8>>2]|0,c[b>>2]|0,e);if(!(c[b>>2]|0))return;e=0;do{Li(c[a>>2]|0,c[(c[f>>2]|0)+(e<<2)>>2]|0,d+(e<<3)|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0);return}function yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();f=p+16|0;o=p+8|0;g=p;h=a+32|0;if(!(c[h>>2]|0)){n=a+16|0;o=a+4|0;o=c[o>>2]|0;a=c[n>>2]|0;a=Kk(o,a,d)|0;i=p;return a|0}k=g+4|0;e=a+16|0;l=a+24|0;m=a+8|0;n=0;do{q=c[a>>2]|0;r=c[b+(n<<3)+4>>2]|0;c[g>>2]=c[b+(n<<3)>>2];c[k>>2]=r;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Mi(q,f,o);q=c[m>>2]|0;r=_(q,n)|0;$j(c[e>>2]|0,c[l>>2]|0,r,q,c[o>>2]|0);n=n+1|0}while(n>>>0<(c[h>>2]|0)>>>0);q=a+4|0;q=c[q>>2]|0;r=c[e>>2]|0;r=Kk(q,r,d)|0;i=p;return r|0}function zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();h=r+16|0;q=r+8|0;k=r;l=a+32|0;if(!(c[l>>2]|0)){g=0;f=c[a+8>>2]|0;e=0}else{m=a+16|0;n=k+4|0;o=a+8|0;p=0;e=0;do{g=c[a>>2]|0;s=c[b+(p<<3)+4>>2]|0;f=(c[m>>2]|0)+e|0;c[k>>2]=c[b+(p<<3)>>2];c[n>>2]=s;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Ni(g,h,q,f);f=c[o>>2]|0;e=f+e|0;p=p+1|0;g=c[l>>2]|0}while(p>>>0>>0)}if((e|0)==(_(f,g)|0)){s=Lk(c[a+4>>2]|0,c[a+16>>2]|0,d)|0;i=r;return s|0}else Ha(30442,30489,315,30520);return 0}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+24|0;d=o+16|0;l=o+8|0;m=o;if(!a){Qp(30545,66,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(30612,68,1,c[2348]|0)|0;kb(1)}n=Xp(20)|0;c[n>>2]=a;c[n+4>>2]=b;Vp(d,a,b+-1|0);h=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;c[n+8>>2]=h;c[n+12>>2]=h+a;b=Xp(h<<3)|0;c[n+16>>2]=b;d=Rj(Rh(h)|0)|0;if(!h){Sj(d);i=o;return n|0}a=m+4|0;e=l+4|0;f=0;do{q=+((Uj(d,2)|0)>>>0)*6.283185307179586*.25+.7853981633974483;g[m>>2]=q*0.0;g[a>>2]=q;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];Io(l,k);p=c[e>>2]|0;c[b+(f<<3)>>2]=c[l>>2];c[b+(f<<3)+4>>2]=p;f=f+1|0}while(f>>>0>>0);Sj(d);i=o;return n|0}function Bh(a){a=a|0;Yp(c[a+16>>2]|0);Yp(a);return}function Ch(a){a=a|0;return c[a+12>>2]|0}function Dh(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;g=a+12|0;if(!(c[g>>2]|0)){f=0;e=0}else{h=a+4|0;i=a+16|0;j=0;f=0;e=0;do{if(!((j>>>0)%((c[h>>2]|0)>>>0)|0)){l=c[i>>2]|0;k=c[l+(e<<3)+4>>2]|0;c[d+(j<<3)>>2]=c[l+(e<<3)>>2];c[d+(j<<3)+4>>2]=k;e=e+1|0}else{l=c[b+(f<<3)+4>>2]|0;c[d+(j<<3)>>2]=c[b+(f<<3)>>2];c[d+(j<<3)+4>>2]=l;f=f+1|0}j=j+1|0}while(j>>>0<(c[g>>2]|0)>>>0)}if((f|0)!=(c[a>>2]|0))Ha(30681,30702,157,30730);if((e|0)==(c[a+8>>2]|0))return;else Ha(30748,30702,158,30730)}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();l=p+24|0;d=p+16|0;m=p+8|0;n=p;if(!a){Qp(30768,67,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(30836,69,1,c[2348]|0)|0;kb(1)}o=Xp(48)|0;c[o>>2]=a;c[o+4>>2]=b;Vp(d,a,b+-1|0);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;h=o+8|0;c[h>>2]=f;c[o+12>>2]=f+a;b=Xp(f<<3)|0;c[o+16>>2]=b;k=Rj(Rh(f)|0)|0;if(!f)b=0;else{d=n+4|0;a=m+4|0;e=0;do{r=+((Uj(k,2)|0)>>>0)*6.283185307179586*.25+.7853981633974483;g[n>>2]=r*0.0;g[d>>2]=r;c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];Io(m,l);q=c[a>>2]|0;c[b+(e<<3)>>2]=c[m>>2];c[b+(e<<3)+4>>2]=q;e=e+1|0}while(e>>>0>>0);b=c[h>>2]|0}Sj(k);b=1<<(Rh((b>>>1)+b|0)|0);c[o+20>>2]=b;a=b<<3;d=Xp(a)|0;c[o+24>>2]=d;a=Xp(a)|0;c[o+28>>2]=a;c[o+32>>2]=Mk(b,d,a,1,0)|0;a=0;do{g[d+(a<<3)>>2]=0.0;g[d+(a<<3)+4>>2]=0.0;a=a+1|0}while(a>>>0>>0);g[o+36>>2]=0.0;g[o+40>>2]=0.0;g[o+44>>2]=1.0;i=p;return o|0}function Fh(a){a=a|0;Yp(c[a+16>>2]|0);Yp(c[a+24>>2]|0);Yp(c[a+28>>2]|0);dl(c[a+32>>2]|0);Yp(a);return}function Gh(a){a=a|0;return c[a+12>>2]|0}function Hh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.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;P=i;i=i+144|0;if((i|0)>=(j|0))ba();L=P+128|0;e=P+120|0;k=P+112|0;q=P+104|0;A=P+96|0;B=P+88|0;C=P+80|0;D=P+72|0;F=P+64|0;G=P+56|0;H=P+48|0;E=P+40|0;I=P+32|0;J=P+24|0;M=P+16|0;N=P+8|0;O=P;K=a+8|0;if(c[K>>2]|0){p=a+4|0;r=a+16|0;s=k+4|0;t=e+4|0;v=q+4|0;w=a+24|0;x=0;do{R=_(c[p>>2]|0,x)|0;l=+g[b+(R<<3)>>2];m=+g[b+(R<<3)+4>>2];R=c[r>>2]|0;Q=c[R+(x<<3)+4>>2]|0;c[k>>2]=c[R+(x<<3)>>2];c[s>>2]=Q;c[L>>2]=c[k>>2];c[L+4>>2]=c[k+4>>2];Ko(e,L);n=+g[e>>2];o=+g[t>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(q,l,m,n,o);h=+g[q>>2];f=+g[v>>2]}R=c[w>>2]|0;g[R+(x<<3)>>2]=h;g[R+(x<<3)+4>>2]=f;x=x+1|0}while(x>>>0<(c[K>>2]|0)>>>0)}el(c[a+32>>2]|0);t=a+20|0;s=a+28|0;if(!(c[t>>2]|0)){e=0;k=0;f=0.0}else{p=B+4|0;q=A+4|0;r=0;k=0;f=0.0;do{if(!((r|0)!=0?(Q=c[s>>2]|0,R=c[Q+(r<<3)+4>>2]|0,c[A>>2]=c[Q+(r<<3)>>2],c[q>>2]=R,c[L>>2]=c[A>>2],c[L+4>>2]=c[A+4>>2],!(+wo(L)>f)):0)){R=c[s>>2]|0;k=c[R+(r<<3)+4>>2]|0;c[B>>2]=c[R+(r<<3)>>2];c[p>>2]=k;c[L>>2]=c[B>>2];c[L+4>>2]=c[B+4>>2];k=r;f=+wo(L)}r=r+1|0;e=c[t>>2]|0}while(r>>>0>>0)}x=((k+-1+e|0)>>>0)%(e>>>0)|0;w=((k+1|0)>>>0)%(e>>>0)|0;Q=c[s>>2]|0;R=c[Q+(w<<3)+4>>2]|0;c[C>>2]=c[Q+(w<<3)>>2];c[C+4>>2]=R;c[L>>2]=c[C>>2];c[L+4>>2]=c[C+4>>2];y=+wo(L);R=c[s>>2]|0;w=c[R+(x<<3)+4>>2]|0;c[D>>2]=c[R+(x<<3)>>2];c[D+4>>2]=w;c[L>>2]=c[D>>2];c[L+4>>2]=c[D+4>>2];z=+wo(L);f=+(k>>>0)+-((y-z)*.5)/(((y+z)*.5-f)*2.0);w=c[t>>2]|0;x=a+4|0;f=(k>>>0>w>>>1>>>0?f-+(w>>>0):f)*2.0*3.141592653589793/+((_(c[x>>2]|0,w)|0)>>>0);w=a+36|0;g[w>>2]=f;a:do if(!(c[K>>2]|0)){h=0.0;f=0.0}else{k=a+24|0;p=F+4|0;q=H+4|0;r=G+4|0;s=E+4|0;l=f;e=0;h=0.0;f=0.0;while(1){R=c[k>>2]|0;y=+g[R+(e<<3)>>2];z=+g[R+(e<<3)+4>>2];u=l*-0.0;n=-l;o=+(e>>>0);m=o*u-u;l=o*n+u*0.0;if((m!=m|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(F,u,n,o,0.0);m=+g[F>>2];l=+g[p>>2]}n=+((c[x>>2]|0)>>>0);g[H>>2]=m*n;g[q>>2]=l*n;c[L>>2]=c[H>>2];c[L+4>>2]=c[H+4>>2];Io(G,L);n=+g[G>>2];o=+g[r>>2];l=y*n-z*o;m=z*n+y*o;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(E,y,z,n,o);l=+g[E>>2];m=+g[s>>2]}h=h+l;f=f+m;e=e+1|0;if(e>>>0>=(c[K>>2]|0)>>>0)break a;l=+g[w>>2]}}while(0);g[I>>2]=h;g[I+4>>2]=f;c[L>>2]=c[I>>2];c[L+4>>2]=c[I+4>>2];v=a+40|0;g[v>>2]=+Bo(L);g[J>>2]=h;g[J+4>>2]=f;c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];u=+wo(L);u=u/+((c[K>>2]|0)>>>0);g[a+44>>2]=u;u=1.0/u;q=a+12|0;e=c[q>>2]|0;if(!e){i=P;return}r=N+4|0;s=M+4|0;t=O+4|0;p=0;k=0;do{if((p>>>0)%((c[x>>2]|0)>>>0)|0){l=u*+g[b+(p<<3)>>2];m=u*+g[b+(p<<3)+4>>2];n=+(p>>>0)*+g[w>>2]+ +g[v>>2];g[N>>2]=n*-0.0;g[r>>2]=-n;c[L>>2]=c[N>>2];c[L+4>>2]=c[N+4>>2];Io(M,L);n=+g[M>>2];o=+g[s>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(O,l,m,n,o);h=+g[O>>2];f=+g[t>>2]}g[d+(k<<3)>>2]=h;g[d+(k<<3)+4>>2]=f;e=c[q>>2]|0;k=k+1|0}p=p+1|0}while(p>>>0>>0);i=P;return}function Ih(a){a=a|0;return +(+g[a+36>>2])}function Jh(a){a=a|0;return +(+g[a+40>>2])}function Kh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0,g=0,i=0,j=0;j=(b|0)==0;if(j)return;else i=0;do{g=c+(i<<3)|0;h[g>>3]=1.0;d=a+(i<<3)|0;e=1.0;f=0;do{if((i|0)!=(f|0)){e=e*(+h[d>>3]-+h[a+(f<<3)>>3]);h[g>>3]=e}f=f+1|0}while((f|0)!=(b|0));h[g>>3]=1.0/e;i=i+1|0}while((i|0)!=(b|0));e=+h[c>>3];if(j)return;h[c>>3]=e/e;if((b|0)==1)return;else d=1;do{h[c+(d<<3)>>3]=+h[c+(d<<3)>>3]/e;d=d+1|0}while((d|0)!=(b|0));return}function Lh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0;a:do if(!e){i=0.0;g=0.0}else{f=0;i=0.0;g=0.0;while(1){j=d-+h[a+(f<<3)>>3];if(+N(+j)<9.999999974752427e-07)break;k=+h[c+(f<<3)>>3];i=i+k*+h[b+(f<<3)>>3]/j;g=g+k/j;f=f+1|0;if(f>>>0>=e>>>0)break a}k=+h[b+(f<<3)>>3];return +k}while(0);k=i/g;return +k}function Mh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,f=0.0;if(!b){f=0.0;return +f}else{e=0;f=1.0;d=0.0}while(1){d=d+f*+g[a+(e<<2)>>2];e=e+1|0;if((e|0)==(b|0))break;else f=f*c}return +d}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0;p=i;n=_(e,c)|0;o=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!((c|0)==0|(e|0)==0)){k=0;do{f=_(k,e)|0;l=+g[a+(k<<2)>>2];h=0;m=1.0;while(1){g[o+(h+f<<2)>>2]=m;h=h+1|0;if((h|0)==(e|0))break;else m=m*l}k=k+1|0}while((k|0)!=(c|0))}f=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(f|0,o|0,n<<2|0)|0;Zh(f,c,e);k=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Wh(f,e,c,b,c,1,k,e,1);a=_(e,e)|0;h=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Wh(f,e,c,o,c,e,h,e,e);f=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(f|0,h|0,a<<2|0)|0;Xh(f,e,e);Wh(f,e,e,k,e,1,d,e,1);i=p;return}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.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,A=0.0,B=0;y=i;i=i+16|0;if((i|0)>=(j|0))ba();w=y+8|0;x=y;if(!b){g[c>>2]=0.0;g[c+4>>2]=0.0;i=y;return}else d=0;while(1){g[c+(d<<3)>>2]=+((d|0)==0&1);g[c+(d<<3)+4>>2]=0.0;if((d|0)==(b|0))break;else d=d+1|0}t=x+4|0;u=w+4|0;v=0;do{q=a+(v<<3)|0;r=a+(v<<3)+4|0;v=v+1|0;f=-+g[q>>2];e=-+g[r>>2];d=c+(v<<3)|0;A=+g[d>>2];n=c+(v<<3)+4|0;z=+g[n>>2];l=f;h=z;m=e;k=A;f=A*f;e=z*e;s=v;while(1){f=f-e;e=m*k+l*h;if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(w,l,m,k,h);f=+g[w>>2];e=+g[u>>2]}B=s;s=s+-1|0;o=c+(s<<3)|0;p=c+(s<<3)+4|0;l=e+ +g[p>>2];g[d>>2]=f+ +g[o>>2];g[n>>2]=l;l=-+g[q>>2];m=-+g[r>>2];k=+g[o>>2];h=+g[p>>2];f=k*l;e=h*m;if((B|0)<=1){n=o;d=p;break}else{d=o;n=p}}f=f-e;e=k*m+h*l;if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(x,k,h,l,m);f=+g[x>>2];e=+g[t>>2]}g[n>>2]=f;g[d>>2]=e}while((v|0)!=(b|0));i=y;return}function Ph(a){a=+a;return +((1.0-+qp(a*.7071067811865476))*.5)}function Qh(a){a=+a;var b=0.0;b=a*3.141592653589793;if(+N(+a)<.009999999776482582){a=+Q(+(b*.5))*+Q(+(b*.25))*+Q(+(b*.125));return +a}else{a=+R(+b)/b;return +a}return 0.0}function Rh(a){a=a|0;var b=0;if(!a){Qp(30906,58,1,c[2348]|0)|0;kb(1)}a=a+-1|0;if(!a){b=0;return b|0}else b=0;do{a=a>>>1;b=b+1|0}while((a|0)!=0);a=b;return a|0}function Sh(a){a=+a;var b=0.0,c=0,d=0.0;if(a==0.0){b=1.0;return +b}b=+Y(+(a*.5));c=0;a=0.0;do{d=+(c>>>0);a=a+ +X(+((d*b-+Th(d+1.0))*2.0));c=c+1|0}while((c|0)!=32);return +a}function Th(a){a=+a;if(a<0.0){Qp(30965,47,1,c[2348]|0)|0;kb(1)}if(a<10.0)return +(+Th(a+1.0)-+Y(+a));else return +((1.8378770351409912-+Y(+a))*.5+(+Y(+(1.0/(a*12.0-.10000000149011612/a)+a))+-1.0)*a);return 0.0}function Uh(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;if(a>>>0>b>>>0){Qp(31013,60,1,c[2348]|0)|0;kb(1)}if(d<0.0){Qp(31074,60,1,c[2348]|0)|0;kb(1)}if(e<-.5|e>.5){Qp(31135,64,1,c[2348]|0)|0;kb(1)}else{e=(+(a>>>0)-+((b+-1|0)>>>0)*.5+e)*2.0/+(b>>>0);e=+Sh(+O(+(1.0-e*e))*d);return +(e/+Sh(d))}return +(0.0)}function Vh(a,b){a=a|0;b=b|0;if(a>>>0>b>>>0){Qp(31200,61,1,c[2348]|0)|0;kb(1)}else return +(.53836-+Q(+(+(a>>>0)*6.283185307179586/+((b+-1|0)>>>0)))*.46164);return +(0.0)}function Wh(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0,n=0,o=0,p=0;if(!((d|0)==(f|0)&((j|0)==(b|0)&(k|0)==(h|0)))){Qp(31262,40,1,c[2348]|0)|0;kb(1)}if(!j)return;h=(d|0)==0;if(!k)return;f=k<<2;p=0;do{m=_(p,k)|0;n=_(p,d)|0;if(h)eq(i+(m<<2)|0,0,f|0)|0;else{o=0;do{b=0;l=0.0;do{l=l+ +g[a+(b+n<<2)>>2]*+g[e+((_(b,k)|0)+o<<2)>>2];b=b+1|0}while((b|0)!=(d|0));g[i+(o+m<<2)>>2]=l;o=o+1|0}while((o|0)!=(k|0))}p=p+1|0}while((p|0)!=(j|0));return}function Xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;if((b|0)!=(d|0)){Qp(31303,40,1,c[2348]|0)|0;kb(1)}l=b<<1;k=(_(l,b)|0)<<2;m=i;i=i+((1*k|0)+15&-16)|0;if((i|0)>=(j|0))ba();e=(b|0)==0;if(e){Yh(m,b,l);i=n;return}f=b<<2;k=0;do{d=_(l,k)|0;fq(m+(d<<2)|0,a+((_(k,b)|0)<<2)|0,f|0)|0;d=d+b|0;h=0;do{g[m+(d+h<<2)>>2]=+((k|0)==(h|0)&1);h=h+1|0}while((h|0)!=(b|0));k=k+1|0}while((k|0)!=(b|0));Yh(m,b,l);if(e){i=n;return}d=b<<2;e=0;do{fq(a+((_(e,b)|0)<<2)|0,m+((_(l,e)|0)+b<<2)|0,d|0)|0;e=e+1|0}while((e|0)!=(b|0));i=n;return}function Yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;o=(b|0)==0;if(o)return;p=c[2348]|0;q=(d|0)==0;r=(d|0)!=0;e=0;h=0;f=0.0;do{i=e;do{l=+N(+(+g[a+((_(i,d)|0)+e<<2)>>2]));n=(i|0)==(e|0)|l>f;f=n?l:f;h=n?i:h;i=i+1|0}while((i|0)!=(b|0));if(f==0.0)Qp(31344,63,1,p)|0;n=_(e,d)|0;if((e|0)!=(h|0)&r){i=_(h,d)|0;j=0;do{t=a+(j+n<<2)|0;s=c[t>>2]|0;m=a+(j+i<<2)|0;c[t>>2]=c[m>>2];c[m>>2]=s;j=j+1|0}while((j|0)!=(d|0))}k=+g[a+(n+e<<2)>>2];if(!(k==0.0)){if(!q){m=0;do{if((m|0)!=(e|0)){i=_(m,d)|0;l=+g[a+(i+e<<2)>>2]/k;j=0;do{t=a+(j+i<<2)|0;g[t>>2]=l*+g[a+(j+n<<2)>>2]-+g[t>>2];j=j+1|0}while((j|0)!=(d|0))}m=m+1|0}while((m|0)!=(b|0))}}else Qp(31408,42,1,p)|0;e=e+1|0}while((e|0)!=(b|0));if(o|(d|0)==0)return;else i=0;do{e=_(i,d)|0;f=1.0/+g[a+(e+i<<2)>>2];h=0;do{t=a+(h+e<<2)|0;g[t>>2]=f*+g[t>>2];h=h+1|0}while((h|0)!=(d|0));i=i+1|0}while((i|0)!=(b|0));return}function Zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;if((i|0)>=(j|0))ba();f=m+32|0;k=m+16|0;l=m;_h(a,b,d);d=_(d,b)|0;if(!d){i=m;return}b=l+8|0;e=0;do{n=a+(e<<2)|0;h[l>>3]=+g[n>>2];h[b>>3]=0.0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];Jo(k,f);g[n>>2]=+h[k>>3];e=e+1|0}while((e|0)!=(d|0));i=m;return}function _h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;k=i;e=_(d,b)|0;h=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(h|0,a|0,e<<2|0)|0;if((b|0)==0|(d|0)==0){i=k;return}else g=0;do{e=_(g,d)|0;f=0;do{c[a+((_(f,b)|0)+g<<2)>>2]=c[h+(f+e<<2)>>2];f=f+1|0}while((f|0)!=(d|0));g=g+1|0}while((g|0)!=(b|0));i=k;return}function $h(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0;if(a>>>0<2){Qp(31451,59,1,c[2348]|0)|0;kb(1)}if(!b){Qp(31511,57,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(31569,65,1,c[2348]|0)|0;kb(1)}else{e=Xp(32)|0;c[e>>2]=a;c[e+4>>2]=b;g[e+8>>2]=d;g[e+28>>2]=1.0/+(a>>>0);f=_(a<<1,b)|0|1;c[e+12>>2]=f;f=Xp(f<<2)|0;c[e+16>>2]=f;sf(a,b,d,0.0,f);b=le(11,a,b,d,0.0)|0;c[e+20>>2]=b;g[e+24>>2]=0.0;oe(b);return e|0}return 0}function ai(a){a=a|0;g[a+24>>2]=0.0;oe(c[a+20>>2]|0);return}function bi(a){a=a|0;me(c[a+20>>2]|0);Yp(c[a+16>>2]|0);Yp(a);return}function ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0.0;k=i;e=+g[a+28>>2];h=i;i=i+((1*(c[a>>2]<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();qe(c[a+20>>2]|0,(b|0)==0?-e:e,h);if(!(c[a>>2]|0)){i=k;return}b=a+24|0;f=0;do{l=+g[h+(f<<2)>>2]+ +g[b>>2];e=l;l=e>3.141592653589793?e+-6.283185307179586:l;e=l;l=e<-3.141592653589793?e+6.283185307179586:l;g[b>>2]=l;e=+R(+l);g[d+(f<<3)>>2]=+Q(+l)+e*0.0;g[d+(f<<3)+4>>2]=e;f=f+1|0}while(f>>>0<(c[a>>2]|0)>>>0);i=k;return}function di(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();b=n;do switch(a|0){case 1:{m=ei(1)|0;i=n;return m|0}case 2:{m=ei(2)|0;i=n;return m|0}case 3:{m=ei(3)|0;i=n;return m|0}case 4:{m=ei(4)|0;i=n;return m|0}case 5:{m=ei(5)|0;i=n;return m|0}case 6:{m=ei(6)|0;i=n;return m|0}case 7:{m=ei(7)|0;i=n;return m|0}case 8:{m=ei(8)|0;i=n;return m|0}case 9:{b=Xp(252)|0;c[b>>2]=9;c[b+76>>2]=0;c[b+80>>2]=0;c[b+4>>2]=1;c[b+8>>2]=2;m=b+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[b+108>>2]=1.5707963705062866;a=b+104|0;g[a>>2]=0.0;g[b+12>>2]=1.5707963705062866;g[b+100>>2]=1.5707963705062866;c[m>>2]=1;c[b+240>>2]=2;g[b+84>>2]=1.0;g[b+88>>2]=0.0;c[b+92>>2]=1065353216;g[b+96>>2]=0.0;if(!(Ti(9)|0)){m=b;i=n;return m|0}g[a>>2]=0.0;m=b;i=n;return m|0}case 10:{a=Xp(252)|0;c[a>>2]=10;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=2;d=a+8|0;c[d>>2]=4;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.7853981852531433;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.7853981852531433;g[a+16>>2]=1.5707963705062866;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 11:{a=Xp(252)|0;c[a>>2]=11;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=3;d=a+8|0;c[d>>2]=8;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.39269909262657166;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.39269909262657166;g[a+16>>2]=.7853981852531433;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 12:{d=Xp(252)|0;c[d>>2]=12;c[d+76>>2]=0;c[d+80>>2]=0;e=d+4|0;c[e>>2]=4;f=d+8|0;c[f>>2]=16;h=d+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=d+100|0;l=d+108|0;g[l>>2]=.19634954631328583;m=d+104|0;g[m>>2]=0.0;a=d+12|0;g[a>>2]=.19634954631328583;g[d+16>>2]=.39269909262657166;if((c[e>>2]|0)>>>0>2){b=2;do{g[a+(b<<2)>>2]=+g[l>>2]*+(1<>>0<(c[e>>2]|0)>>>0)}l=c[d>>2]|0;g[k>>2]=(1.0-1.0/+((c[f>>2]|0)>>>0))*3.141592653589793;c[h>>2]=1;c[d+240>>2]=2;g[d+84>>2]=1.0;g[d+88>>2]=0.0;c[d+92>>2]=1065353216;g[d+96>>2]=0.0;if(!(Ti(l)|0)){m=d;i=n;return m|0}g[m>>2]=0.0;m=d;i=n;return m|0}case 13:{a=Xp(252)|0;c[a>>2]=13;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=5;d=a+8|0;c[d>>2]=32;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.09817477315664291;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.09817477315664291;g[a+16>>2]=.19634954631328583;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 14:{a=Xp(252)|0;c[a>>2]=14;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=6;d=a+8|0;c[d>>2]=64;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.04908738657832146;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.04908738657832146;g[a+16>>2]=.09817477315664291;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 15:{a=Xp(252)|0;c[a>>2]=15;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=7;d=a+8|0;c[d>>2]=128;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.02454369328916073;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.02454369328916073;g[a+16>>2]=.04908738657832146;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 16:{a=Xp(252)|0;c[a>>2]=16;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=8;d=a+8|0;c[d>>2]=256;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.012271846644580364;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.012271846644580364;g[a+16>>2]=.02454369328916073;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 17:{a=Xp(252)|0;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[a+100>>2]=1.0;c[a>>2]=17;g[a+12>>2]=1.0;c[m>>2]=3;c[a+240>>2]=4;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(17)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 18:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=2;c[h+8>>2]=4;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.4472135901451111;c[h>>2]=18;f=h+12|0;g[f>>2]=.4472135901451111;g[h+16>>2]=.8944271802902222;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 19:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=3;c[h+8>>2]=8;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.2182178944349289;c[h>>2]=19;f=h+12|0;g[f>>2]=.2182178944349289;g[h+16>>2]=.4364357888698578;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 20:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=4;c[h+8>>2]=16;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.10846523195505142;c[h>>2]=20;f=h+12|0;g[f>>2]=.10846523195505142;g[h+16>>2]=.21693046391010284;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 21:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=5;c[h+8>>2]=32;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.05415303632616997;c[h>>2]=21;f=h+12|0;g[f>>2]=.05415303632616997;g[h+16>>2]=.10830607265233994;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 22:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=6;c[h+8>>2]=64;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.02706659771502018;c[h>>2]=22;f=h+12|0;g[f>>2]=.02706659771502018;g[h+16>>2]=.05413319543004036;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 23:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=7;c[h+8>>2]=128;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.013532060198485851;c[h>>2]=23;f=h+12|0;g[f>>2]=.013532060198485851;g[h+16>>2]=.027064120396971703;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 24:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=8;c[h+8>>2]=256;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.006765875034034252;c[h>>2]=24;f=h+12|0;g[f>>2]=.006765875034034252;g[h+16>>2]=.013531750068068504;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 25:{m=ni(2)|0;i=n;return m|0}case 26:{m=ni(3)|0;i=n;return m|0}case 27:{m=ni(4)|0;i=n;return m|0}case 28:{m=ni(5)|0;i=n;return m|0}case 29:{m=ni(6)|0;i=n;return m|0}case 30:{m=ni(7)|0;i=n;return m|0}case 31:{m=ni(8)|0;i=n;return m|0}case 32:{m=ni(9)|0;i=n;return m|0}case 33:{m=ni(10)|0;i=n;return m|0}case 34:{m=ni(11)|0;i=n;return m|0}case 35:{m=ni(12)|0;i=n;return m|0}case 36:{m=ni(13)|0;i=n;return m|0}case 37:{m=ni(14)|0;i=n;return m|0}case 38:{m=ni(15)|0;i=n;return m|0}case 39:{m=ni(16)|0;i=n;return m|0}case 40:{m=qi(2)|0;i=n;return m|0}case 41:{m=qi(3)|0;i=n;return m|0}case 42:{m=qi(4)|0;i=n;return m|0}case 43:{m=qi(5)|0;i=n;return m|0}case 44:{m=qi(6)|0;i=n;return m|0}case 45:{m=qi(7)|0;i=n;return m|0}case 46:{m=qi(8)|0;i=n;return m|0}case 47:{a=Xp(252)|0;c[a>>2]=47;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=5;c[a+240>>2]=6;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(47)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 48:{a=Xp(252)|0;c[a>>2]=48;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=2;c[a+8>>2]=4;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=7;c[a+240>>2]=8;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(48)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 49:{a=Xp(252)|0;c[a>>2]=49;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=9;c[a+240>>2]=10;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(49)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 50:{a=Xp(252)|0;c[a>>2]=50;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=5;c[a+8>>2]=32;b=a+236|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;d=Xp(64)|0;c[a+100>>2]=d;e=2080;f=d+64|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));c[b>>2]=11;c[a+240>>2]=12;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(50)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 51:{a=Xp(252)|0;c[a>>2]=51;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=7;c[a+8>>2]=128;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;l=Xp(256)|0;c[a+100>>2]=l;fq(l|0,2144,256)|0;c[m>>2]=13;c[a+240>>2]=14;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(51)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 52:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,2400,16);i=n;return m|0}case 53:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3552,16);i=n;return m|0}case 54:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=5;c[m+8>>2]=32;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(32,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3680,32);i=n;return m|0}case 55:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3936,64);i=n;return m|0}case 56:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=7;c[m+8>>2]=128;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(128,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,4448,128);i=n;return m|0}case 57:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=8;c[m+8>>2]=256;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(256,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,5472,256);i=n;return m|0}case 58:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,2528,64);i=n;return m|0}case 59:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3040,64);i=n;return m|0}case 60:{Qp(32779,105,1,c[2348]|0)|0;kb(1);break}default:{n=c[2348]|0;c[b>>2]=a;Kp(n,32885,b)|0;kb(1)}}while(0);return 0}function ei(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0;i=Xp(252)|0;switch(a|0){case 1:{c[i>>2]=1;break}case 2:{c[i>>2]=2;break}case 3:{c[i>>2]=3;break}case 4:{c[i>>2]=4;break}case 5:{c[i>>2]=5;break}case 6:{c[i>>2]=6;break}case 7:{c[i>>2]=7;break}case 8:{c[i>>2]=8;break}default:{Qp(31635,57,1,c[2348]|0)|0;kb(1)}}j=i+76|0;c[j>>2]=0;k=i+80|0;c[k>>2]=0;l=i+4|0;c[l>>2]=a;a=1<>2]=a;h=i+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;m=3.141592653589793/+(a>>>0);a=i+100|0;b=i+104|0;g[b>>2]=m;d=i+12|0;g[d>>2]=m;if((c[l>>2]|0)>>>0>1){e=1;do{g[d+(e<<2)>>2]=+(1<>2];e=e+1|0}while(e>>>0<(c[l>>2]|0)>>>0)}f=c[f>>2]|0;g[a>>2]=(1.0-1.0/+(f>>>0))*3.141592653589793;c[h>>2]=17;c[i+240>>2]=18;c[j>>2]=Xp(f<<3)|0;hi(i);c[k>>2]=1;if((c[l>>2]|0)>>>0>2)ii(i,2);g[i+84>>2]=1.0;g[i+88>>2]=0.0;c[i+92>>2]=1065353216;g[i+96>>2]=0.0;if(!(Ti(c[i>>2]|0)|0))return i|0;g[b>>2]=0.0;return i|0}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+((Wi(b)|0)<<1>>>0);e=+g[a+104>>2]*e;d=+R(+e);g[c>>2]=+Q(+e)+d*0.0;g[c+4>>2]=d;return}function gi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();m=q+8|0;n=q;p=c[b>>2]|0;o=c[b+4>>2]|0;c[n>>2]=p;c[n+4>>2]=o;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+Bo(m);e=e-+g[a+100>>2];f=e;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;e=f<-3.141592653589793?f+6.283185307179586:e;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=e+ +g[a+12+(k+n<<2)>>2];h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}n=Vi(b)|0;c[d>>2]=n;e=+((Wi(n)|0)<<1>>>0);e=+g[a+104>>2]*e;f=+R(+e);g[a+92>>2]=+Q(+e)+f*0.0;g[a+96>>2]=f;c[a+84>>2]=p;c[a+88>>2]=o;i=q;return}function hi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+76|0;b=c[f>>2]|0;if(!b){Qp(31693,65,1,c[2348]|0)|0;kb(1)}g=a+8|0;e=c[g>>2]|0;if((e+-1|0)>>>0>65535){Qp(31759,60,1,c[2348]|0)|0;kb(1)}h=a+236|0;d=c[h>>2]|0;if(!d){Qp(31820,70,1,c[2348]|0)|0;kb(1)}if(!e)return;tb[d&31](a,0,b);if((c[g>>2]|0)>>>0>1)b=1;else return;do{tb[c[h>>2]&31](a,b,(c[f>>2]|0)+(b<<3)|0);b=b+1|0}while(b>>>0<(c[g>>2]|0)>>>0);return}function ii(b,e){b=b|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0.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;A=i;i=i+16|0;if((i|0)>=(j|0))ba();v=A+8|0;w=A;h=b+8|0;y=c[h>>2]|0;if((y+-1|0)>>>0>>0){Qp(31891,63,1,c[2348]|0)|0;kb(1)}c[b+248>>2]=e;z=b+244|0;c[z>>2]=Xp(_(y,e)|0)|0;x=i;i=i+((1*(y<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=(y|0)==0;if(q){i=A;return}k=b+80|0;l=b+236|0;m=b+76|0;if(!y){u=c[2348]|0;Qp(31955,65,1,u)|0;kb(1)}else{n=x;f=0}while(1){if(!(c[k>>2]|0))tb[c[l>>2]&31](b,f,n);else{t=c[m>>2]|0;u=c[t+(f<<3)+4>>2]|0;c[n>>2]=c[t+(f<<3)>>2];c[x+(f<<3)+4>>2]=u}f=f+1|0;if(f>>>0>=y>>>0)break;if((c[h>>2]|0)>>>0>f>>>0)n=x+(f<<3)|0;else{p=10;break}}if((p|0)==10){u=c[2348]|0;Qp(31955,65,1,u)|0;kb(1)}if(q){i=A;return}f=y&255;if(e|0){k=0;do{h=_(k,e)|0;l=0;do{a[(c[z>>2]|0)+(l+h)>>0]=f;l=l+1|0}while((l|0)!=(e|0));k=k+1|0}while((k|0)!=(y|0));if(q){i=A;return}}l=(e|0)==0;m=w+4|0;s=0;do{if(!l){n=x+(s<<3)|0;b=x+(s<<3)+4|0;p=_(s,e)|0;u=0;do{q=u+p|0;r=1.0e9;t=0;while(1){h=c[z>>2]|0;k=0;f=(s|0)!=(t|0)&1;do{f=(d[h+(k+p)>>0]|0|0)==(t|0)?0:f;k=k+1|0}while((k|0)!=(e|0));o=+g[b>>2]-+g[x+(t<<3)+4>>2];g[w>>2]=+g[n>>2]-+g[x+(t<<3)>>2];g[m>>2]=o;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];o=+wo(v);if((f|0)!=0&o>2]|0)+q>>0]=t;else o=r;t=t+1|0;if((t|0)==(y|0))break;else r=o}u=u+1|0}while((u|0)!=(e|0))}s=s+1|0}while((s|0)!=(y|0));i=A;return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+((Wi(b)|0)<<1>>>0);b=a+104|0;e=+g[b>>2]+ +g[a+108>>2]*e;e=e-(e>6.283185307179586?6.283185307179586:0.0);g[b>>2]=e;d=+R(+e);e=+Q(+e)+d*0.0;g[c>>2]=e;g[c+4>>2]=d;g[a+84>>2]=e;g[a+88>>2]=d;return}function ki(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();n=r+16|0;l=r+8|0;m=r;q=c[b>>2]|0;o=c[b+4>>2]|0;c[l>>2]=q;c[l+4>>2]=o;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];p=+Bo(n);c[m>>2]=q;c[m+4>>2]=o;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];e=+Bo(n);n=a+104|0;e=e-+g[n>>2];g[n>>2]=p;e=e-+g[a+100>>2];f=e;if(!(f>3.141592653589793)){if(f<-3.141592653589793)e=f+6.283185307179586}else e=f+-6.283185307179586;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=e+ +g[a+12+(k+n<<2)>>2];h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}c[d>>2]=Vi(b)|0;f=p-e;p=+R(+f);g[a+92>>2]=+Q(+f)+p*0.0;g[a+96>>2]=p;c[a+84>>2]=q;c[a+88>>2]=o;i=r;return}function li(a,b,d){a=a|0;b=b|0;d=d|0;b=(Wi(b)|0)<<1;g[d>>2]=+g[a+100>>2]*+(1-(c[a+8>>2]|0)+b|0);g[d+4>>2]=0.0;return}function mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,i=0,j=0,l=0,m=0,n=0;l=c[a+4>>2]|0;if(!l){f=c[b>>2]|0;e=0}else{h=+g[b>>2];m=l+-1|0;f=(g[k>>2]=h,c[k>>2]|0);j=0;n=0;e=0;while(1){e=e<<1;if(h>0.0){h=h-+g[a+12+(j+m<<2)>>2];e=e|1}else h=h+ +g[a+12+(j+m<<2)>>2];i=n+1|0;if((i|0)==(l|0))break;else{j=~n;n=i}}}n=Vi(e)|0;c[d>>2]=n;d=(Wi(n)|0)<<1;g[a+92>>2]=+g[a+100>>2]*+(1-(c[a+8>>2]|0)+d|0);g[a+96>>2]=0.0;b=c[b+4>>2]|0;c[a+84>>2]=f;c[a+88>>2]=b;return}function ni(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!a){Qp(32021,66,1,c[2348]|0)|0;kb(1)}o=Xp(252)|0;if(a>>>0>16){Qp(32088,64,1,c[2348]|0)|0;kb(1)}j=o+76|0;c[j>>2]=0;k=o+80|0;c[k>>2]=0;l=o+4|0;c[l>>2]=a;f=1<>2]=f;i=o+236|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;if(!(a&1)){e=a>>>1;c[o+100>>2]=e;n=o+104|0;c[n>>2]=e;d=e}else{d=(a+1|0)>>>1;c[o+100>>2]=d;e=(a+-1|0)>>>1;n=o+104|0;c[n>>2]=e}b=1<>2]=b;c[o+112>>2]=1<=512){if((f|0)<8192)switch(f|0){case 512:{g[o+116>>2]=.048450157046318054;c[o>>2]=32;h=.048450157046318054;break a}case 1024:{g[o+116>>2]=.03829197958111763;c[o>>2]=33;h=.03829197958111763;break a}case 2048:{g[o+116>>2]=.02421087585389614;c[o>>2]=34;h=.02421087585389614;break a}case 4096:{g[o+116>>2]=.01913897506892681;c[o>>2]=35;h=.01913897506892681;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}if((f|0)<32768)if((f|0)<16384)switch(f|0){case 8192:{g[o+116>>2]=.012103663757443428;c[o>>2]=36;h=.012103663757443428;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else switch(f|0){case 16384:{g[o+116>>2]=.009568611159920692;c[o>>2]=37;h=.009568611159920692;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else if((f|0)<65536)switch(f|0){case 32768:{g[o+116>>2]=6.0516102239489555e-03;c[o>>2]=38;h=6.0516102239489555e-03;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else switch(f|0){case 65536:{g[o+116>>2]=.004784196149557829;c[o>>2]=39;h=.004784196149557829;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}}else switch(f|0){case 4:{g[o+116>>2]=.7071067690849304;c[o>>2]=25;h=.7071067690849304;break a}case 8:{g[o+116>>2]=.40824830532073975;c[o>>2]=26;h=.40824830532073975;break a}case 16:{g[o+116>>2]=.3162277638912201;c[o>>2]=27;h=.3162277638912201;break a}case 32:{g[o+116>>2]=.1961161345243454;c[o>>2]=28;h=.1961161345243454;break a}case 64:{g[o+116>>2]=.15430335700511932;c[o>>2]=29;h=.15430335700511932;break a}case 128:{g[o+116>>2]=.09712858498096466;c[o>>2]=30;h=.09712858498096466;break a}case 256:{g[o+116>>2]=.0766965001821518;c[o>>2]=31;h=.0766965001821518;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}while(0);d=o+116|0;e=o+12|0;g[e>>2]=h;if((c[l>>2]|0)>>>0>1){b=1;do{g[e+(b<<2)>>2]=+(1<>2];b=b+1|0}while(b>>>0<(c[l>>2]|0)>>>0)}b=c[m>>2]|0;c[i>>2]=19;c[o+240>>2]=20;c[j>>2]=Xp(b<<3)|0;hi(o);c[k>>2]=1;b=c[l>>2]|0;if((b|0)!=3){if(b>>>0>3)ii(o,4)}else ii(o,3);g[o+84>>2]=1.0;g[o+88>>2]=0.0;c[o+92>>2]=1065353216;g[o+96>>2]=0.0;if(!(Ti(c[o>>2]|0)|0))return o|0;g[n>>2]=0.0;return o|0}function oi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0;i=c[a+104>>2]|0;f=Wi(b>>>i)|0;b=Wi((1<>2];e=h*+((b<<1|1)-(c[a+112>>2]|0)|0);g[d>>2]=h*+((f<<1|1)-(c[a+108>>2]|0)|0)+e*0.0;g[d+4>>2]=e;return}function pi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0;p=+g[b>>2];j=c[a+100>>2]|0;if(!j){o=p;n=0}else{k=j+-1|0;f=p;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=f+ +g[a+12+(i+k<<2)>>2];h=l+1|0;if((h|0)==(j|0)){o=f;n=e;break}else{i=~l;l=h}}}m=+g[b+4>>2];b=a+104|0;j=c[b>>2]|0;if(!j){f=m;e=0}else{k=j+-1|0;f=m;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=f+ +g[a+12+(i+k<<2)>>2];h=l+1|0;if((h|0)==(j|0))break;else{i=~l;l=h}}}l=Vi(n)|0;n=Vi(e)|0;c[d>>2]=(l<>2])+n;g[a+92>>2]=p-(o+f*0.0);g[a+96>>2]=m-f;g[a+84>>2]=p;g[a+88>>2]=m;return}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,h=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;v=i;i=i+16|0;if((i|0)>=(j|0))ba();b=v;switch(a|0){case 2:{u=1632;break}case 3:{u=1680;break}case 4:{u=1728;break}case 5:{u=1788;break}case 6:{u=1860;break}case 7:{u=1944;break}case 8:{u=2052;break}default:{t=c[2348]|0;c[b>>2]=a;Kp(t,32339,b)|0;kb(1)}}p=Xp(252)|0;c[p>>2]=c[u>>2];q=p+76|0;c[q>>2]=0;r=p+80|0;c[r>>2]=0;s=p+4|0;c[s>>2]=a;t=p+8|0;c[t>>2]=1<>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;l=c[u+4>>2]|0;n=p+100|0;c[n>>2]=l;if(l){a=c[u+8>>2]|0;d=p+104|0;e=c[u+12>>2]|0;f=p+136|0;h=c[u+16>>2]|0;k=p+200|0;l=0;do{c[d+(l<<2)>>2]=c[a+(l<<2)>>2];c[f+(l<<2)>>2]=c[e+(l<<2)>>2];c[k+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0;b=c[n>>2]|0}while(l>>>0>>0);if((b|0)!=1)m=12}else m=12;if((m|0)==12){b=c[u+20>>2]|0;a=p+168|0;d=0;do{c[a+(d<<2)>>2]=c[b+(d<<2)>>2];d=d+1|0}while(d>>>0<((c[n>>2]|0)+-1|0)>>>0)}n=c[t>>2]|0;m=Xp(n)|0;c[p+232>>2]=m;gq(m|0,c[u+24>>2]|0,n|0)|0;c[o>>2]=21;c[p+240>>2]=22;switch(c[s>>2]|0){case 2:{ii(p,3);break}case 3:{ii(p,3);break}case 4:{ii(p,4);break}case 5:{ii(p,4);break}case 6:{ii(p,4);break}case 7:{ii(p,5);break}case 8:{ii(p,5);break}default:{}}c[q>>2]=Xp(c[t>>2]<<3)|0;hi(p);c[r>>2]=1;g[p+84>>2]=1.0;g[p+88>>2]=0.0;c[p+92>>2]=1065353216;g[p+96>>2]=0.0;if(!(Ti(c[p>>2]|0)|0)){i=v;return p|0}g[p+104>>2]=0.0;i=v;return p|0}function ri(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;if((c[a+8>>2]|0)>>>0<=b>>>0){Qp(32402,59,1,c[2348]|0)|0;return}j=d[(c[a+232>>2]|0)+b>>0]|0;f=c[a+100>>2]|0;a:do if(!f){h=0;b=0}else{h=0;i=0;while(1){b=(c[a+104+(h<<2)>>2]|0)+i|0;if(j>>>0>>0){b=i;break a}h=h+1|0;if(h>>>0>=f>>>0){h=0;break}else i=b}}while(0);l=+g[a+136+(h<<2)>>2];m=+g[a+200+(h<<2)>>2]+ +((j-b|0)>>>0)*2.0*3.141592653589793/+((c[a+104+(h<<2)>>2]|0)>>>0);k=+R(+m);g[e>>2]=l*(+Q(+m)+k*0.0);g[e+4>>2]=l*k;return}function si(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();k=p+16|0;m=p+8|0;l=p;o=c[b>>2]|0;n=c[b+4>>2]|0;c[m>>2]=o;c[m+4>>2]=n;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];f=+wo(k);b=(c[a+100>>2]|0)+-1|0;a:do if(!b)h=0;else{h=0;while(1){if(f<+g[a+168+(h<<2)>>2])break a;h=h+1|0;if(h>>>0>=b>>>0){h=b;break}}}while(0);c[l>>2]=o;c[l+4>>2]=n;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];f=+Bo(k);if(f<0.0)f=f+6.283185307179586;b=c[a+104+(h<<2)>>2]|0;b=(~~+dq(+((f-+g[a+200+(h<<2)>>2])/(6.283185307179586/+(b>>>0))))>>>0>>>0)%(b>>>0)|0;if(h){k=0;do{b=(c[a+104+(k<<2)>>2]|0)+b|0;k=k+1|0}while((k|0)!=(h|0))}m=a+8|0;k=c[m>>2]|0;b:do if(!k)h=0;else{l=c[a+232>>2]|0;h=0;while(1){if((d[l+h>>0]|0|0)==(b|0))break b;h=h+1|0;if(h>>>0>=k>>>0){h=0;break}}}while(0);c[e>>2]=h;b=a+92|0;if((c[m>>2]|0)>>>0<=h>>>0){Qp(31955,65,1,c[2348]|0)|0;kb(1)}if(!(c[a+80>>2]|0)){tb[c[a+236>>2]&31](a,h,b);e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}else{m=c[a+76>>2]|0;e=c[m+(h<<3)+4>>2]|0;c[b>>2]=c[m+(h<<3)>>2];c[a+96>>2]=e;e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}}function ti(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?-1.0:1.0;g[c+4>>2]=0.0;return}function ui(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>0.0);c[d>>2]=f&1;g[a+92>>2]=f?-1.0:1.0;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function vi(a,b,c){a=a|0;b=b|0;c=c|0;a=(b&2|0)!=0;g[c>>2]=(b&1|0?-.7071067811865476:.7071067811865476)+(a?-0.0:0.0);g[c+4>>2]=a?-.7071067690849304:.7071067690849304;return}function wi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0;f=+g[b>>2];h=!(f>0.0);e=+g[b+4>>2];b=e>0.0;c[d>>2]=(b?0:2)|h&1;g[a+92>>2]=(h?-.7071067811865476:.7071067811865476)+(b?0.0:-0.0);g[a+96>>2]=b?.7071067690849304:-.7071067690849304;g[a+84>>2]=f;g[a+88>>2]=e;return}function xi(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?0.0:1.4142135381698608;g[c+4>>2]=0.0;return}function yi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>.7071067811865476);c[d>>2]=f&1;g[a+92>>2]=f?0.0:1.4142135381698608;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&7;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>3&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Ko(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Ko(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Ai(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+24|0;u=y+16|0;v=y+8|0;w=y;h=y+64|0;k=y+56|0;l=y+48|0;m=y+40|0;o=y+32|0;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Ko(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Ko(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}if(!(p>=0.0))Ha(32462,32486,98,32515);if(!(q>=0.0))Ha(32539,32486,99,32515);k=a+100|0;b=o+4|0;m=c[k>>2]|0;e=q-+g[m+4>>2];g[o>>2]=p-+g[m>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);c[d>>2]=0;m=c[k>>2]|0;f=q-+g[m+12>>2];g[o>>2]=p-+g[m+8>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f>2]=1;e=f}m=c[k>>2]|0;f=q-+g[m+20>>2];g[o>>2]=p-+g[m+16>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f>2]=2;e=f}m=c[k>>2]|0;f=q-+g[m+28>>2];g[o>>2]=p-+g[m+24>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f>2]=3;e=f}m=c[k>>2]|0;f=q-+g[m+36>>2];g[o>>2]=p-+g[m+32>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f>2]=4;else f=e;m=c[k>>2]|0;e=q-+g[m+44>>2];g[o>>2]=p-+g[m+40>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if(e>2]=5;f=e}m=c[k>>2]|0;e=q-+g[m+52>>2];g[o>>2]=p-+g[m+48>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if(e>2]=6;else e=f;m=c[k>>2]|0;q=q-+g[m+60>>2];g[o>>2]=p-+g[m+56>>2];g[b>>2]=q;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];if(+wo(s)>2]=7;b=7}else b=c[d>>2]|0;o=b|n<<3;c[d>>2]=o;h=a+92|0;d=b&7;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>3&3|0){case 0:{g[h>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Ko(t,s);w=c[t+4>>2]|0;c[h>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Ko(v,s);q=-+g[v+4>>2];g[h>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[h>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Bi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&31;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>5&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Ko(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Ko(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+64|0;u=y+40|0;v=y+24|0;w=y+16|0;h=y+56|0;k=y+48|0;l=y+32|0;m=y+8|0;o=y;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Ko(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Ko(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}if(!(p>=0.0))Ha(32462,32563,99,32593);if(!(q>=0.0))Ha(32539,32563,100,32593);k=a+100|0;b=o+4|0;f=0.0;h=0;while(1){m=c[k>>2]|0;e=q-+g[m+(h<<3)+4>>2];g[o>>2]=p-+g[m+(h<<3)>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if((h|0)==0|e>2]=h;else e=f;h=h+1|0;if((h|0)==32)break;else f=e}m=c[d>>2]|0;o=m|n<<5;c[d>>2]=o;b=a+92|0;d=m&31;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>5&3|0){case 0:{g[b>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Ko(t,s);w=c[t+4>>2]|0;c[b>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Ko(v,s);q=-+g[v+4>>2];g[b>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[b>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Di(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0>b>>>0){e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();f=t+8|0;h=t;s=a+8|0;if(!(c[s>>2]|0))e=0;else{l=+g[b>>2];m=+g[b+4>>2];n=a+76|0;o=h+4|0;p=0.0;q=0;e=0;while(1){r=c[n>>2]|0;k=m-+g[r+(q<<3)+4>>2];g[h>>2]=l-+g[r+(q<<3)>>2];g[o>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];k=+wo(f);r=(q|0)==0|k>>0>=(c[s>>2]|0)>>>0)break;else p=r?k:p}}c[d>>2]=e;if((c[s>>2]|0)>>>0>e>>>0){s=c[a+76>>2]|0;d=c[s+(e<<3)+4>>2]|0;c[a+92>>2]=c[s+(e<<3)>>2];c[a+96>>2]=d;d=c[b+4>>2]|0;c[a+84>>2]=c[b>>2];c[a+88>>2]=d;i=t;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();n=q+8|0;o=q;if((c[a>>2]|0)!=60){Qp(32671,56,1,c[2348]|0)|0;kb(1)}p=a+8|0;if((c[p>>2]|0)!=(d|0)){Qp(32728,50,1,c[2348]|0)|0;kb(1)}if(d){e=a+76|0;h=0;do{s=c[b+(h<<3)+4>>2]|0;r=c[e>>2]|0;c[r+(h<<3)>>2]=c[b+(h<<3)>>2];c[r+(h<<3)+4>>2]=s;h=h+1|0}while((h|0)!=(d|0));if((c[a>>2]|0)!=60)e=c[p>>2]|0;else l=10}else l=10;if((l|0)==10){d=c[p>>2]|0;if(!d){i=q;return}h=a+76|0;b=c[h>>2]|0;e=0;f=0.0;k=0.0;do{f=f+ +g[b+(e<<3)>>2];k=k+ +g[b+(e<<3)+4>>2];e=e+1|0}while((e|0)!=(d|0));t=+(d>>>0);m=f/t;f=k/t;e=b+4|0;k=+g[e>>2]-f;g[b>>2]=+g[b>>2]-m;g[e>>2]=k;e=c[p>>2]|0;if(e>>>0>1){d=1;do{e=c[h>>2]|0;s=e+(d<<3)|0;e=e+(d<<3)+4|0;t=+g[e>>2]-f;g[s>>2]=+g[s>>2]-m;g[e>>2]=t;d=d+1|0;e=c[p>>2]|0}while(d>>>0>>0)}}if(!e){i=q;return}h=a+76|0;d=o+4|0;f=0.0;b=0;do{s=c[h>>2]|0;e=c[s+(b<<3)+4>>2]|0;c[o>>2]=c[s+(b<<3)>>2];c[d>>2]=e;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];t=+wo(n);f=f+t*t;b=b+1|0;e=c[p>>2]|0}while(b>>>0>>0);f=+O(+(f/+(e>>>0)));if(!e){i=q;return}else e=0;do{s=c[h>>2]|0;r=s+(e<<3)|0;s=s+(e<<3)+4|0;t=+g[s>>2]/f;g[r>>2]=+g[r>>2]/f;g[s>>2]=t;e=e+1|0}while(e>>>0<(c[p>>2]|0)>>>0);i=q;return}function Gi(a,b){a=a|0;b=b|0;if((c[a>>2]|0)==(b|0)){b=a;return b|0}Hi(a);b=di(b)|0;return b|0}function Hi(a){a=a|0;var b=0;b=c[a+76>>2]|0;if(b|0)Yp(b);b=c[a+244>>2]|0;if(b|0)Yp(b);b=c[a>>2]|0;switch(b|0){case 50:{Yp(c[a+100>>2]|0);Yp(a);return}case 51:{Yp(c[a+100>>2]|0);Yp(a);return}default:{if(!(Ui(b)|0)){Yp(a);return}Yp(c[a+232>>2]|0);Yp(a);return}}}function Ii(a){a=a|0;var b=0;b=Np()|0;return (b>>>0)%((c[a+8>>2]|0)>>>0)|0|0}function Ji(a){a=a|0;return c[a+4>>2]|0}function Ki(a){a=a|0;return c[a>>2]|0}function Li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0<=b>>>0){Qp(31955,65,1,c[2348]|0)|0;kb(1)}if(!(c[a+80>>2]|0)){tb[c[a+236>>2]&31](a,b,d);return}else{e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}}function Mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e+8|0;h=e;g=c[a+240>>2]|0;k=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];tb[g&31](a,f,d);i=e;return}function Ni(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;n=o+8|0;m=o;switch(c[b>>2]|0){case 60:{n=c[d+4>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=n;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Oi(b,h,e,f);i=o;return}case 47:{p=+g[d>>2];d=c[d+4>>2]|0;n=~~(p*-2.0*4.0*16.0+127.0);n=(n|0)>255?255:n;a[f>>0]=(n|0)<0?0:n;n=!(p>0.0);g[b+92>>2]=n?-1.0:1.0;g[b+96>>2]=0.0;g[b+84>>2]=p;c[b+88>>2]=d;c[e>>2]=n&1;i=o;return}case 48:{q=+g[d>>2];p=+g[d+4>>2];d=~~(p*-2.0*5.800000190734863*16.0+127.0);d=(d|0)>255?255:d;a[f>>0]=(d|0)<0?0:d;d=~~(q*-2.0*5.800000190734863*16.0+127.0);d=(d|0)>255?255:d;a[f+1>>0]=(d|0)<0?0:d;d=!(q>0.0);n=p>0.0;c[e>>2]=(n?0:2)|d&1;g[b+92>>2]=(d?-.7071067811865476:.7071067811865476)+(n?0.0:-0.0);g[b+96>>2]=n?.7071067690849304:-.7071067690849304;g[b+84>>2]=q;g[b+88>>2]=p;i=o;return}default:{if(c[b+244>>2]|0?c[b+248>>2]|0:0){n=c[d+4>>2]|0;c[l>>2]=c[d>>2];c[l+4>>2]=n;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Pi(b,h,e,f);i=o;return}l=c[b+240>>2]|0;k=c[d+4>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=k;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];tb[l&31](b,h,n);n=c[n>>2]|0;c[e>>2]=n;Xi(n,c[b+4>>2]|0,f);i=o;return}}}function Oi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0.0,x=0.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.0,K=0,L=0,M=0.0;L=i;i=i+32|0;if((i|0)>=(j|0))ba();A=L+24|0;B=L+16|0;C=L+8|0;D=L;H=c[b+4>>2]|0;I=b+8|0;E=c[I>>2]|0;J=+(E>>>0)*1.2000000476837158;K=i;i=i+((1*(H<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();G=i;i=i+((1*(H<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();F=(H|0)==0;if(!F){h=0;do{g[K+(h<<2)>>2]=4.0;g[G+(h<<2)>>2]=4.0;h=h+1|0}while((h|0)!=(H|0))}a:do if(!E)k=0;else{v=b+76|0;w=+g[d>>2];x=+g[d+4>>2];y=C+4|0;z=B+4|0;t=H+-1|0;if(F){s=0.0;q=0;k=0;while(1){u=c[v>>2]|0;m=w-+g[u+(q<<3)>>2];n=x-+g[u+(q<<3)+4>>2];g[C>>2]=m;g[y>>2]=n;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];Ko(B,A);o=+g[B>>2];p=+g[z>>2];l=m*o-n*p;M=n*o+m*p;if((l!=l|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(D,m,n,o,p);l=+g[D>>2]}h=(q|0)==0|l>2]|0;l=w-+g[r+(u<<3)>>2];m=x-+g[r+(u<<3)+4>>2];g[C>>2]=l;g[y>>2]=m;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];Ko(B,A);n=+g[B>>2];o=+g[z>>2];p=l*n-m*o;M=m*n+l*o;if((p!=p|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(D,l,m,n,o);p=+g[D>>2]}r=(u|0)==0|p>2])g[h>>2]=p}else{h=G+(q<<2)|0;if(p<+g[h>>2])g[h>>2]=p}q=q+1|0}while((q|0)!=(H|0));u=u+1|0;if((u|0)==(E|0))break;else s=r?p:s}}while(0);if(!F){h=0;do{F=~~(J*(+g[K+(h<<2)>>2]-+g[G+(h<<2)>>2])*16.0+127.0);F=(F|0)>255?255:F;a[f+h>>0]=(F|0)<0?0:F;h=h+1|0}while((h|0)!=(H|0))}c[e>>2]=k;if((c[I>>2]|0)>>>0>k>>>0){e=c[b+76>>2]|0;f=c[e+(k<<3)+4>>2]|0;c[b+92>>2]=c[e+(k<<3)>>2];c[b+96>>2]=f;f=c[d+4>>2]|0;c[b+84>>2]=c[d>>2];c[b+88>>2]=f;i=L;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Pi(b,e,f,h){b=b|0;e=e|0;f=f|0;h=h|0;var l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+48|0;if((i|0)>=(j|0))ba();n=L+40|0;F=L+32|0;K=L+16|0;t=L+24|0;s=L+8|0;u=L;l=c[e>>2]|0;e=c[e+4>>2]|0;G=c[b+240>>2]|0;c[F>>2]=l;c[F+4>>2]=e;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];tb[G&31](b,n,K);G=c[b+4>>2]|0;D=b+8|0;H=+((c[D>>2]|0)>>>0)*1.2000000476837158;I=i;i=i+((1*(G<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();J=i;i=i+((1*(G<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();E=(G|0)==0;C=(c[k>>2]=l,+g[k>>2]);B=(c[k>>2]=e,+g[k>>2]);if(!E){e=0;do{g[I+(e<<2)>>2]=8.0;g[J+(e<<2)>>2]=8.0;e=e+1|0}while((e|0)!=(G|0))}z=c[b+244>>2]|0;A=c[b+248>>2]|0;q=C-+g[b+92>>2];r=B-+g[b+96>>2];g[s>>2]=q;g[s+4>>2]=r;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];Ko(t,n);p=+g[t>>2];o=+g[t+4>>2];m=q*p-r*o;M=r*p+q*o;if((m!=m|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(u,q,r,p,o);m=+g[u>>2]}if(!E){e=c[K>>2]|0;l=G+-1|0;n=0;do{if(!(e&1<>2]=m;else g[J+(n<<2)>>2]=m;n=n+1|0}while((n|0)!=(G|0))}a:do if(A|0){u=b+80|0;v=b+236|0;w=F+4|0;x=G+-1|0;y=b+76|0;if(E){l=0;while(1){e=d[z+((_(c[K>>2]|0,A)|0)+l)>>0]|0;if(!(c[u>>2]|0)){if((c[D>>2]|0)>>>0<=e>>>0)break;tb[c[v>>2]&31](b,e,F)}else{s=c[y>>2]|0;t=c[s+(e<<3)+4>>2]|0;c[F>>2]=c[s+(e<<3)>>2];c[w>>2]=t}l=l+1|0;if(l>>>0>=A>>>0)break a}t=c[2348]|0;Qp(31955,65,1,t)|0;kb(1)}l=c[K>>2]|0;t=0;while(1){e=d[z+((_(l,A)|0)+t)>>0]|0;if(!(c[u>>2]|0)){if((c[D>>2]|0)>>>0<=e>>>0)break;tb[c[v>>2]&31](b,e,F);m=+g[F>>2];o=+g[w>>2];l=c[K>>2]|0}else{s=c[y>>2]|0;n=c[s+(e<<3)>>2]|0;s=c[s+(e<<3)+4>>2]|0;c[F>>2]=n;c[w>>2]=s;m=(c[k>>2]=n,+g[k>>2]);o=(c[k>>2]=s,+g[k>>2])}M=C-m;m=B-o;m=M*M+m*m;n=d[z+((_(l,A)|0)+t)>>0]|0;s=0;do{if(!(n&1<>2])g[e>>2]=m}else{e=J+(s<<2)|0;if(m<+g[e>>2])g[e>>2]=m}s=s+1|0}while((s|0)!=(G|0));t=t+1|0;if(t>>>0>=A>>>0)break a}b=c[2348]|0;Qp(31955,65,1,b)|0;kb(1)}while(0);if(E){K=c[K>>2]|0;c[f>>2]=K;i=L;return}else e=0;do{b=~~(H*(+g[I+(e<<2)>>2]-+g[J+(e<<2)>>2])*16.0+127.0);b=(b|0)>255?255:b;a[h+e>>0]=(b|0)<0?0:b;e=e+1|0}while((e|0)!=(G|0));K=c[K>>2]|0;c[f>>2]=K;i=L;return}function Qi(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,h=0.0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0;l=i;i=i+32|0;if((i|0)>=(j|0))ba();o=l+24|0;n=l+16|0;p=l+8|0;f=l;h=+g[a+84>>2];k=+g[a+88>>2];q=c[a+96>>2]|0;c[p>>2]=c[a+92>>2];c[p+4>>2]=q;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];Ko(n,o);b=+g[n>>2];d=+g[n+4>>2];m=h*b-k*d;e=k*b+h*d;if(!((m!=m|0.0!=0.0)&(e!=e|0.0!=0.0))){m=e;i=l;return +m}ao(f,h,k,b,d);m=+g[f+4>>2];i=l;return +m}function Ri(a){a=a|0;var b=0,d=0.0,e=0,f=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();e=b+8|0;f=b;d=+g[a+96>>2]-+g[a+88>>2];g[f>>2]=+g[a+92>>2]-+g[a+84>>2];g[f+4>>2]=d;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];d=+wo(e);i=b;return +d}function Si(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(dp(a,c[636+(b<<4)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<61);if((e|0)==5){i=f;return b|0}e=c[2348]|0;c[d>>2]=a;Kp(e,35245,d)|0;e=0;i=f;return e|0}function Ti(a){a=a|0;return (a+-9|0)>>>0<8|0}function Ui(a){a=a|0;return (a+-40|0)>>>0<7|0}function Vi(a){a=a|0;return a>>>1^a|0}function Wi(a){a=a|0;return a>>>1^a^a>>>2^a>>>3^a>>>4^a>>>5^a>>>6^a>>>7^a>>>8^a>>>9^a>>>10^a>>>11^a>>>12^a>>>13^a>>>14^a>>>15^a>>>16|0}function Xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;if(d>>>0>16){g=c[2348]|0;c[f>>2]=16;Kp(g,35316,f)|0;kb(1)}if(!d){i=h;return}f=d+-1|0;g=0;do{a[e+g>>0]=((1<>31;g=g+1|0}while((g|0)!=(d|0));i=h;return}function Yi(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Rh(d)|0;m=Rj(m>>>0<4?4:m>>>0>8?8:m)|0;n=(d|0)==0;if(n){Sj(m);k=c[2348]|0;Qp(35892,69,1,k)|0;kb(1)}else{i=0;l=0}do{k=(Uj(m,3)|0)&1;do if(a[b+l>>0]|0)if(!(l&1)){g[e+(l<<3)>>2]=k|0?1.0:-1.0;g[e+(l<<3)+4>>2]=0.0;i=i+1|0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0}while(0);l=l+1|0}while((l|0)!=(d|0));Sj(m);if(!i){m=c[2348]|0;Qp(35892,69,1,m)|0;kb(1)}c[h>>2]=i;fl(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=j*+g[n>>2];g[e>>2]=j*+g[e>>2];g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function Zi(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Rh(d)|0;m=Rj(m>>>0<4?5:(m>>>0>8?8:m)+1|0)|0;n=(d|0)==0;if(n){Sj(m);k=c[2348]|0;Qp(35962,69,1,k)|0;kb(1)}else{i=0;l=0}do{k=Uj(m,3)|0;if(!(a[b+l>>0]|0))j=0.0;else{j=k&1|0?1.0:-1.0;i=i+1|0}g[e+(l<<3)>>2]=j;g[e+(l<<3)+4>>2]=0.0;l=l+1|0}while((l|0)!=(d|0));Sj(m);if(!i){m=c[2348]|0;Qp(35962,69,1,m)|0;kb(1)}c[h>>2]=i;fl(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=j*+g[n>>2];g[e>>2]=j*+g[e>>2];g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function _i(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(b>>>0<6)Qp(36032,66,1,c[2348]|0)|0;e=(b>>>0)/10|0;h=b>>>0>34?8:4;j=h>>>1;if(b|0)eq(d|0,0,b|0)|0;i=(b>>>1)-(e>>>0<2?2:e)|0;e=i>>>0>1;if(!e)return;f=h+-1|0;g=1;do{a[d+g>>0]=(g+j&f|0)==0?1:2;g=g+1|0}while(g>>>0>>0);if(!e)return;e=h+-1|0;f=1;do{a[d+(b-f)>>0]=(f+j&e|0)==0?1:2;f=f+1|0}while(f>>>0>>0);return}function $i(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;if((i|0)>=(j|0))ba();r=s;a:do if(!d){o=0;p=0;q=0}else{m=0;k=0;l=0;n=0;b:while(1){h=a[b+n>>0]|0;switch(h<<24>>24){case 0:{h=m;k=k+1|0;break}case 1:{h=m;l=l+1|0;break}case 2:{h=m+1|0;break}default:break b}n=n+1|0;if(n>>>0>=d>>>0){o=h;p=k;q=l;break a}else m=h}n=c[2348]|0;c[r>>2]=h&255;Kp(n,36099,r)|0;kb(1)}while(0);c[e>>2]=p;c[f>>2]=q;c[g>>2]=o;i=s;return}function aj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;if(a>>>0<2){Qp(36165,71,1,c[2348]|0)|0;kb(1)}if(a&1|0){Qp(36237,65,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(36303,72,1,c[2348]|0)|0;kb(1)}if(d>>>0>b>>>0){Qp(36376,71,1,c[2348]|0)|0;kb(1)}k=Xp(80)|0;c[k>>2]=a;c[k+4>>2]=b;i=k+12|0;c[i>>2]=d;b=Xp(a)|0;h=k+8|0;c[h>>2]=b;if(!e){_i(a,b);b=c[h>>2]|0;d=c[k>>2]|0}else{fq(b|0,e|0,a|0)|0;d=a}a=k+28|0;j=k+32|0;$i(b,d,k+24|0,a,j);b=c[a>>2]|0;d=c[j>>2]|0;if((b|0)==(0-d|0)){Qp(36448,72,1,c[2348]|0)|0;kb(1)}if(!d){Qp(36521,70,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(36592,71,1,c[2348]|0)|0;kb(1)}l=c[k>>2]|0;m=l<<3;n=Xp(m)|0;c[k+52>>2]=n;m=Xp(m)|0;c[k+56>>2]=m;c[k+48>>2]=Mk(l,n,m,-1,0)|0;m=c[k>>2]|0;n=m<<3;l=Xp(n)|0;c[k+60>>2]=l;e=Xp(n)|0;c[k+64>>2]=e;d=k+68|0;c[d>>2]=Xp(n)|0;b=k+72|0;c[b>>2]=Xp(n)|0;Yi(c[h>>2]|0,m,l,e,k+36|0);Zi(c[h>>2]|0,c[k>>2]|0,c[d>>2]|0,c[b>>2]|0,k+40|0);b=c[i>>2]|0;d=Xp(b<<2)|0;c[k+16>>2]=d;c[k+20>>2]=Xp(b<<3)|0;if(!b){m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;f=+(m>>>0);f=+O(+f);f=1.0/f;m=k+44|0;g[m>>2]=f;m=Rj(8)|0;n=k+76|0;c[n>>2]=m;return k|0}f=+(b>>>0);e=0;do{o=+R(+((+(e>>>0)+.5)/f*1.5707963267948966));g[d+(e<<2)>>2]=o*o;e=e+1|0}while(e>>>0>>0);m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;o=+(m>>>0);o=+O(+o);o=1.0/o;m=k+44|0;g[m>>2]=o;m=Rj(8)|0;n=k+76|0;c[n>>2]=m;return k|0}function bj(a){a=a|0;Yp(c[a+8>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+48>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(c[a+60>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Sj(c[a+76>>2]|0);Yp(a);return}function cj(a){a=a|0;var b=0,d=0,e=0;Vj(c[a+76>>2]|0);d=a+12|0;if(!(c[d>>2]|0))return;a=a+20|0;b=0;do{e=c[a>>2]|0;g[e+(b<<3)>>2]=0.0;g[e+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}function dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;d=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;if((e|0)!=(0-d|0)){i=a+64|0;f=0;do{k=((d+f-(e<<1)|0)>>>0)%(d>>>0)|0;l=c[i>>2]|0;j=c[l+(k<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[l+(k<<3)>>2];c[b+(f<<3)+4>>2]=j;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}f=a+12|0;if(!(c[f>>2]|0))return;d=a+16|0;e=0;do{n=+g[(c[d>>2]|0)+(e<<2)>>2];k=b+(e<<3)|0;l=b+(e<<3)+4|0;m=n*+g[l>>2];g[k>>2]=n*+g[k>>2];g[l>>2]=m;e=e+1|0}while(e>>>0<(c[f>>2]|0)>>>0);return}function ej(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=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;g=a+64|0;if((e|0)!=(0-d|0)){f=0;do{j=((d+f-e|0)>>>0)%(d>>>0)|0;k=c[g>>2]|0;i=c[k+(j<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[k+(j<<3)>>2];c[b+(f<<3)+4>>2]=i;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}gq(c[a+20>>2]|0,c[g>>2]|0,c[a+12>>2]<<3|0)|0;return}function fj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;i=a+56|0;gq(c[i>>2]|0,c[a+72>>2]|0,c[a>>2]<<3|0)|0;e=a+4|0;h=c[e>>2]|0;gq(b|0,(c[i>>2]|0)+((c[a>>2]|0)-h<<3)|0,h<<3|0)|0;gq(b+(c[e>>2]<<3)|0,c[i>>2]|0,c[a>>2]<<3|0)|0;e=a+12|0;if(!(c[e>>2]|0)){b=0;h=a+20|0;h=c[h>>2]|0;i=c[i>>2]|0;gq(h|0,i|0,b|0)|0;return}f=a+16|0;h=a+20|0;d=0;do{j=+g[(c[f>>2]|0)+(d<<2)>>2];k=b+(d<<3)|0;a=b+(d<<3)+4|0;n=j*+g[k>>2];j=j*+g[a>>2];g[k>>2]=n;g[a>>2]=j;m=c[h>>2]|0;l=+g[(c[f>>2]|0)+((c[e>>2]|0)+~d<<2)>>2];j=j+ +g[m+(d<<3)+4>>2]*l;g[k>>2]=n+ +g[m+(d<<3)>>2]*l;g[a>>2]=j;d=d+1|0;a=c[e>>2]|0}while(d>>>0>>0);m=a<<3;b=h;b=c[b>>2]|0;k=c[i>>2]|0;gq(b|0,k|0,m|0)|0;return}function gj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;f=c[b>>2]|0;a:do if(f|0){i=b+8|0;j=b+44|0;k=b+52|0;l=b+76|0;h=0;while(1){f=(((f>>>1)+h|0)>>>0)%(f>>>0)|0;switch(a[(c[i>>2]|0)+f>>0]|0){case 0:{m=c[k>>2]|0;g[m+(f<<3)>>2]=0.0;g[m+(f<<3)+4>>2]=0.0;break}case 1:{n=(Tj(c[l>>2]|0)|0)!=0;m=c[k>>2]|0;g[m+(f<<3)>>2]=+g[j>>2]*(n?1.0:-1.0);g[m+(f<<3)+4>>2]=0.0;break}default:{p=+g[j>>2];o=+g[d+(f<<3)+4>>2]*p;n=c[k>>2]|0;g[n+(f<<3)>>2]=+g[d+(f<<3)>>2]*p;g[n+(f<<3)+4>>2]=o}}h=h+1|0;f=c[b>>2]|0;if(h>>>0>=f>>>0)break a}}while(0);el(c[b+48>>2]|0);i=b+4|0;n=c[i>>2]|0;l=b+56|0;gq(e|0,(c[l>>2]|0)+((c[b>>2]|0)-n<<3)|0,n<<3|0)|0;gq(e+(c[i>>2]<<3)|0,c[l>>2]|0,c[b>>2]<<3|0)|0;i=b+12|0;if(!(c[i>>2]|0)){n=0;e=b+20|0;e=c[e>>2]|0;m=c[l>>2]|0;gq(e|0,m|0,n|0)|0;return}j=b+16|0;k=b+20|0;h=0;do{p=+g[(c[j>>2]|0)+(h<<2)>>2];n=e+(h<<3)|0;f=e+(h<<3)+4|0;q=p*+g[n>>2];p=p*+g[f>>2];g[n>>2]=q;g[f>>2]=p;m=c[k>>2]|0;o=+g[(c[j>>2]|0)+((c[i>>2]|0)+~h<<2)>>2];p=p+ +g[m+(h<<3)+4>>2]*o;g[n>>2]=q+ +g[m+(h<<3)>>2]*o;g[f>>2]=p;h=h+1|0;f=c[i>>2]|0}while(h>>>0>>0);n=f<<3;e=k;e=c[e>>2]|0;m=c[l>>2]|0;gq(e|0,m|0,n|0)|0;return}function hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0;f=a+12|0;d=c[f>>2]|0;if(!d)return;h=a+20|0;e=a+16|0;a=0;do{k=c[h>>2]|0;j=+g[(c[e>>2]|0)+(d+~a<<2)>>2];i=+g[k+(a<<3)+4>>2]*j;g[b+(a<<3)>>2]=+g[k+(a<<3)>>2]*j;g[b+(a<<3)+4>>2]=i;a=a+1|0;d=c[f>>2]|0}while(d>>>0>a>>>0);return}function ij(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0;l=Xp(216)|0;if(a>>>0>=8){if(a&1|0){Qp(36722,66,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(36789,88,1,c[2348]|0)|0;kb(1)}}else Qp(36664,57,1,c[2348]|0)|0;c[l>>2]=a;k=l+8|0;c[k>>2]=b;c[l+4>>2]=a>>>1;d=Xp(a)|0;j=l+12|0;c[j>>2]=d;if(!e){_i(a,d);d=c[j>>2]|0;b=c[l>>2]|0}else{fq(d|0,e|0,a|0)|0;b=a}e=l+20|0;a=l+24|0;$i(d,b,l+16|0,e,a);d=c[e>>2]|0;b=c[a>>2]|0;if((d|0)==(0-b|0)){Qp(36878,73,1,c[2348]|0)|0;kb(1)}if(!b){Qp(36952,71,1,c[2348]|0)|0;kb(1)}if(d>>>0<2){Qp(37024,72,1,c[2348]|0)|0;kb(1)}p=c[l>>2]|0;m=p<<3;q=Xp(m)|0;c[l+52>>2]=q;m=Xp(m)|0;c[l+56>>2]=m;c[l+48>>2]=Mk(p,m,q,1,0)|0;c[l+60>>2]=qk((c[k>>2]|0)+(c[l>>2]|0)|0)|0;q=c[l>>2]|0;m=q<<3;p=Xp(m)|0;c[l+64>>2]=p;n=Xp(m)|0;c[l+68>>2]=n;b=l+72|0;c[b>>2]=Xp(m)|0;d=l+76|0;c[d>>2]=Xp(m)|0;m=l+28|0;Yi(c[j>>2]|0,q,p,n,m);n=l+32|0;Zi(c[j>>2]|0,c[l>>2]|0,c[b>>2]|0,c[d>>2]|0,n);j=c[l>>2]|0;i=+(j>>>0);o=+O(+i);g[l+36>>2]=o/+O(+(+(((c[a>>2]|0)+(c[e>>2]|0)|0)>>>0)));g[l+40>>2]=o/+O(+(+((c[m>>2]|0)>>>0)));g[l+44>>2]=o/+O(+(+((c[n>>2]|0)>>>0)));g[l+80>>2]=1.0;a=j<<3;n=Xp(a)|0;c[l+84>>2]=n;m=Xp(a)|0;c[l+88>>2]=m;e=Xp(a)|0;c[l+92>>2]=e;d=Xp(a)|0;b=l+96|0;c[b>>2]=d;c[l+100>>2]=Xp(a)|0;eq(n|0,0,a|0)|0;eq(m|0,0,a|0)|0;eq(e|0,0,a|0)|0;eq(d|0,0,a|0)|0;k=c[k>>2]|0;k=k>>>0<2?k:2;c[l+132>>2]=k;i=+(k>>>0)*2.0*3.141592653589793/i;if(j|0?(r=i*0.0,o=+R(+r),g[d>>2]=+Q(+r)+o*0.0,g[d+4>>2]=o,(c[l>>2]|0)>>>0>1):0){d=1;do{q=c[b>>2]|0;o=i*+(d>>>0);r=+R(+o);g[q+(d<<3)>>2]=+Q(+o)+r*0.0;g[q+(d<<3)+4>>2]=r;d=d+1|0}while(d>>>0<(c[l>>2]|0)>>>0)}c[l+160>>2]=f;c[l+164>>2]=h;q=l+108|0;c[q>>2]=zj(0)|0;d=l+112|0;c[d>>2]=Rj(8)|0;Dj(c[q>>2]|0);Vj(c[d>>2]|0);d=l+136|0;q=l+116|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[l>>2]|0;if(d>>>0>44){g[l+152>>2]=.3499999940395355;r=.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}else{r=+((44-d|0)>>>0)*.009999999776482582;g[l+152>>2]=r+.3499999940395355;r=r+.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}return 0}function jj(a){a=a|0;var b=0,d=0,e=0.0;Dj(c[a+108>>2]|0);Vj(c[a+112>>2]|0);b=a+136|0;d=a+116|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){g[a+152>>2]=.3499999940395355;e=.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}else{g[a+152>>2]=+((44-b|0)>>>0)*.009999999776482582+.3499999940395355;e=+((44-b|0)>>>0)*.009999999776482582+.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}}function kj(a){a=a|0;var b=0;b=c[a+176>>2]|0;if(b|0)uk(b);b=c[a+180>>2]|0;if(b|0)pk(b);b=c[a+184>>2]|0;if(b|0)uk(b);b=c[a+188>>2]|0;if(b|0)Yp(b);b=c[a+192>>2]|0;if(b|0)Yp(b);b=c[a+196>>2]|0;if(b|0)Yp(b);b=c[a+208>>2]|0;if(b|0)pk(b);b=c[a+212>>2]|0;if(b|0)pk(b);Yp(c[a+12>>2]|0);uk(c[a+60>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+48>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+76>>2]|0);Yp(c[a+84>>2]|0);Yp(c[a+88>>2]|0);Yp(c[a+92>>2]|0);Yp(c[a+96>>2]|0);Yp(c[a+100>>2]|0);Ej(c[a+108>>2]|0);Sj(c[a+112>>2]|0);Yp(a);return}function lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0;I=i;i=i+48|0;if((i|0)>=(j|0))ba();h=I+40|0;G=I+16|0;H=I;k=I+32|0;l=I+24|0;w=I+8|0;if(!d){i=I;return}z=H+4|0;A=a+104|0;B=a+60|0;C=l+4|0;D=a+168|0;E=a+124|0;m=a+4|0;n=a+8|0;o=a+84|0;p=a+80|0;q=G+4|0;r=a+140|0;s=a+136|0;t=a+176|0;u=w+4|0;v=a+180|0;x=a+108|0;y=k+4|0;F=0;do{e=c[b+(F<<3)>>2]|0;f=c[b+(F<<3)+4>>2]|0;c[H>>2]=e;c[z>>2]=f;if(c[A>>2]|0){J=c[x>>2]|0;c[k>>2]=e;c[y>>2]=f;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Mj(J,h,H);Ij(c[x>>2]|0);e=c[H>>2]|0;f=c[z>>2]|0}J=c[B>>2]|0;c[l>>2]=e;c[C>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];tk(J,h);if(c[D>>2]|0){J=c[t>>2]|0;f=c[z>>2]|0;c[w>>2]=c[H>>2];c[u>>2]=f;c[h>>2]=c[w>>2];c[h+4>>2]=c[w+4>>2];tk(J,h);L=+g[H>>2];K=+g[z>>2];ok(c[v>>2]|0,L*L+K*K)}switch(c[A>>2]|0){case 0:{mj(a);break}case 1:{J=(c[E>>2]|0)+1|0;c[E>>2]=J;if(J>>>0>=(c[m>>2]|0)>>>0){c[E>>2]=0;sk(c[B>>2]|0,h);nj(a,(c[h>>2]|0)+(c[n>>2]<<3)|0,c[o>>2]|0);oj(a,c[o>>2]|0,G);K=+g[p>>2];L=K*+g[q>>2];g[s>>2]=K*+g[G>>2];g[r>>2]=L;c[A>>2]=2}break}case 2:{pj(a);break}case 3:{qj(a);break}case 4:{tj(a);break}default:{}}F=F+1|0}while((F|0)!=(d|0));i=I;return}function mj(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();n=q+32|0;d=q+24|0;m=q+8|0;h=q+16|0;o=q;p=a+124|0;l=(c[p>>2]|0)+1|0;c[p>>2]=l;if(l>>>0<(c[a>>2]|0)>>>0){i=q;return}c[p>>2]=0;sk(c[a+60>>2]|0,d);k=c[a+8>>2]|0;l=c[a>>2]|0;e=k+l|0;f=c[d>>2]|0;if(k>>>0>>0){b=0.0;d=k;do{s=+g[f+(d<<3)>>2];r=+g[f+(d<<3)+4>>2];b=b+(s*s+r*r);d=d+1|0}while(d>>>0>>0)}else b=0.0;t=+(l>>>0)/b;d=a+84|0;nj(a,f+(k<<3)|0,c[d>>2]|0);oj(a,c[d>>2]|0,m);d=m+4|0;r=t*+g[m>>2];s=t*+g[d>>2];g[m>>2]=r;g[d>>2]=s;g[h>>2]=r;g[h+4>>2]=s;c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];b=+Bo(n);d=a+4|0;e=c[d>>2]|0;g[a+80>>2]=t;g[o>>2]=r;g[o+4>>2]=s;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];s=+wo(n);if(s>+g[a+152>>2]){n=~~+dq(+(b*+(e>>>0)/6.283185307179586));o=c[a>>2]|0;c[p>>2]=(((o+n|0)>>>0)%((c[d>>2]|0)>>>0)|0)+o;c[a+104>>2]=1}i=q;return}function nj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0,l=0.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,y=0,z=0,A=0,B=0;B=i;i=i+32|0;if((i|0)>=(j|0))ba();x=B+24|0;y=B+16|0;z=B+8|0;A=B;gq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);p=+O(+(+((c[b+28>>2]|0)>>>0)));w=c[b>>2]|0;p=p/+(w>>>0);if(!w){i=B;return}q=b+12|0;r=b+52|0;s=b+64|0;t=z+4|0;u=y+4|0;v=A+4|0;w=0;do{if((w&1|0)==0?(a[(c[q>>2]|0)+w>>0]|0)!=0:0){d=c[r>>2]|0;l=+g[d+(w<<3)>>2];m=+g[d+(w<<3)+4>>2];d=c[s>>2]|0;k=c[d+(w<<3)+4>>2]|0;c[z>>2]=c[d+(w<<3)>>2];c[t>>2]=k;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Ko(y,x);n=+g[y>>2];o=+g[u>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(A,l,m,n,o);h=+g[A>>2];f=+g[v>>2]}k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=h;g[d>>2]=f}else{k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=0.0;g[d>>2]=0.0;h=0.0;f=0.0}g[k>>2]=p*h;g[d>>2]=p*f;w=w+1|0}while(w>>>0<(c[b>>2]|0)>>>0);i=B;return}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0.0,l=0.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,y=0,z=0,A=0;z=i;i=i+48|0;if((i|0)>=(j|0))ba();r=z+32|0;s=z+24|0;t=z+16|0;u=z+8|0;y=z;h=c[a>>2]|0;if(!h){f=0.0;e=0.0}else{v=t+4|0;w=s+4|0;x=u+4|0;q=0;f=0.0;e=0.0;do{A=q;q=q+2|0;h=(q>>>0)%(h>>>0)|0;m=+g[b+(h<<3)>>2];n=+g[b+(h<<3)+4>>2];h=c[b+(A<<3)+4>>2]|0;c[t>>2]=c[b+(A<<3)>>2];c[v>>2]=h;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];Ko(s,r);o=+g[s>>2];p=+g[w>>2];k=m*o-n*p;l=n*o+m*p;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(u,m,n,o,p);k=+g[u>>2];l=+g[x>>2]}f=f+k;e=e+l;h=c[a>>2]|0}while(q>>>0>>0)}_n(y,f,e,+((c[a+28>>2]|0)>>>0),0.0);A=c[y+4>>2]|0;c[d>>2]=c[y>>2];c[d+4>>2]=A;i=z;return}function pj(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.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;I=i;i=i+128|0;if((i|0)>=(j|0))ba();F=I+112|0;E=I+88|0;f=I+64|0;e=I+104|0;n=I+96|0;o=I+80|0;p=I+72|0;y=I+56|0;z=I+48|0;A=I+40|0;B=I+32|0;C=I+24|0;D=I+16|0;x=I+8|0;G=I;h=a+124|0;w=(c[h>>2]|0)+1|0;c[h>>2]=w;H=a+4|0;if(w>>>0<(c[H>>2]|0)>>>0){i=I;return}w=a+8|0;c[h>>2]=(c[w>>2]|0)+(c[a>>2]|0)-(c[a+132>>2]|0);sk(c[a+60>>2]|0,E);q=a+88|0;nj(a,(c[E>>2]|0)+(c[w>>2]<<3)|0,c[q>>2]|0);oj(a,c[q>>2]|0,f);u=+g[a+80>>2];w=f+4|0;t=u*+g[f>>2];u=u*+g[w>>2];g[f>>2]=t;g[w>>2]=u;g[a+144>>2]=t;g[a+148>>2]=u;u=u+ +g[a+140>>2];g[e>>2]=t+ +g[a+136>>2];g[e+4>>2]=u;c[F>>2]=c[e>>2];c[F+4>>2]=c[e+4>>2];u=+Bo(F);e=c[H>>2]|0;w=~~+dq(+(u*+(e>>>0)/6.283185307179586));c[h>>2]=(c[h>>2]|0)-w;if(c[a>>2]|0){e=a+84|0;f=o+4|0;h=n+4|0;m=0;do{v=c[q>>2]|0;b=+g[v+(m<<3)>>2];d=+g[v+(m<<3)+4>>2];v=c[e>>2]|0;w=c[v+(m<<3)+4>>2]|0;c[o>>2]=c[v+(m<<3)>>2];c[f>>2]=w;c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];Ko(n,F);k=+g[n>>2];l=+g[h>>2];t=b*k-d*l;u=d*k+b*l;if((t!=t|0.0!=0.0)&(u!=u|0.0!=0.0))ao(p,b,d,k,l);m=m+1|0}while(m>>>0<(c[a>>2]|0)>>>0);e=c[H>>2]|0}if(!e){d=0.0;b=0.0}else{f=z+4|0;h=y+4|0;m=a+68|0;n=A+4|0;o=B+4|0;p=D+4|0;q=C+4|0;v=x+4|0;w=0;d=0.0;b=0.0;do{J=c[E>>2]|0;e=c[J+(w<<3)+4>>2]|0;c[z>>2]=c[J+(w<<3)>>2];c[f>>2]=e;c[F>>2]=c[z>>2];c[F+4>>2]=c[z+4>>2];Ko(y,F);k=+g[y>>2];l=+g[h>>2];e=c[m>>2]|0;r=+g[e+(w<<3)>>2];s=+g[e+(w<<3)+4>>2];t=k*r-l*s;u=l*r+k*s;if((t!=t|0.0!=0.0)&(u!=u|0.0!=0.0)){ao(A,k,l,r,s);t=+g[A>>2];u=+g[n>>2]}e=c[H>>2]|0;J=e+w|0;K=c[E>>2]|0;k=+g[K+(J<<3)>>2];l=+g[K+(J<<3)+4>>2];r=t*k-u*l;s=u*k+t*l;if((r!=r|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(B,t,u,k,l);e=c[H>>2]|0;u=+g[B>>2];t=+g[o>>2]}else{u=r;t=s}J=e+w|0;e=c[m>>2]|0;K=c[e+(J<<3)+4>>2]|0;c[D>>2]=c[e+(J<<3)>>2];c[p>>2]=K;c[F>>2]=c[D>>2];c[F+4>>2]=c[D+4>>2];Ko(C,F);r=+g[C>>2];s=+g[q>>2];k=u*r-t*s;l=t*r+u*s;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(x,u,t,r,s);k=+g[x>>2];l=+g[v>>2]}d=d+k;b=b+l;w=w+1|0}while(w>>>0<(c[H>>2]|0)>>>0)}g[G>>2]=d;g[G+4>>2]=b;c[F>>2]=c[G>>2];c[F+4>>2]=c[G+4>>2];u=+Bo(F);Fj(c[a+108>>2]|0,u/+((c[H>>2]|0)>>>0));c[a+104>>2]=3;i=I;return}function qj(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0.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;G=i;i=i+96|0;if((i|0)>=(j|0))ba();y=G+80|0;b=G+64|0;q=G+72|0;s=G+56|0;u=G+48|0;v=G+40|0;w=G+32|0;x=G+24|0;B=G+16|0;D=G+8|0;F=G;C=a+124|0;E=(c[C>>2]|0)+-1|0;c[C>>2]=E;if(E|0){i=G;return}z=a+128|0;c[z>>2]=(c[z>>2]|0)+1;sk(c[a+60>>2]|0,b);A=a+8|0;E=a+92|0;rj(a,(c[b>>2]|0)+(c[A>>2]<<3)|0,c[E>>2]|0);b=c[a>>2]|0;if(!b){e=0.0;d=0.0}else{h=s+4|0;k=q+4|0;p=u+4|0;e=0.0;d=0.0;f=0;do{H=f;f=f+1|0;b=(f>>>0)%(b>>>0)|0;I=c[E>>2]|0;n=+g[I+(b<<3)>>2];o=+g[I+(b<<3)+4>>2];b=c[I+(H<<3)+4>>2]|0;c[s>>2]=c[I+(H<<3)>>2];c[h>>2]=b;c[y>>2]=c[s>>2];c[y+4>>2]=c[s+4>>2];Ko(q,y);r=+g[q>>2];t=+g[k>>2];l=n*r-o*t;m=o*r+n*t;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(u,n,o,r,t);l=+g[u>>2];m=+g[p>>2]}e=e+l;d=d+m;b=c[a>>2]|0}while(f>>>0>>0)}_n(v,e,d,+((c[a+32>>2]|0)>>>0),0.0);l=+g[a+80>>2];o=+g[v>>2]*l;l=+g[v+4>>2]*l;b=a+132|0;n=+((c[b>>2]|0)>>>0)*2.0*3.141592653589793/+((c[a>>2]|0)>>>0);m=+R(+n);n=+Q(+n)+m*0.0;e=o*n-l*m;d=o*m+l*n;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(w,o,l,n,m);e=+g[w>>2];d=+g[w+4>>2]}g[x>>2]=e;g[x+4>>2]=d;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];t=+wo(y);f=a+156|0;if(t>+g[f>>2]?(g[B>>2]=e,g[B+4>>2]=d,c[y>>2]=c[B>>2],c[y+4>>2]=c[B+4>>2],+N(+(+Bo(y)))<.3141592700403172):0){c[a+104>>2]=4;I=c[a>>2]|0;c[C>>2]=(c[A>>2]|0)+I+(c[b>>2]|0);c[z>>2]=0;s=a+20|0;b=c[s>>2]|0;q=a+24|0;f=c[q>>2]|0;r=+(I>>>0)/+O(+(+((f+b|0)>>>0)));if(I){b=a+96|0;f=D+4|0;p=0;do{k=c[E>>2]|0;h=k+(p<<3)|0;k=k+(p<<3)+4|0;l=r*+g[k>>2];g[h>>2]=r*+g[h>>2];g[k>>2]=l;k=c[b>>2]|0;l=+g[k+(p<<3)>>2];m=+g[k+(p<<3)+4>>2];k=c[E>>2]|0;h=k+(p<<3)|0;n=+g[h>>2];k=k+(p<<3)+4|0;o=+g[k>>2];e=l*n-m*o;d=m*n+l*o;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(D,n,o,l,m);e=+g[D>>2];d=+g[f>>2]}g[h>>2]=e;g[k>>2]=d;p=p+1|0}while(p>>>0<(c[a>>2]|0)>>>0);f=c[q>>2]|0;b=c[s>>2]|0}I=f+b|0;sj(a,I>>>0<5?I+-1|0:4);if(c[a>>2]|0){b=a+96|0;f=F+4|0;h=a+100|0;k=0;do{I=c[b>>2]|0;H=c[E>>2]|0;_n(F,+g[I+(k<<3)>>2],+g[I+(k<<3)+4>>2],+g[H+(k<<3)>>2],+g[H+(k<<3)+4>>2]);H=c[f>>2]|0;I=c[h>>2]|0;c[I+(k<<3)>>2]=c[F>>2];c[I+(k<<3)+4>>2]=H;k=k+1|0}while(k>>>0<(c[a>>2]|0)>>>0)}}else{if((c[z>>2]|0)==16){Dj(c[a+108>>2]|0);Vj(c[a+112>>2]|0);b=a+136|0;I=a+116|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){d=.3499999940395355;e=.30000001192092896}else{e=+((44-b|0)>>>0)*.009999999776482582;d=e+.3499999940395355;e=e+.30000001192092896}g[a+152>>2]=d;g[f>>2]=e;c[a+104>>2]=0}c[C>>2]=c[a+4>>2]}i=G;return}function rj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0,l=0.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,y=0,z=0,A=0,B=0;B=i;i=i+32|0;if((i|0)>=(j|0))ba();x=B+24|0;y=B+16|0;z=B+8|0;A=B;gq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);p=+O(+(+((c[b+32>>2]|0)>>>0)));w=c[b>>2]|0;p=p/+(w>>>0);if(!w){i=B;return}q=b+12|0;r=b+52|0;s=b+72|0;t=z+4|0;u=y+4|0;v=A+4|0;w=0;do{if(!(a[(c[q>>2]|0)+w>>0]|0)){k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=0.0;g[d>>2]=0.0;h=0.0;f=0.0}else{d=c[r>>2]|0;l=+g[d+(w<<3)>>2];m=+g[d+(w<<3)+4>>2];d=c[s>>2]|0;k=c[d+(w<<3)+4>>2]|0;c[z>>2]=c[d+(w<<3)>>2];c[t>>2]=k;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Ko(y,x);n=+g[y>>2];o=+g[u>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(A,l,m,n,o);h=+g[A>>2];f=+g[v>>2]}k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=h;g[d>>2]=f}g[k>>2]=p*h;g[d>>2]=p*f;w=w+1|0}while(w>>>0<(c[b>>2]|0)>>>0);i=B;return}function sj(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,h=0.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.0;F=i;i=i+32|0;if((i|0)>=(j|0))ba();t=F+16|0;u=F+8|0;v=F;if(!(c[b+168>>2]|0))E=b;else{gq(c[b+188>>2]|0,c[b+92>>2]|0,c[b>>2]<<3|0)|0;E=b}A=(c[b+24>>2]|0)+(c[b+20>>2]|0)|0;x=A+-1|0;d=x>>>0>>0?x:d;x=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=(d>>>0>10?10:d)+1|0;C=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();D=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=c[E>>2]|0;a:do if(!d)w=0;else{o=b+4|0;p=b+12|0;q=b+92|0;r=u+4|0;s=v+4|0;n=0;k=0;while(1){l=c[o>>2]|0;m=((l+n|0)>>>0)%(d>>>0)|0;if(a[(c[p>>2]|0)+m>>0]|0){if((k|0)==(A|0))break;f=+(m>>>0);h=+(d>>>0);g[x+(k<<2)>>2]=(m>>>0>l>>>0?f-h:f)/h;d=c[q>>2]|0;l=c[d+(m<<3)+4>>2]|0;c[u>>2]=c[d+(m<<3)>>2];c[r>>2]=l;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];g[y+(k<<2)>>2]=+wo(t);l=c[q>>2]|0;d=c[l+(m<<3)+4>>2]|0;c[v>>2]=c[l+(m<<3)>>2];c[s>>2]=d;c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];g[z+(k<<2)>>2]=+Bo(t);d=c[E>>2]|0;k=k+1|0}n=n+1|0;if(n>>>0>=d>>>0){w=k;break a}}Qp(37097,71,1,c[2348]|0)|0;kb(1)}while(0);if((w|0)!=(A|0)){Qp(37097,71,1,c[2348]|0)|0;kb(1)}if(A>>>0>1){f=+g[z>>2];l=1;while(1){k=z+(l<<2)|0;e=+g[k>>2];d=z+(l+-1<<2)|0;if(e-f>3.141592653589793){do e=e+-6.283185307179586;while(e-f>3.141592653589793);g[k>>2]=e}f=+g[d>>2];if(e-f<-3.141592653589793){do e=e+6.283185307179586;while(e-f<-3.141592653589793);g[k>>2]=e}l=l+1|0;if((l|0)==(A|0))break;else f=e}}Nh(x,y,A,C,B);Nh(x,z,A,D,B);d=c[E>>2]|0;if(!d){i=F;return}m=b+4|0;n=b+12|0;l=b+92|0;k=0;do{f=+(k>>>0);e=+(d>>>0);e=(k>>>0>(c[m>>2]|0)>>>0?f-e:f)/e;f=+Mh(C,B,e);e=+Mh(D,B,e);if(!(a[(c[n>>2]|0)+k>>0]|0)){h=0.0;e=0.0}else{G=+R(+e);h=f*(+Q(+e)+G*0.0);e=f*G}d=c[l>>2]|0;g[d+(k<<3)>>2]=h;g[d+(k<<3)+4>>2]=e;k=k+1|0;d=c[E>>2]|0}while(k>>>0>>0);i=F;return}function tj(b){b=b|0;var d=0,e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();o=s+16|0;d=s+8|0;p=s;q=b+124|0;r=(c[q>>2]|0)+-1|0;c[q>>2]=r;if(r|0){i=s;return}sk(c[b+60>>2]|0,d);r=b+8|0;gq(c[b+56>>2]|0,(c[d>>2]|0)+((c[r>>2]|0)-(c[b+132>>2]|0)<<3)|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);uj(b);if(c[b+168>>2]|0?(h=c[b>>2]|0,h|0):0){k=b+12|0;l=b+184|0;m=b+52|0;n=p+4|0;d=0;do{if((a[(c[k>>2]|0)+d>>0]|0)==2){h=c[l>>2]|0;u=c[m>>2]|0;t=c[u+(d<<3)+4>>2]|0;c[p>>2]=c[u+(d<<3)>>2];c[n>>2]=t;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];tk(h,o);h=c[b>>2]|0}d=d+1|0}while(d>>>0>>0)}d=c[b+160>>2]|0;if(d|0?vb[d&7](c[b+52>>2]|0,c[b+12>>2]|0,c[b>>2]|0,c[b+164>>2]|0)|0:0){Dj(c[b+108>>2]|0);Vj(c[b+112>>2]|0);d=b+136|0;u=b+116|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[b>>2]|0;if(d>>>0>44){e=.3499999940395355;f=.30000001192092896}else{f=+((44-d|0)>>>0)*.009999999776482582;e=f+.3499999940395355;f=f+.30000001192092896}g[b+152>>2]=e;g[b+156>>2]=f;c[b+104>>2]=0}c[q>>2]=(c[r>>2]|0)+(c[b>>2]|0);i=s;return}function uj(b){b=b|0;var d=0,e=0,f=0.0,h=0.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,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;K=i;i=i+64|0;if((i|0)>=(j|0))ba();z=K+56|0;l=K+48|0;J=K+40|0;A=K+32|0;B=K+24|0;C=K+16|0;D=K+8|0;I=K;if(!(c[b>>2]|0))e=0;else{r=b+100|0;s=b+52|0;q=l+4|0;t=0;do{e=c[r>>2]|0;m=+g[e+(t<<3)>>2];n=+g[e+(t<<3)+4>>2];e=c[s>>2]|0;d=e+(t<<3)|0;o=+g[d>>2];e=e+(t<<3)+4|0;p=+g[e>>2];h=m*o-n*p;f=n*o+m*p;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(l,o,p,m,n);h=+g[l>>2];f=+g[q>>2]}g[d>>2]=h;g[e>>2]=f;t=t+1|0;d=c[b>>2]|0}while(t>>>0>>0);e=d}F=b+20|0;d=c[F>>2]|0;G=i;i=i+((1*(d<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();H=i;i=i+((1*(d<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();do if(!e){q=d;d=0}else{r=b+4|0;s=b+12|0;t=b+112|0;u=b+52|0;v=B+4|0;w=A+4|0;x=C+4|0;y=D+4|0;q=0;d=0;while(1){l=(((c[r>>2]|0)+q|0)>>>0)%(e>>>0)|0;if((a[(c[s>>2]|0)+l>>0]|0)==1){if((d|0)==(c[F>>2]|0))break;e=(Tj(c[t>>2]|0)|0)!=0;f=+(l>>>0);if(l>>>0>(c[r>>2]|0)>>>0)f=f-+((c[b>>2]|0)>>>0);g[G+(d<<2)>>2]=f;L=c[u>>2]|0;p=+g[L+(l<<3)>>2];o=+g[L+(l<<3)+4>>2];g[B>>2]=e?1.0:-1.0;g[v>>2]=0.0;c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];Ko(A,z);m=+g[A>>2];n=+g[w>>2];h=p*m-o*n;f=o*m+p*n;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(C,p,o,m,n);h=+g[C>>2];f=+g[x>>2]}g[D>>2]=h;g[y>>2]=f;c[z>>2]=c[D>>2];c[z+4>>2]=c[D+4>>2];g[H+(d<<2)>>2]=+Bo(z);e=c[b>>2]|0;d=d+1|0}q=q+1|0;if(q>>>0>=e>>>0){E=17;break}}if((E|0)==17){q=c[F>>2]|0;break}Qp(37169,61,1,c[2348]|0)|0;i=K;return}while(0);if((d|0)!=(q|0)){Qp(37169,61,1,c[2348]|0)|0;i=K;return}if(q>>>0>1){h=+g[H>>2];l=1;while(1){e=H+(l<<2)|0;f=+g[e>>2];d=H+(l+-1<<2)|0;if(f-h>3.141592653589793){do f=f+-6.283185307179586;while(f-h>3.141592653589793);g[e>>2]=f}h=+g[d>>2];if(f-h<-3.141592653589793){do f=f+6.283185307179586;while(f-h<-3.141592653589793);g[e>>2]=f}l=l+1|0;if(l>>>0>=q>>>0)break;else h=f}}Nh(G,H,q,J,2);d=J+4|0;L=b+120|0;p=+g[d>>2]*.30000001192092896+ +g[L>>2]*.699999988079071;g[d>>2]=p;g[L>>2]=p;if(c[b+168>>2]|0){gq(c[b+192>>2]|0,G|0,c[F>>2]<<2|0)|0;gq(c[b+196>>2]|0,H|0,c[F>>2]<<2|0)|0;c[b+200>>2]=c[d>>2];L=c[J>>2]|0;c[b+204>>2]=L;ok(c[b+208>>2]|0,(c[k>>2]=L,+g[k>>2]));ok(c[b+212>>2]|0,+g[d>>2])}d=c[b>>2]|0;if(d|0){q=b+12|0;r=b+52|0;s=b+4|0;t=I+4|0;l=0;do{if(!(a[(c[q>>2]|0)+l>>0]|0)){L=c[r>>2]|0;g[L+(l<<3)>>2]=0.0;g[L+(l<<3)+4>>2]=0.0}else{n=+(l>>>0);n=+Mh(J,2,l>>>0>(c[s>>2]|0)>>>0?n-+(d>>>0):n);m=+R(+-n);n=+Q(+n)+m*0.0;e=c[r>>2]|0;d=e+(l<<3)|0;o=+g[d>>2];e=e+(l<<3)+4|0;p=+g[e>>2];h=o*n-m*p;f=m*o+n*p;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,o,p,n,m);h=+g[I>>2];f=+g[t>>2]}g[d>>2]=h;g[e>>2]=f}l=l+1|0;d=c[b>>2]|0}while(l>>>0>>0)}l=b+128|0;if(!(c[l>>2]|0)){d=b+116|0;e=1}else{d=b+116|0;f=+g[J>>2]-+g[d>>2];h=f;if(h>3.141592653589793)do{f=h+-.6366197723675814;h=f}while(h>3.141592653589793);h=f;if(h<-3.141592653589793)do{f=h+.6366197723675814;h=f}while(h<-3.141592653589793);Gj(c[b+108>>2]|0,f*1.0000000474974513e-03);e=(c[l>>2]|0)+1|0}c[d>>2]=c[J>>2];c[l>>2]=e;i=K;return}function vj(a){a=a|0;return +(+xp(+g[a+80>>2])*-10.0)}function wj(a){a=a|0;return +(+Jj(c[a+108>>2]|0))}function xj(a){a=a|0;var b=0,d=0;b=a+172|0;if(c[b>>2]|0)return;c[a+176>>2]=qk(2048)|0;c[a+180>>2]=lk(2048)|0;c[a+184>>2]=qk(2048)|0;c[a+188>>2]=Xp(c[a>>2]<<3)|0;d=c[a+20>>2]<<2;c[a+192>>2]=Xp(d)|0;c[a+196>>2]=Xp(d)|0;c[a+208>>2]=lk(2048)|0;c[a+212>>2]=lk(2048)|0;c[a+168>>2]=1;c[b>>2]=1;return} -function yb(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;if((i|0)>=(j|0))ba();return b|0}function zb(){return i|0}function Ab(a){a=a|0;i=a}function Bb(a,b){a=a|0;b=b|0;i=a;j=b}function Cb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Db(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Eb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Fb(a){a=a|0;C=a}function Gb(){return C|0}function Hb(a){a=a|0;return c[a+120>>2]|0}function Ib(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();k=n;m=Xp(388)|0;e=m;f=b;h=e+84|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[m+56>>2]|0){case 0:{e=Bc(b)|0;f=b+4|0;h=Rg(c[b>>2]|0,c[f>>2]|0,c[b+8>>2]|0,e,1,m)|0;Xg(h,0);if(a[b+80>>0]|0)ah(h);Zg(h,1);_g(h,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];Wg(h,k)}l=(c[f>>2]|0)+(c[b>>2]|0)|0;c[m+92>>2]=Xp(l<<3)|0;c[m+96>>2]=l;Yp(e);c[m+84>>2]=h;break}case 1:{e=Vf(1,m)|0;Xf(e,0);if(a[b+80>>0]|0)fg(e);Zf(e,1);_f(e,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];Wf(e,k)|0}c[m+92>>2]=Xp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}case 2:{e=rg(1,m)|0;sg(e,0);if(a[b+80>>0]|0)Bg(e);c[m+92>>2]=Xp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}default:{}}e=pc(b+20|0)|0;f=m+88|0;c[f>>2]=e;c[m+100>>2]=0;h=m+104|0;g[h>>2]=1.0;l=m+112|0;c[l>>2]=0;k=m+108|0;c[k>>2]=0;if(d!=44100.0){d=44100.0/d;c[k>>2]=ve(d,c[b+40>>2]|0,+g[b+44>>2],+g[b+48>>2],c[b+52>>2]|0)|0;g[h>>2]=d;e=c[f>>2]|0}c[l>>2]=Xp(_(c[m+96>>2]<<2,c[e+4>>2]|0)|0)|0;c[m+116>>2]=0;c[m+120>>2]=0;c[m+124>>2]=dc(65536)|0;c[m+132>>2]=0;c[m+128>>2]=0;a[m+384>>0]=0;c[m+316>>2]=0;c[m+348>>2]=0;c[m+320>>2]=0;c[m+352>>2]=0;c[m+324>>2]=0;c[m+356>>2]=0;c[m+328>>2]=0;c[m+360>>2]=0;c[m+332>>2]=0;c[m+364>>2]=0;c[m+336>>2]=0;c[m+368>>2]=0;c[m+340>>2]=0;c[m+372>>2]=0;c[m+344>>2]=0;c[m+376>>2]=0;c[m+136>>2]=0;c[m+140>>2]=0;c[m+148>>2]=0;i=n;return m|0}function Jb(b){b=b|0;var d=0,e=0;a[b+384>>0]=1;d=b+316|0;e=d+68|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[b+136>>2]=dc(65536)|0;c[b+140>>2]=0;c[b+144>>2]=0;e=Xp(20)|0;c[b+148>>2]=e;c[e>>2]=0;c[b+152>>2]=0;return}function Kb(b){b=b|0;var d=0,e=0,f=0;a[b+384>>0]=0;d=b+316|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+348>>2]=0}d=b+320|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+352>>2]=0}d=b+324|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+356>>2]=0}d=b+328|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+360>>2]=0}d=b+332|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+364>>2]=0}d=b+336|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+368>>2]=0}d=b+340|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+372>>2]=0}d=b+344|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+376>>2]=0}c[b+380>>2]=0;e=b+136|0;d=c[e>>2]|0;if(d|0){ec(d);c[e>>2]=0}d=b+140|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+144>>2]=0}f=b+148|0;d=c[f>>2]|0;if(!d)return;e=c[d>>2]|0;if(e){Yp(e);d=c[f>>2]|0}Yp(d);c[f>>2]=0;c[b+152>>2]=0;return}function Lb(a,b){a=a|0;b=b|0;c[b>>2]=c[a+380>>2];return a+156|0}function Mb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=a+124|0;lc(c[e>>2]|0);a=jc(c[e>>2]|0,f,4)|0;a:do if(!a)a=0;else{if((a|0)>=0){a=c[f>>2]|0;a=a>>>0>>0?a:d;b=(jc(c[e>>2]|0,b,a)|0)<0;d=c[e>>2]|0;if(b){mc(d);cc(9);a=-1;break}else{kc(d,(c[f>>2]|0)-a|0);mc(c[e>>2]|0);break}}mc(c[e>>2]|0);switch(a|0){case -1:{cc(7);a=-1;break a}case -2:{cc(8);a=-1;break a}default:{cc(9);a=-1;break a}}}while(0);i=g;return a|0}function Nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;A=i;i=i+80|0;if((i|0)>=(j|0))ba();z=A+16|0;y=A+8|0;x=A;v=A+24|0;w=A+20|0;if(!b){i=A;return}t=b+88|0;u=_(c[(c[t>>2]|0)+4>>2]|0,c[b+96>>2]|0)|0;if(a[b+384>>0]|0)c[b+380>>2]=0;if(!e){i=A;return}l=b+108|0;m=b+116|0;n=b+112|0;o=b+92|0;p=b+56|0;q=b+84|0;r=b+80|0;s=b+100|0;h=b+84|0;k=0;do{b=c[l>>2]|0;if(!b){b=c[m>>2]|0;f=b+(e-k)|0;f=f>>>0>>0?f:u;gq((c[n>>2]|0)+(b<<2)|0,d+(k<<2)|0,f-b<<2|0)|0;b=f-(c[m>>2]|0)|0}else{f=c[m>>2]|0;xe(b,d+(k<<2)|0,e-k|0,v,(c[n>>2]|0)+(f<<2)|0,u-f|0,w)|0;b=c[v>>2]|0;f=(c[m>>2]|0)+(c[w>>2]|0)|0}k=b+k|0;B=c[t>>2]|0;g=(f>>>0)%((c[B+4>>2]|0)>>>0)|0;b=f-g|0;f=qc(B,c[n>>2]|0,b,c[o>>2]|0)|0;if(g|0){B=c[n>>2]|0;gq(B|0,B+(b<<2)|0,g<<2|0)|0}c[m>>2]=g;switch(c[p>>2]|0){case 0:{$g(c[q>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[x>>2]=c[s>>2];Oo(v,10366,x)|0;bh(c[q>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 1:{$f(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[y>>2]=c[s>>2];Oo(v,10366,y)|0;gg(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 2:{ug(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[z>>2]=c[s>>2];Oo(v,10366,z)|0;Cg(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}default:{}}}while(k>>>0>>0);i=A;return}function Ob(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;if(!a){i=m;return}d=c[a+108>>2]|0;if(!d){b=a+116|0;l=0}else{o=c[a+40>>2]|0;k=Zp(o,4)|0;f=a+88|0;n=_(c[(c[f>>2]|0)+4>>2]|0,c[a+96>>2]|0)|0;h=a+112|0;b=a+116|0;e=c[b>>2]|0;xe(d,k,o,m+4|0,(c[h>>2]|0)+(e<<2)|0,n-e|0,l)|0;d=(c[l>>2]|0)+(c[b>>2]|0)|0;c[l>>2]=d;f=c[f>>2]|0;e=(d>>>0)%((c[f+4>>2]|0)>>>0)|0;if(!e)e=0;else{d=d-e|0;c[l>>2]=d}d=qc(f,c[h>>2]|0,d,c[a+92>>2]|0)|0;if(e|0){o=c[h>>2]|0;gq(o|0,o+(c[l>>2]<<2)|0,e<<2|0)|0}c[b>>2]=e;Yp(k);l=d}e=c[b>>2]|0;k=a+88|0;if(!e){h=a+92|0;b=l}else{b=c[k>>2]|0;d=c[b+4>>2]|0;f=a+112|0;if((d|0)==(e|0))d=e;else{eq(c[f>>2]|0,0,d-e<<2|0)|0;d=c[k>>2]|0;b=d;d=c[d+4>>2]|0}o=a+92|0;h=o;b=(qc(b,c[f>>2]|0,d,(c[o>>2]|0)+(l<<3)|0)|0)+l|0}b=(rc(c[k>>2]|0,(c[h>>2]|0)+(b<<3)|0)|0)+b|0;switch(c[a+56>>2]|0){case 0:{$g(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}case 1:{d=0;e=b;while(1){o=d+e|0;n=c[h>>2]|0;g[n+(o<<3)>>2]=0.0;g[n+(o<<3)+4>>2]=0.0;d=d+1|0;if((d|0)==60)break;else e=e+1|0}$f(c[a+84>>2]|0,c[h>>2]|0,b+60|0);i=m;return}case 2:{ug(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}default:{i=m;return}}}function Pb(a){a=a|0;var b=0,d=0,e=0;if(!a)return;switch(c[a+56>>2]|0){case 0:{Yg(c[a+84>>2]|0);break}case 1:{Yf(c[a+84>>2]|0);break}case 2:{tg(c[a+84>>2]|0);break}default:{}}b=c[a+108>>2]|0;if(b|0)we(b);b=c[a+112>>2]|0;if(b|0)Yp(b);b=c[a+316>>2]|0;if(b|0)Yp(b);b=c[a+320>>2]|0;if(b|0)Yp(b);b=c[a+324>>2]|0;if(b|0)Yp(b);b=c[a+328>>2]|0;if(b|0)Yp(b);b=c[a+332>>2]|0;if(b|0)Yp(b);b=c[a+336>>2]|0;if(b|0)Yp(b);b=c[a+340>>2]|0;if(b|0)Yp(b);b=c[a+344>>2]|0;if(b|0)Yp(b);ec(c[a+124>>2]|0);b=c[a+136>>2]|0;if(b|0)ec(b);b=c[a+140>>2]|0;if(b|0)Yp(b);d=a+148|0;b=c[d>>2]|0;if(b|0){e=c[b>>2]|0;if(e){Yp(e);b=c[d>>2]|0}Yp(b)}b=c[a+128>>2]|0;if(b|0)Yp(b);sc(c[a+88>>2]|0);Yp(c[a+92>>2]|0);Yp(a);return}function Qb(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;if((i|0)>=(j|0))ba();o=s+48|0;q=s+44|0;p=s+40|0;r=s;if(!d){f=1;i=s;return f|0}if(!k){f=0;i=s;return f|0}if(a[k+384>>0]|0){l=r;b=h;d=l+40|0;do{c[l>>2]=c[b>>2];l=l+4|0;b=b+4|0}while((l|0)<(d|0));c[o>>2]=g;m=k+380|0;n=c[m>>2]|0;if(n>>>0<8){h=k+316+(n<<2)|0;b=k+348+(n<<2)|0;d=c[r+16>>2]|0;if((c[b>>2]|0)>>>0>>0){c[h>>2]=_p(c[h>>2]|0,d<<3)|0;c[b>>2]=d}if(!d)b=c[h>>2]|0;else{l=c[r+12>>2]|0;b=c[h>>2]|0;h=0;do{c[b+(h<<3)>>2]=c[l+(h<<3)>>2];c[b+(h<<3)+4>>2]=c[l+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(d|0))}c[k+156+(n*20|0)>>2]=b;c[k+156+(n*20|0)+4>>2]=d;c[k+156+(n*20|0)+8>>2]=c[r>>2];c[k+156+(n*20|0)+12>>2]=c[r+4>>2];a[k+156+(n*20|0)+16>>0]=(g|0)!=0&1;c[m>>2]=(c[m>>2]|0)+1}else d=c[r+16>>2]|0;b=d<<3;n=b+20|0;h=k+136|0;nc(c[h>>2]|0);if((gc(c[h>>2]|0,n)|0)==(n|0)){c[q>>2]=b+16;hc(c[h>>2]|0,q,4)|0;c[p>>2]=d;hc(c[h>>2]|0,p,4)|0;hc(c[h>>2]|0,c[r+12>>2]|0,b)|0;hc(c[h>>2]|0,r+4|0,4)|0;hc(c[h>>2]|0,r,4)|0;hc(c[h>>2]|0,o,4)|0;ic(c[h>>2]|0)|0;oc(c[h>>2]|0)}}if(!g){f=k+120|0;c[f>>2]=(c[f>>2]|0)+1;f=1;i=s;return f|0}l=f+4|0;b=k+132|0;h=k+128|0;if(l>>>0>(c[b>>2]|0)>>>0){g=_p(c[h>>2]|0,l)|0;c[h>>2]=g;c[b>>2]=l;d=h;b=g}else{d=h;b=c[h>>2]|0}a[b>>0]=f;a[b+1>>0]=f>>8;a[b+2>>0]=f>>16;a[b+3>>0]=f>>24;fq((c[d>>2]|0)+4|0,e|0,f|0)|0;f=k+124|0;nc(c[f>>2]|0);fc(c[f>>2]|0,c[d>>2]|0,l)|0;oc(c[f>>2]|0);f=0;i=s;return f|0}function Rb(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+16|0;l=o;m=b+20|0;p=+g[b+40>>2];if(p<0.0|p>.5){cc(2);b=0;i=o;return b|0}n=Xp(176)|0;e=n;f=b;h=e+108|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[n+64>>2]|0){case 0:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];f=Bc(b)|0;h=b+4|0;e=Dg(c[b>>2]|0,c[h>>2]|0,c[b+8>>2]|0,f,k)|0;Fg(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];Eg(e,l)}k=(c[h>>2]|0)+(c[b>>2]|0)|0;c[n+120>>2]=Xp(k<<3)|0;l=n+124|0;c[l>>2]=k;Yp(f);c[n+108>>2]=e;e=l;break}case 1:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];e=Jf(k)|0;Nf(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];Mf(e,l)|0}c[n+120>>2]=0;l=n+124|0;c[l>>2]=0;c[n+108>>2]=e;c[n+112>>2]=0;e=l;break}case 2:{l=hg()|0;ig(l,0);c[n+120>>2]=0;e=n+124|0;c[e>>2]=0;c[n+108>>2]=l;c[n+112>>2]=2;break}default:e=n+124|0}m=tc(m)|0;f=n+116|0;c[f>>2]=m;e=uc(m,c[e>>2]|0)|0;f=xc(c[f>>2]|0)|0;f=e>>>0>f>>>0?e:f;c[n+132>>2]=f;c[n+128>>2]=Xp(f<<2)|0;f=n+136|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;a[n+152>>0]=1;a[n+153>>0]=0;a[n+154>>0]=0;f=n+156|0;g[f>>2]=1.0;e=n+160|0;c[e>>2]=0;if(d!=44100.0){p=d/44100.0;c[e>>2]=ve(p,c[b+48>>2]|0,+g[b+52>>2],+g[b+56>>2],c[b+60>>2]|0)|0;g[f>>2]=p}c[n+164>>2]=dc(65536)|0;b=c[n+104>>2]|0;c[n+168>>2]=Xp(b+4|0)|0;c[n+172>>2]=Xp(b)|0;b=n;i=o;return b|0}function Sb(a){a=a|0;return c[a+104>>2]|0}function Tb(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0;a[b+154>>0]=1;j=+g[b+156>>2];d=~~(+Z(+(+(d>>>0)/j))+ +Z(+j))>>>0;d=d-(xc(c[b+116>>2]|0)|0)|0;if(c[b+160>>2]|0)d=d-(c[b+48>>2]|0)|0;i=b+104|0;h=(Ub(b,c[i>>2]|0)|0)>>>0>d>>>0;f=c[i>>2]|0;if(!h){b=f;return b|0}e=f>>>1;if(f>>>0>1){h=0;do{k=(Ub(b,e)|0)>>>0>d>>>0;f=k?e:f;h=k?h:e;k=f-h|0;e=(k>>>1)+h|0}while(k>>>0>1);d=e}else d=e;c[i>>2]=d;k=d;return k|0}function Ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;e=Zp(b,1)|0;switch(c[a+64>>2]|0){case 0:{g=a+108|0;Mg(c[g>>2]|0,d,e,b);b=Lg(c[g>>2]|0)|0;b=_(c[a+124>>2]|0,b)|0;Ig(c[g>>2]|0);break}case 1:{g=a+108|0;Sf(c[g>>2]|0,d,e,b);b=Rf(c[g>>2]|0)|0;Of(c[g>>2]|0);break}case 2:{g=a+108|0;ng(c[g>>2]|0,d,e,b,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0);b=mg(c[g>>2]|0)|0;jg(c[g>>2]|0);break}default:b=0}Yp(e);g=uc(c[a+116>>2]|0,b)|0;i=f;return g|0}function Vb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((c[b+104>>2]|0)>>>0>>0){cc(6);e=-1;return e|0}f=b+168|0;g=c[f>>2]|0;a[g>>0]=e;a[g+1>>0]=e>>8;a[g+2>>0]=e>>16;a[g+3>>0]=e>>24;fq((c[f>>2]|0)+4|0,d|0,e|0)|0;b=b+164|0;nc(c[b>>2]|0);d=fc(c[b>>2]|0,c[f>>2]|0,e+4|0)|0;oc(c[b>>2]|0);if(!d){g=0;return g|0}if((d|0)>=0){g=d+-4|0;return g|0}switch(d|0){case -1:{cc(7);g=-1;return g|0}case -2:{cc(8);g=-1;return g|0}default:{cc(9);g=-1;return g|0}}return 0}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.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;Q=i;i=i+16|0;if((i|0)>=(j|0))ba();O=Q+4|0;P=Q;if(!b){b=0;i=Q;return b|0}if(e|0){B=b+136|0;H=b+140|0;I=b+64|0;J=b+154|0;K=b+153|0;L=b+164|0;M=b+172|0;N=b+152|0;r=b+108|0;s=b+108|0;t=b+112|0;u=b+68|0;v=b+72|0;w=b+76|0;x=b+156|0;y=b+116|0;z=b+132|0;A=b+128|0;C=b+120|0;D=b+4|0;E=b+124|0;F=b+160|0;G=b+48|0;h=0;f=0;a:while(1){k=c[B>>2]|0;b:while(1){o=e-f|0;n=(f|0)>0;p=+(o>>>0);c:do if(!k)while(1){c[H>>2]=0;if(h){q=49;break a}switch(c[I>>2]|0){case 0:{k=Kg(c[r>>2]|0)|0;q=15;break}case 1:{k=Qf(c[s>>2]|0)|0;q=15;break}case 2:{k=lg(c[r>>2]|0)|0;q=15;break}default:q=16}if((q|0)==15?(q=0,(k|0)==0):0)q=16;if((q|0)==16){q=0;l=n&(a[J>>0]|0)!=0;if(a[K>>0]|0){o=0;n=l;break b}lc(c[L>>2]|0);k=jc(c[L>>2]|0,O,4)|0;m=c[L>>2]|0;if((k|0)<1){h=m;q=18;break b}jc(m,c[M>>2]|0,c[O>>2]|0)|0;mc(c[L>>2]|0);switch(c[I>>2]|0){case 0:{Mg(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0);break}case 1:{Sf(c[s>>2]|0,P,c[M>>2]|0,c[O>>2]|0);c[t>>2]=Rf(c[s>>2]|0)|0;break}case 2:{jg(c[r>>2]|0);ng(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0);break}default:{}}a[N>>0]=0;if(l){o=1;n=1;break b}}q=~~+Z(+(p/+g[x>>2]))>>>0;k=vc(c[y>>2]|0,q)|0;k=(((q>>>0)%((c[(c[y>>2]|0)+4>>2]|0)>>>0)|0|0)!=0&1)+k|0;d:do switch(c[I>>2]|0){case 0:{k=(c[D>>2]|0)+(c[b>>2]|0)|0;Ng(c[r>>2]|0,c[C>>2]|0,k)|0;break}case 1:{q=c[t>>2]|0;k=q>>>0>>0?q:k;if(k>>>0>(c[E>>2]|0)>>>0){l=_p(c[C>>2]|0,k<<3)|0;c[C>>2]=l;c[E>>2]=k}else l=c[C>>2]|0;Tf(c[s>>2]|0,l,k)|0;c[t>>2]=(c[t>>2]|0)-k;break}case 2:{q=c[t>>2]|0;l=(k>>>0)%(q>>>0)|0;l=((l|0)==0?0:q-l|0)+k|0;if(l>>>0>(c[E>>2]|0)>>>0){c[C>>2]=_p(c[C>>2]|0,l<<3)|0;c[E>>2]=l}if(!l)k=0;else{k=0;do{if(og(c[r>>2]|0,(c[C>>2]|0)+(k<<3)|0)|0)break d;k=(c[t>>2]|0)+k|0}while(k>>>0>>0)}break}default:k=0}while(0);l=uc(c[y>>2]|0,k)|0;if(l>>>0>(c[z>>2]|0)>>>0){q=_p(c[A>>2]|0,l<<2)|0;c[A>>2]=q;c[z>>2]=l;l=q}else l=c[A>>2]|0;k=wc(c[y>>2]|0,c[C>>2]|0,k,l)|0;c[B>>2]=k;a[N>>0]=0;if(k|0)break c}while(0);l=c[F>>2]|0;if(!l){l=Cc((c[A>>2]|0)+(c[H>>2]<<2)|0,k,d,o)|0;c[H>>2]=(c[H>>2]|0)+l;k=(c[B>>2]|0)-l|0;c[B>>2]=k}else{xe(l,(c[A>>2]|0)+(c[H>>2]<<2)|0,k,O,d,o,P)|0;l=c[P>>2]|0;k=c[O>>2]|0;c[H>>2]=(c[H>>2]|0)+k;k=(c[B>>2]|0)-k|0;c[B>>2]=k}d=d+(l<<2)|0;f=l+f|0;if(f>>>0>=e>>>0){q=48;break a}}if((q|0)==18){q=0;mc(h);if(!k)a[K>>0]=1;o=0;n=l}if(a[N>>0]|0){e=f;break}m=yc(c[y>>2]|0,c[A>>2]|0)|0;c[B>>2]=m;if(c[F>>2]|0){h=c[G>>2]|0;if(!h)h=0;else{k=c[A>>2]|0;l=0;do{g[k+(m+l<<2)>>2]=0.0;l=l+1|0}while(l>>>0>>0)}c[B>>2]=m+h}zc(c[y>>2]|0);a[N>>0]=1;h=n&o;if(f>>>0>=e>>>0){q=48;break}}if((q|0)==48)if(h)q=49;else e=f;if((q|0)==49)if((f|0)!=(e|0))eq(d|0,0,e-f<<2|0)|0;if(e|0){b=e;i=Q;return b|0}}if(a[b+153>>0]|0){b=0;i=Q;return b|0}cc(7);b=-1;i=Q;return b|0}function Xb(a){a=a|0;var b=0;if(!a)return;switch(c[a+64>>2]|0){case 0:{Jg(c[a+108>>2]|0);break}case 1:{Pf(c[a+108>>2]|0);break}case 2:{kg(c[a+108>>2]|0);break}default:{}}b=c[a+160>>2]|0;if(b|0)we(b);Ac(c[a+116>>2]|0);Yp(c[a+120>>2]|0);Yp(c[a+128>>2]|0);ec(c[a+164>>2]|0);Yp(c[a+168>>2]|0);Yp(c[a+172>>2]|0);Yp(a);return}function Yb(b,d){b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0;f=im(b,d)|0;if(!f){cc(4);i=0;return i|0}i=Zp(1,108)|0;if(!i){cc(1);i=0;return i|0}d=im(f,10383)|0;if(d|0)c[i+68>>2]=Dc(om(d)|0)|0;d=im(f,10399)|0;if(d|0)c[i+72>>2]=Jc(om(d)|0)|0;d=im(f,10416)|0;if(d|0)c[i+76>>2]=Jc(om(d)|0)|0;d=im(f,10433)|0;do if(d|0){d=om(d)|0;b=i+64|0;if(!(dp(d,10444)|0)){c[b>>2]=2;break}else{c[b>>2]=1;c[i+80>>2]=Si(d)|0;break}}while(0);b=im(f,10449)|0;if(b|0){a[i+84>>0]=1;d=im(b,10383)|0;if(d|0)c[i+88>>2]=Dc(om(d)|0)|0;d=im(b,10399)|0;if(d|0)c[i+92>>2]=Jc(om(d)|0)|0;d=im(b,10416)|0;if(d|0)c[i+96>>2]=Jc(om(d)|0)|0;d=im(b,10433)|0;if(d|0)c[i+100>>2]=Si(om(d)|0)|0}d=im(f,10456)|0;if(d|0){b=qm(d)|0;c[i+104>>2]=b}b=im(f,10469)|0;if(b|0){d=i+64|0;if((c[d>>2]|0)==2){Yp(i);cc(5);i=0;return i|0}c[d>>2]=0;d=im(b,10474)|0;if(d|0){d=qm(d)|0;c[i>>2]=d}d=im(b,10490)|0;if(d|0){d=qm(d)|0;c[i+4>>2]=d}d=im(b,10511)|0;if(d|0){d=qm(d)|0;c[i+8>>2]=d}d=im(b,10524)|0;if(d|0){d=qm(d)|0;c[i+12>>2]=d}d=im(b,10534)|0;if(d|0){b=qm(d)|0;c[i+16>>2]=b}}d=im(f,10545)|0;do if(d|0){b=im(d,10556)|0;if(b|0)g[i+36>>2]=+sm(b)/44100.0*3.141592653589793*2.0;d=im(d,10573)|0;if(d|0){e=+sm(d);if(!(e<0.0|e>.5)){g[i+40>>2]=e;break}Yp(i);cc(5);i=0;return i|0}}while(0);b=im(f,10578)|0;if(b){d=im(b,10592)|0;if(!d)c[i+20>>2]=1;else{d=om(d)|0;j=(dp(d,10444)|0)==0;c[i+20>>2]=_e(j?22050:d)|0}d=im(b,10598)|0;if(d|0){j=qm(d)|0;c[i+24>>2]=j}d=im(b,10617)|0;if(d|0){j=qm(d)|0;c[i+28>>2]=j}d=im(b,10630)|0;if(d|0)g[i+32>>2]=+sm(d)}else c[i+24>>2]=1;d=im(f,10647)|0;if(d|0?(h=im(d,10663)|0,h|0):0)g[i+44>>2]=+sm(h);b=im(f,10679)|0;if(!b){j=i;return j|0}d=im(b,10689)|0;if(d|0){j=qm(d)|0;c[i+48>>2]=j}d=im(b,10695)|0;if(d|0)g[i+52>>2]=+sm(d);d=im(b,10705)|0;if(d|0)g[i+56>>2]=+sm(d);d=im(b,10717)|0;if(!d){j=i;return j|0}c[i+60>>2]=~~+sm(d)>>>0;j=i;return j|0}function Zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Pl(a,0,f)|0;if(e){a=Yb(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)km(e)}else{cc(3);a=0}i=f;return a|0}function _b(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;f=im(b,d)|0;if(!f){cc(4);h=0;return h|0}h=Zp(1,84)|0;if(!h){cc(1);h=0;return h|0}d=im(f,10433)|0;if(d|0){b=(dp(om(d)|0,10444)|0)==0;c[h+56>>2]=b?2:1}b=im(f,10449)|0;if(b|0){a[h+60>>0]=1;d=im(b,10383)|0;if(d|0)c[h+64>>2]=Dc(om(d)|0)|0;d=im(b,10399)|0;if(d|0)c[h+68>>2]=Jc(om(d)|0)|0;d=im(b,10416)|0;if(d|0)c[h+72>>2]=Jc(om(d)|0)|0;d=im(b,10433)|0;if(d|0)c[h+76>>2]=Si(om(d)|0)|0}b=im(f,10469)|0;if(b|0){d=h+56|0;if((c[d>>2]|0)==2){Yp(h);cc(5);h=0;return h|0}c[d>>2]=0;d=im(b,10474)|0;if(d|0){d=qm(d)|0;c[h>>2]=d}d=im(b,10490)|0;if(d|0){d=qm(d)|0;c[h+4>>2]=d}d=im(b,10511)|0;if(d|0){d=qm(d)|0;c[h+8>>2]=d}d=im(b,10524)|0;if(d|0){d=qm(d)|0;c[h+12>>2]=d}d=im(b,10534)|0;if(d|0){b=qm(d)|0;c[h+16>>2]=b}}d=im(f,10545)|0;if(d|0?(e=im(d,10556)|0,e|0):0)g[h+36>>2]=+sm(e)/44100.0*3.141592653589793*2.0;b=im(f,10578)|0;if(b){d=im(b,10592)|0;if(!d)c[h+20>>2]=1;else{e=om(d)|0;d=(dp(e,10444)|0)==0;c[h+20>>2]=_e(d?22057:e)|0}d=im(b,10598)|0;if(d|0){e=qm(d)|0;c[h+24>>2]=e}d=im(b,10617)|0;if(d|0){e=qm(d)|0;c[h+28>>2]=e}d=im(b,10630)|0;if(d|0)g[h+32>>2]=+sm(d)}else c[h+24>>2]=1;b=im(f,10679)|0;if(!b)return h|0;d=im(b,10689)|0;if(d|0){f=qm(d)|0;c[h+40>>2]=f}d=im(b,10695)|0;if(d|0)g[h+44>>2]=+sm(d);d=im(b,10705)|0;if(d|0)g[h+48>>2]=+sm(d);d=im(b,10717)|0;if(!d)return h|0;c[h+52>>2]=~~+sm(d)>>>0;return h|0}function $b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Pl(a,0,f)|0;if(e){a=_b(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)km(e)}else{cc(3);a=0}i=f;return a|0}function ac(){Aa(45076,2)|0;return}function bc(a){a=a|0;Yp(a);return}function cc(a){a=a|0;var b=0;Va(45072,1)|0;b=Pa(c[11269]|0)|0;if(b|0){c[b>>2]=a;return}b=Xp(4)|0;Za(c[11269]|0,b|0)|0;c[b>>2]=a;return}function dc(b){b=b|0;var d=0;d=Xp(68)|0;c[d>>2]=b;b=Xp(b)|0;c[d+4>>2]=b;c[d+8>>2]=b;c[d+12>>2]=b;jb(d+16|0,0)|0;b=Xp(60)|0;a[b>>0]=0;Ia(b+12|0,0)|0;c[d+56>>2]=b;b=Xp(60)|0;a[b>>0]=0;Ia(b+12|0,0)|0;c[d+60>>2]=b;a[d+64>>0]=0;a[d+52>>0]=0;c[d+44>>2]=0;return d|0}function ec(a){a=a|0;Ja((c[a+56>>2]|0)+12|0)|0;Ja((c[a+60>>2]|0)+12|0)|0;Ta(a+16|0)|0;Yp(c[a+4>>2]|0);Yp(a);return}function fc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;f=c[q>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){n=0;o=0;break}hb(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[g>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);if(a[b+52>>0]|0){d=-3;i=t;return d|0}l=b+64|0;p=b+8|0;s=b+12|0;m=b+16|0;k=r+4|0;a:do if(!h){if(a[l>>0]|0){d=0;i=t;return d|0}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;g=h;if((f|0)==(h|0))f=c[b>>2]|0;else f=f-g|0;if((f+-1|0)>>>0>>0){d=-1;i=t;return d|0}else f=g}else{b:do if(!(n|o)){while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=za(g|0,m|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}else{while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=bb(g|0,m|0,r|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}while(0);d=(c[(eo()|0)>>2]|0)==110;d=d?-2:-5;i=t;return d|0}while(0);g=b+4|0;q=c[b>>2]|0;r=(c[g>>2]|0)+q|0;f=(r>>>0>>0?r+q|0:r)-f|0;f=f>>>0>e>>>0?e:f;fq(h|0,d|0,f|0)|0;if(f>>>0>>0)fq(c[g>>2]|0,d+f|0,e-f|0)|0;r=h+e|0;d=c[b>>2]|0;c[s>>2]=r>>>0<((c[g>>2]|0)+d|0)>>>0?r:r+(0-d)|0;Ra((c[b+56>>2]|0)+12|0)|0;d=e;i=t;return d|0}function gc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;e=c[q>>2]|0;g=(a[e>>0]|0)!=0;do if(g){f=e+4|0;e=e+8|0;if((c[f>>2]|0)==0?(c[e>>2]|0)==0:0){n=0;o=0;break}hb(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[e>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[f>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);s=b+52|0;if(a[s>>0]|0){b=-3;i=t;return b|0}k=b+64|0;p=b+8|0;l=b+12|0;m=b+16|0;h=r+4|0;a:do if(!g){if(a[k>>0]|0){b=0;i=t;return b|0}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>>0){b=-1;i=t;return b|0}}else{b:do if(!(n|o)){while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=za(f|0,m|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}else{while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=bb(f|0,m|0,r|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}while(0);b=(c[(eo()|0)>>2]|0)==110;b=b?-2:-5;i=t;return b|0}while(0);c[b+44>>2]=d;c[b+48>>2]=e;a[s>>0]=1;b=d;i=t;return b|0}function hc(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;if(a[b+64>>0]|0){d=0;return d|0}g=b+44|0;if((c[g>>2]|0)>>>0>>0){d=-4;return d|0}h=b+48|0;j=c[h>>2]|0;i=b+4|0;k=c[b>>2]|0;f=(c[i>>2]|0)+k|0;f=(f>>>0>>0?f+k|0:f)-j|0;f=f>>>0>e>>>0?e:f;fq(j|0,d|0,f|0)|0;if(f>>>0>>0)fq(c[i>>2]|0,d+f|0,e-f|0)|0;j=(c[h>>2]|0)+e|0;k=c[b>>2]|0;c[h>>2]=j>>>0<((c[i>>2]|0)+k|0)>>>0?j:j+(0-k)|0;c[g>>2]=(c[g>>2]|0)-e;k=e;return k|0}function ic(b){b=b|0;var d=0;if(a[b+64>>0]|0){b=0;return b|0}d=b+52|0;if(!(a[d>>0]|0)){b=-4;return b|0}if(c[b+44>>2]|0){b=-4;return b|0}c[b+12>>2]=c[b+48>>2];a[d>>0]=0;Ra((c[b+56>>2]|0)+12|0)|0;b=0;return b|0}function jc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;x=i;i=i+16|0;if((i|0)>=(j|0))ba();t=x;s=b+56|0;f=c[s>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){o=0;p=0;break}hb(t|0,0)|0;p=((c[t+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;w=(p|0)>1e9;o=(c[t>>2]|0)+(c[g>>2]|0)+(w&1)|0;p=w?p+-1e9|0:p}else{o=0;p=0}while(0);w=b+8|0;q=b+12|0;v=b+64|0;n=b+16|0;m=t+4|0;a:do if(h)if(!(o|p)){b:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){k=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=za(g|0,n|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{k=-2;break b}default:{r=-5;u=30;break b}}}if((u|0)==30){i=x;return r|0}d=k;i=x;return d|0}else{c:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){l=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=bb(g|0,n|0,t|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{l=-2;break c}default:{r=-5;u=30;break c}}}if((u|0)==30){i=x;return r|0}d=l;i=x;return d|0}else{h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>>0){d=(a[v>>0]|0)+-1<<24>>24<<24>>24;i=x;return d|0}}while(0);g=b+4|0;u=c[b>>2]|0;v=(c[g>>2]|0)+u|0;f=(v>>>0>>0?v+u|0:v)-f|0;f=f>>>0>e>>>0?e:f;fq(d|0,h|0,f|0)|0;if(f>>>0>>0)fq(d+f|0,c[g>>2]|0,e-f|0)|0;v=h+e|0;d=c[b>>2]|0;c[w>>2]=v>>>0<((c[g>>2]|0)+d|0)>>>0?v:v+(0-d)|0;Ra((c[b+60>>2]|0)+12|0)|0;d=e;i=x;return d|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=(c[d>>2]|0)+b|0;b=c[a>>2]|0;c[d>>2]=e>>>0<((c[a+4>>2]|0)+b|0)>>>0?e:e+(0-b)|0;return}function lc(a){a=a|0;gb(a+16|0)|0;return}function mc(a){a=a|0;Ua(a+16|0)|0;return}function nc(a){a=a|0;gb(a+16|0)|0;return}function oc(a){a=a|0;Ua(a+16|0)|0;return}function pc(a){a=a|0;var b=0,d=0;if(!a){a=0;return a|0}b=Xp(28)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];d=zj(0)|0;c[b+20>>2]=d;Hj(d,0.0);Fj(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1){c[b+24>>2]=ze(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;a=b;return a|0}else{c[b+4>>2]=1;c[b+8>>2]=0;c[b+24>>2]=0;a=b;return a|0}return 0}function qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;w=i;i=i+32|0;if((i|0)>=(j|0))ba();q=w+16|0;r=w+8|0;s=w;if(!a){v=0;i=w;return v|0}t=a+4|0;f=c[t>>2]|0;if((d>>>0)%(f>>>0)|0|0){v=0;i=w;return v|0}v=Wa()|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)f=0;else{n=a+24|0;o=u+4|0;p=s+4|0;k=a+20|0;l=r+4|0;a=c[t>>2]|0;m=0;f=0;do{if(!a)a=0;else{h=0;do{a=c[k>>2]|0;c[r>>2]=c[b+(h+m<<2)>>2];g[l>>2]=0.0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];Mj(a,q,u+(h<<3)|0);Ij(c[k>>2]|0);h=h+1|0;a=c[t>>2]|0}while(h>>>0>>0)}h=c[n>>2]|0;if(!h){h=c[o>>2]|0;c[e+(m<<3)>>2]=c[u>>2];c[e+(m<<3)+4>>2]=h}else{Be(h,u,e+(((m>>>0)/(a>>>0)|0)<<3)|0);a=c[t>>2]|0;h=(m>>>0)/(a>>>0)|0;x=e+(h<<3)|0;h=e+(h<<3)+4|0;_n(s,+g[x>>2],+g[h>>2],+(a>>>0),0.0);a=c[p>>2]|0;c[x>>2]=c[s>>2];c[h>>2]=a}f=f+1|0;a=c[t>>2]|0;m=a+m|0}while(m>>>0>>0)}Ga(v|0);x=f;i=w;return x|0}function rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=_(e<<1,d)|0;g=Wa()|0;h=i;i=i+((1*(f<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(f|0)eq(h|0,0,(_(e,d)|0)<<3|0)|0;b=qc(a,h,f,b)|0;Ga(g|0);i=k;return b|0}function sc(a){a=a|0;var b=0;if(!a)return;Ej(c[a+20>>2]|0);b=c[a+24>>2]|0;if(b|0)Ae(b);Yp(a);return}function tc(a){a=a|0;var b=0.0,d=0,e=0;e=Xp(40)|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[e+20>>2]=c[a+20>>2];c[e+24>>2]=c[a+24>>2];d=zj(0)|0;c[e+28>>2]=d;Hj(d,0.0);Fj(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1)c[e+32>>2]=Ee(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;else{c[e+4>>2]=1;c[e+8>>2]=0;c[e+32>>2]=0}b=+g[a+24>>2];if(b!=0.0){c[e+36>>2]=Ve(b)|0;return e|0}else{c[e+36>>2]=0;return e|0}return 0}function uc(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=_(c[a+4>>2]|0,b)|0;return b|0}function vc(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=(b>>>0)/((c[a+4>>2]|0)>>>0)|0;return b|0}function wc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;D=i;i=i+48|0;if((i|0)>=(j|0))ba();p=D+32|0;q=D+24|0;B=D+8|0;r=D+16|0;x=D;if(!a){C=0;i=D;return C|0}y=a+4|0;A=c[y>>2]|0;C=Wa()|0;z=i;i=i+((1*(A<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)a=0;else{A=a+32|0;s=z+4|0;t=q+4|0;u=a+28|0;v=r+4|0;w=a+36|0;l=a+20|0;m=B+4|0;n=x+4|0;o=0;a=0;do{f=c[A>>2]|0;h=c[b+(o<<3)>>2]|0;k=c[b+(o<<3)+4>>2]|0;if(!f){c[z>>2]=h;c[s>>2]=k}else{c[q>>2]=h;c[t>>2]=k;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];Je(f,p,z)}if(c[y>>2]|0){h=0;do{f=c[u>>2]|0;k=c[z+(h<<3)+4>>2]|0;c[r>>2]=c[z+(h<<3)>>2];c[v>>2]=k;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];Lj(f,p,B);f=c[w>>2]|0;if(f|0){k=c[m>>2]|0;c[x>>2]=c[B>>2];c[n>>2]=k;c[p>>2]=c[x>>2];c[p+4>>2]=c[x+4>>2];Te(f,p,B)}g[e+((_(c[y>>2]|0,o)|0)+h<<2)>>2]=+g[B>>2]*+g[l>>2];a=a+1|0;Ij(c[u>>2]|0);h=h+1|0}while(h>>>0<(c[y>>2]|0)>>>0)}o=o+1|0}while((o|0)!=(d|0))}Ga(C|0);C=a;i=D;return C|0}function xc(a){a=a|0;if(!a){a=0;return a|0}a=_(c[a+4>>2]<<1,c[a+8>>2]|0)|0;return a|0}function yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+8>>2]|0;if(!d){b=0;i=k;return b|0}d=d<<1;e=Wa()|0;f=i;i=i+((1*(d<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(d|0){h=0;do{g[f+(h<<3)>>2]=0.0;g[f+(h<<3)+4>>2]=0.0;h=h+1|0}while((h|0)!=(d|0))}b=wc(a,f,d,b)|0;Ga(e|0);i=k;return b|0}function zc(a){a=a|0;var b=0;b=c[a+32>>2]|0;if(b|0)He(b);b=c[a+36>>2]|0;if(!b)return;Se(b);return}function Ac(a){a=a|0;var b=0;if(!a)return;Ej(c[a+28>>2]|0);b=c[a+32>>2]|0;if(b|0)Fe(b);b=c[a+36>>2]|0;if(b|0)Re(b);Yp(a);return}function Bc(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b>>2]|0;g=Xp(e)|0;_i(e,g);e=(c[b>>2]|0)>>>1;d=e;while(1)if(!(a[g+d>>0]|0))d=d+-1|0;else break;while(1){f=g+e|0;if(!(a[f>>0]|0))e=e+1|0;else break}e=c[b+16>>2]|0;if(e|0){e=e>>>0>1?e:1;eq(g+(d+1-e)|0,0,e|0)|0}d=c[b+12>>2]|0;if(!d)return g|0;eq(f|0,0,(d>>>0>1?d:1)|0)|0;return g|0}function Cc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=d>>>0>>0?d:b;gq(c|0,a|0,b<<2|0)|0;return b|0}function Dc(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(dp(a,c[2]|0)|0)if(dp(a,c[4]|0)|0)if(dp(a,c[6]|0)|0)if(dp(a,c[8]|0)|0)if(dp(a,c[10]|0)|0)if(dp(a,c[12]|0)|0)if(!(dp(a,c[14]|0)|0))a=6;else{e=c[2348]|0;c[b>>2]=a;Kp(e,10834,b)|0;a=0}else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;i=d;return a|0}function Ec(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;switch(a|0){case 1:case 0:{b=0;break}case 2:{b=1;break}case 3:{b=1;break}case 4:{b=2;break}case 5:{b=3;break}case 6:{b=4;break}default:{f=c[2348]|0;c[d>>2]=a;Kp(f,10905,d)|0;kb(1)}}i=e;return b|0}function Fc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;switch(a|0){case 0:{Qp(10962,71,1,c[2348]|0)|0;kb(-1);break}case 2:{if(!e){e=0;i=h;return e|0}else{f=0;a=0}do{a=(d[b+f>>0]|0)+a|0;f=f+1|0}while((f|0)!=(e|0));e=(a^255)+1&255;i=h;return e|0}case 3:{f=d[40210]|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=a&255^255;i=h;return e|0}case 4:{e=Gc(b,e)|0;i=h;return e|0}case 5:{e=Hc(b,e)|0;i=h;return e|0}case 6:{f=Zj(79764919)|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=~a;i=h;return e|0}case 1:{e=0;i=h;return e|0}default:{h=c[2348]|0;c[f>>2]=a;Kp(h,11034,f)|0;kb(1)}}return 0}function Gc(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=Xj(32773)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&65535^65535;return f|0}function Hc(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=Yj(6122955)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&16777215^16777215;return f|0}function Ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;switch(a|0){case 0:{Qp(11093,71,1,c[2348]|0)|0;kb(-1);break}case 1:{a=1;return a|0}default:{a=(Fc(a,b,d)|0)==(e|0)&1;return a|0}}return 0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(dp(a,c[64+(b<<3)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<28);if((e|0)==5){i=f;return b|0}e=c[2348]|0;c[d>>2]=a;Kp(e,11990,d)|0;e=0;i=f;return e|0}function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g;d=g+16|0;e=g+8|0;do switch(a|0){case 1:{f=b;i=g;return f|0}case 2:{f=b*3|0;i=g;return f|0}case 3:{f=b*5|0;i=g;return f|0}case 4:{f=(b<<1&1073741822)*7|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 5:{f=b<<1&536870910;i=g;return f|0}case 6:{f=(b&536870911)*12|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 7:{f=b<<3;f=(((((f>>>0)%12|0|0)!=0&1)+((f>>>0)/12|0)|0)*24|0)>>>3;i=g;return f|0}case 8:{f=(b>>>1)+b+(b&1)|0;i=g;return f|0}case 9:{f=(b>>>2)+b+((b&3|0)!=0&1)|0;i=g;return f|0}case 10:{f=(b>>>3)+b+((b&7|0)!=0&1)|0;i=g;return f|0}case 11:{f=(b<<1)+2|0;i=g;return f|0}case 12:{f=(b<<1)+2|0;i=g;return f|0}case 13:{f=(b*3|0)+3|0;i=g;return f|0}case 14:{f=(b*6|0)+11|0;i=g;return f|0}case 15:{f=(((b<<2&2147483644|3)+(b<<3|6)|0)>>>3)+1|0;i=g;return f|0}case 16:{f=b<<3|6;f=(((f+2|0)>>>0)/3|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 17:{f=b<<3|6;f=((f+3|0)>>>2)+f|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 18:{f=b<<3|6;f=(((f+4|0)>>>0)/5|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 19:{f=b<<3|6;f=(((f+5|0)>>>0)/6|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 20:{f=b<<3|6;f=(((f+6|0)>>>0)/7|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 21:{f=b<<3;f=f+8+((f+9|0)>>>1)|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 22:{f=b<<3;f=f+8+(((f+10|0)>>>0)/3|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 23:{f=b<<3;f=f+8+((f+11|0)>>>2)|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 24:{f=b<<3;f=f+8+(((f+12|0)>>>0)/5|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 25:{f=b<<3;f=f+8+(((f+13|0)>>>0)/6|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 26:{f=b<<3;f=f+8+(((f+14|0)>>>0)/7|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 27:{if(!b){Qp(12061,69,1,c[2348]|0)|0;kb(1)}Vp(d,b,223);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;Vp(e,b,f);f=_((c[e>>2]|0)+32+((c[e+4>>2]|0)!=0&1)|0,f)|0;i=g;return f|0}case 0:{f=0;i=g;return f|0}default:{c[f>>2]=a;Rp(12131,f)|0;kb(-1)}}while(0);return 0}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;if(!b){Qp(12196,61,1,c[2348]|0)|0;kb(1)}if(d>>>0>>0){Qp(12258,76,1,c[2348]|0)|0;kb(1)}else{a=a<<3;b=_((((a>>>0)%(b>>>0)|0|0)!=0&1)+((a>>>0)/(b>>>0)|0)|0,d)|0;return ((b&7|0)!=0&1)+(b>>>3)|0}return 0}function Mc(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;do switch(a|0){case 0:{b=0.0;break}case 1:{b=1.0;break}case 2:{b=.3333333432674408;break}case 3:{b=.20000000298023224;break}case 4:{b=.5714285969734192;break}case 5:{b=.5;break}case 6:{b=.6666666865348816;break}case 7:{b=.5;break}case 8:{b=.6666666865348816;break}case 9:{b=.800000011920929;break}case 10:{b=.8888888955116272;break}case 11:{b=.5;break}case 12:{b=.5;break}case 13:{b=.3333333432674408;break}case 14:{b=.1666666716337204;break}case 15:{b=.6666666865348816;break}case 16:{b=.75;break}case 17:{b=.800000011920929;break}case 18:{b=.8333333134651184;break}case 19:{b=.8571428656578064;break}case 20:{b=.875;break}case 21:{b=.6666666865348816;break}case 22:{b=.75;break}case 23:{b=.800000011920929;break}case 24:{b=.8333333134651184;break}case 25:{b=.8571428656578064;break}case 26:{b=.875;break}case 27:{b=.8745098114013672;break}default:{c[d>>2]=a;Rp(12335,d)|0;kb(-1)}}while(0);i=e;return +b}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;do switch(a|0){case 0:{Sp(12390)|0;kb(-1);break}case 1:{d=Ad(0)|0;break}case 2:{d=Ed(b)|0;break}case 3:{d=Jd(b)|0;break}case 4:{d=hd(b)|0;break}case 5:{d=nd(b)|0;break}case 6:{d=ud(b)|0;break}case 7:{d=dd(b)|0;break}case 8:{d=Vd(b)|0;break}case 9:{d=_d(b)|0;break}case 10:{d=fe(b)|0;break}case 14:case 13:case 12:case 11:{d=Sc(a)|0;break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{d=Zc(a)|0;break}case 27:{d=Od(27)|0;break}default:{c[e>>2]=a;Rp(12454,e)|0;kb(-1)}}while(0);i=f;return d|0}function Oc(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;b=c[a>>2]|0;do switch(b|0){case 0:{Sp(12507)|0;kb(-1);break}case 1:{Dd(a);break}case 2:{Id(a);break}case 3:{Nd(a);break}case 4:{md(a);break}case 5:{sd(a);break}case 6:{zd(a);break}case 7:{gd(a);break}case 8:{Yd(a);break}case 9:{be(a);break}case 10:{ie(a);break}case 14:case 13:case 12:case 11:{Yc(a);break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{bd(a);break}case 27:{Sd(a);break}default:{c[d>>2]=b;Rp(12573,d)|0;kb(-1)}}while(0);i=e;return}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;xb[c[a+136>>2]&63](a,b,d,e);return}function Qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;xb[c[a+140>>2]&63](a,b,d,e);return}function Rc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0;n=i;h=c[b+144>>2]|0;if(h|0){xb[h&63](b,e,f,g);i=n;return}h=Kc(c[b>>2]|0,e)|0;k=Wa()|0;l=i;i=i+((1*h|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(h|0){m=0;do{o=m<<3;a[l+m>>0]=(d[f+(o|6)>>0]|0)>>>6&2|((d[f+(o|5)>>0]|0)>>>5&4|((d[f+(o|4)>>0]|0)>>>4&8|((d[f+(o|3)>>0]|0)>>>3&16|((d[f+(o|2)>>0]|0)>>>2&32|((d[f+(o|1)>>0]|0)>>>1&64|(d[f+o>>0]|0)&128)))))|(d[f+(o|7)>>0]|0)>>>7;m=m+1|0}while((m|0)!=(h|0))}xb[c[b+140>>2]&63](b,e,l,g);Ga(k|0);i=n;return}function Sc(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=1;c[b+140>>2]=2;c[b+144>>2]=3;switch(c[b>>2]|0){case 11:{c[b+28>>2]=2;c[b+32>>2]=7;c[b+24>>2]=288;c[b+44>>2]=3;c[b+48>>2]=1;c[b+52>>2]=5;c[b+56>>2]=1;c[b+60>>2]=3;break}case 12:{c[b+28>>2]=2;c[b+32>>2]=9;c[b+24>>2]=296;c[b+44>>2]=4;c[b+48>>2]=2;c[b+52>>2]=6;c[b+56>>2]=2;c[b+60>>2]=4;break}case 13:{c[b+28>>2]=3;c[b+32>>2]=9;c[b+24>>2]=304;c[b+44>>2]=5;c[b+48>>2]=3;c[b+52>>2]=7;c[b+56>>2]=3;c[b+60>>2]=5;break}case 14:{c[b+28>>2]=6;c[b+32>>2]=15;c[b+24>>2]=316;c[b+44>>2]=6;c[b+48>>2]=4;c[b+52>>2]=8;c[b+56>>2]=4;c[b+60>>2]=6;break}default:{Qp(12666,39,1,c[2348]|0)|0;kb(1)}}c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function Tc(b,e,f,g){b=b|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;if(!e){i=0;h=0;l=0}else{r=b+28|0;s=b+24|0;k=c[r>>2]|0;i=0;j=0;h=0;l=0;do{q=d[f+j>>0]|0;n=k;m=k;p=0;k=l;while(1){o=q>>>(7-p|0)&1|k<<1;if(!m){k=n;l=0}else{k=0;do{i=((eb(c[(c[s>>2]|0)+(k<<2)>>2]&o|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;k=k+1|0;l=c[r>>2]|0}while(k>>>0>>0);k=l}p=p+1|0;if((p|0)==8){l=o;break}else{n=k;m=l;k=o}}j=j+1|0}while((j|0)!=(e|0))}n=b+32|0;j=c[n>>2]|0;if((j|0)!=1){o=b+28|0;p=b+24|0;k=c[o>>2]|0;m=0;do{l=l<<1;if(!k)k=0;else{j=0;do{i=((eb(c[(c[p>>2]|0)+(j<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;j=j+1|0;k=c[o>>2]|0}while(j>>>0>>0);j=c[n>>2]|0}m=m+1|0}while(m>>>0<(j+-1|0)>>>0)}if(h&7)do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);if((h|0)==((Kc(c[b>>2]|0,e)|0)<<3|0))return;else Ha(12706,12627,131,12650)}function Uc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n;m=b+8|0;if((c[m>>2]|0)==(d|0)){d=b+16|0;h=d;g=b+12|0;d=c[d>>2]|0}else{c[m>>2]=d;k=b+12|0;c[k>>2]=Kc(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)qb[c[b+60>>2]&31](g);c[d>>2]=rb[c[b+44>>2]&7](c[m>>2]<<3)|0;h=b+16|0;d=_p(c[h>>2]|0,c[k>>2]<<3)|0;c[h>>2]=d;g=k}k=c[g>>2]|0;dk(e,k,d,k<<3,l);if(c[g>>2]&536870911|0){d=0;do{l=(c[h>>2]|0)+d|0;a[l>>0]=((a[l>>0]|0)!=0)<<31>>31;d=d+1|0}while(d>>>0>2]<<3>>>0)}l=b+20|0;wb[c[b+48>>2]&7](c[l>>2]|0,0)|0;pb[c[b+52>>2]&15](c[l>>2]|0,c[h>>2]|0,(c[b+32>>2]|0)+-1+(c[m>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[l>>2]|0,f,c[m>>2]<<3,0)|0;i=n;return}function Vc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=b+8|0;if((c[i>>2]|0)==(d|0))d=b+12|0;else{c[i>>2]=d;h=b+12|0;c[h>>2]=Kc(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)qb[c[b+60>>2]&31](g);c[d>>2]=rb[c[b+44>>2]&7](c[i>>2]<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,c[h>>2]<<3)|0;d=h}g=b+16|0;if(c[d>>2]&536870911|0){h=0;do{a[(c[g>>2]|0)+h>>0]=a[e+h>>0]|0;h=h+1|0}while(h>>>0>2]<<3>>>0)}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[g>>2]|0,(c[b+32>>2]|0)+-1+(c[i>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[i>>2]<<3,0)|0;return}function Wc(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=7;c[a+24>>2]=288;c[a+44>>2]=3;c[a+48>>2]=1;c[a+52>>2]=5;c[a+56>>2]=1;c[a+60>>2]=3;return}function Xc(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=9;c[a+24>>2]=296;c[a+44>>2]=4;c[a+48>>2]=2;c[a+52>>2]=6;c[a+56>>2]=2;c[a+60>>2]=4;return}function Yc(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)qb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Yp(a);return}Yp(b);Yp(a);return}function Zc(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=4;c[b+140>>2]=5;c[b+144>>2]=6;do switch(c[b>>2]|0){case 15:{Wc(b);c[b+36>>2]=2;c[b+40>>2]=8928;break}case 16:{Wc(b);c[b+36>>2]=3;c[b+40>>2]=8944;break}case 17:{Wc(b);c[b+36>>2]=4;c[b+40>>2]=8968;break}case 18:{Wc(b);c[b+36>>2]=5;c[b+40>>2]=9e3;break}case 19:{Wc(b);c[b+36>>2]=6;c[b+40>>2]=9040;break}case 20:{Wc(b);c[b+36>>2]=7;c[b+40>>2]=9088;break}case 21:{Xc(b);c[b+36>>2]=2;c[b+40>>2]=9144;break}case 22:{Xc(b);c[b+36>>2]=3;c[b+40>>2]=9160;break}case 23:{Xc(b);c[b+36>>2]=4;c[b+40>>2]=9184;break}case 24:{Xc(b);c[b+36>>2]=5;c[b+40>>2]=9216;break}case 25:{Xc(b);c[b+36>>2]=6;c[b+40>>2]=9256;break}case 26:{Xc(b);c[b+36>>2]=7;c[b+40>>2]=9304;break}default:{Qp(12820,49,1,c[2348]|0)|0;kb(1)}}while(0);c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function _c(b,e,f,g){b=b|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;if(!e){i=0;h=0;l=0;k=0}else{r=b+28|0;s=b+36|0;t=b+40|0;u=b+24|0;l=c[r>>2]|0;i=0;j=0;h=0;m=0;k=0;do{q=d[f+j>>0]|0;n=l;p=0;o=m;while(1){k=q>>>(7-p|0)&1|k<<1;if(!n)n=0;else{m=0;do{n=(_(c[s>>2]|0,m)|0)+o|0;if(c[(c[t>>2]|0)+(n<<2)>>2]|0){i=((eb(c[(c[u>>2]|0)+(m<<2)>>2]&k|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;l=c[r>>2]|0;h=h+1|0}m=m+1|0}while(m>>>0>>0);n=l}m=((o+1|0)>>>0)%((c[s>>2]|0)>>>0)|0;p=p+1|0;if((p|0)==8)break;else o=m}j=j+1|0}while((j|0)!=(e|0));l=m}r=b+32|0;if((c[r>>2]|0)!=1){s=b+28|0;t=b+36|0;p=b+40|0;q=b+24|0;j=c[s>>2]|0;n=j;o=0;while(1){k=k<<1;if(!n){m=j;j=0}else{m=0;do{f=(_(c[t>>2]|0,m)|0)+l|0;if(c[(c[p>>2]|0)+(f<<2)>>2]|0){i=((eb(c[(c[q>>2]|0)+(m<<2)>>2]&k|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;j=c[s>>2]|0;h=h+1|0}m=m+1|0}while(m>>>0>>0);m=j}o=o+1|0;if(o>>>0>=((c[r>>2]|0)+-1|0)>>>0)break;else{n=j;j=m;l=((l+1|0)>>>0)%((c[t>>2]|0)>>>0)|0}}}if(h&7)do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);if((h|0)==((Kc(c[b>>2]|0,e)|0)<<3|0))return;else Ha(12706,12761,157,12794)}function $c(b,d,e,f){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;s=b+8|0;if((c[s>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[s>>2]=d;c[b+12>>2]=Kc(c[b>>2]|0,d)|0;d=c[s>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){qb[c[b+60>>2]&31](g);d=c[s>>2]|0}c[j>>2]=rb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,i)|0;d=c[s>>2]|0}g=c[h>>2]|0;p=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!p)d=b+16|0;else{q=b+36|0;r=b+40|0;d=b+16|0;i=a[e>>0]|0;n=0;l=0;j=0;o=0;while(1){if(!g)g=0;else{g=l;m=0;while(1){l=(_(c[q>>2]|0,m)|0)+o|0;if(c[(c[r>>2]|0)+(l<<2)>>2]|0){a[(c[d>>2]|0)+(m+n)>>0]=((i&255&1<<7-g|0)!=0)<<31>>31;g=g+1|0;if((g|0)==8){j=j+1|0;i=a[e+j>>0]|0;l=0}else l=g}else{a[(c[d>>2]|0)+(m+n)>>0]=127;l=g}m=m+1|0;g=c[h>>2]|0;if(m>>>0>=g>>>0)break;else g=l}}n=g+n|0;if(n>>>0>=p>>>0)break;else o=((o+1|0)>>>0)%((c[q>>2]|0)>>>0)|0}}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[s>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[s>>2]<<3,0)|0;return}function ad(b,d,e,f){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;q=b+8|0;if((c[q>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[q>>2]=d;c[b+12>>2]=Kc(c[b>>2]|0,d)|0;d=c[q>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){qb[c[b+60>>2]&31](g);d=c[q>>2]|0}c[j>>2]=rb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,i)|0;d=c[q>>2]|0}g=c[h>>2]|0;n=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!n)d=b+16|0;else{o=b+36|0;p=b+40|0;d=b+16|0;l=0;i=0;m=0;while(1){if(!g)g=0;else{g=i;j=0;while(1){i=(_(c[o>>2]|0,j)|0)+m|0;if(!(c[(c[p>>2]|0)+(i<<2)>>2]|0)){a[(c[d>>2]|0)+(j+l)>>0]=127;i=g}else{a[(c[d>>2]|0)+(j+l)>>0]=a[e+g>>0]|0;i=g+1|0}j=j+1|0;g=c[h>>2]|0;if(j>>>0>=g>>>0)break;else g=i}}l=g+l|0;if(l>>>0>=n>>>0)break;else m=((m+1|0)>>>0)%((c[o>>2]|0)>>>0)|0}}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[q>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[q>>2]<<3,0)|0;return}function bd(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)qb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Yp(a);return}Yp(b);Yp(a);return}function cd(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if(a>>>0>16777215){Qp(12870,61,1,c[2348]|0)|0;kb(1)}else{f=0;b=0}while(1){e=c[484+(f<<2)>>2]&a;e=(d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)+(d[39691+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){g=e;break}else b=e}if(((d[39691+(b>>>7&255)>>0]|0)+(d[39691+(g&255)>>0]|0)|0)>>>0<4){h=0;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[340+(b<<2)>>2]^g;if(((d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)|0)>>>0<3){h=7;break}b=b+1|0;if(b>>>0>=12){f=0;b=0;break}}if((h|0)==7){h=e<<12|1<<11-b;h=h^a;h=h&4095;return h|0}while(1){e=c[340+(f<<2)>>2]&g;e=(d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)+(d[39691+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){f=e;break}else b=e}if(((d[39691+(b>>>7&255)>>0]|0)+(d[39691+(f&255)>>0]|0)|1|0)==3){h=f;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[340+(b<<2)>>2]^f;if(((d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)|0)>>>0<3)break;b=b+1|0;if(b>>>0>=12){b=0;h=13;break}}if((h|0)==13){h=b^a;h=h&4095;return h|0}h=e|1<<23-b;h=h^a;h=h&4095;return h|0}function dd(a){a=a|0;a=Xp(148)|0;c[a>>2]=7;g[a+4>>2]=+Mc(7);c[a+136>>2]=7;c[a+140>>2]=8;c[a+144>>2]=0;return a|0}function ed(b,e,f,g){b=b|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;s=(e>>>0)%3|0;h=e-s|0;if((s|0)==(e|0))b=0;else{q=d[39691]|0;r=0;b=0;do{n=d[f+(r+1)>>0]|0;m=a[f+(r+2)>>0]|0;i=n>>>4|(d[f+r>>0]|0)<<4;n=n<<8&3840;k=0;l=0;while(1){j=c[388+(k<<2)>>2]&i;j=(d[39691+(j>>>8)>>0]|0)+(d[39691+(j&255)>>0]|0)+q&1|l<<1;k=k+1|0;if((k|0)==24){p=j;o=l;break}else l=j}k=n|m&255;l=0;i=0;while(1){j=c[388+(l<<2)>>2]&k;j=(d[39691+(j>>>8)>>0]|0)+(d[39691+(j&255)>>0]|0)+q&1|i<<1;l=l+1|0;if((l|0)==24)break;else i=j}a[g+b>>0]=o>>>15;a[g+(b|1)>>0]=o>>>7;a[g+(b+2)>>0]=p;a[g+(b+3)>>0]=i>>>15;a[g+(b+4)>>0]=i>>>7;a[g+(b+5)>>0]=j;b=b+6|0;r=r+3|0}while(r>>>0>>0)}if(h>>>0>>0){n=s*3|0;m=b;while(1){k=d[f+h>>0]|0;l=0;i=0;while(1){j=(d[39691+(c[388+(l<<2)>>2]&k)>>0]|0)&1|i<<1;l=l+1|0;if((l|0)==24)break;else i=j}a[g+m>>0]=i>>>15;a[g+(m+1)>>0]=i>>>7;a[g+(m+2)>>0]=j;h=h+1|0;if((h|0)==(e|0))break;else m=m+3|0}h=e;b=b+n|0}if((b|0)!=(Kc(7,e)|0))Ha(12932,12995,326,13023);if((h|0)==(e|0))return;else Ha(19100,12995,327,13023)}function fd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=(c>>>0)%3|0;g=c-i|0;if((i|0)==(c|0))b=0;else{h=0;b=0;do{j=(d[e+(b+4)>>0]|0)<<8|(d[e+(b+3)>>0]|0)<<16|(d[e+(b+5)>>0]|0);k=cd((d[e+(b|1)>>0]|0)<<8|(d[e+b>>0]|0)<<16|(d[e+(b+2)>>0]|0))|0;j=cd(j)|0;a[f+h>>0]=k>>>4;a[f+(h+1)>>0]=j>>>8&15|k<<4;a[f+(h+2)>>0]=j;b=b+6|0;h=h+3|0}while(h>>>0>>0)}if(g>>>0>>0){i=i*3|0;h=b;while(1){a[f+g>>0]=cd((d[e+(h+1)>>0]|0)<<8|(d[e+h>>0]|0)<<16|(d[e+(h+2)>>0]|0))|0;g=g+1|0;if((g|0)==(c|0))break;else h=h+3|0}g=c;b=b+i|0}if((b|0)!=(Kc(7,c)|0))Ha(13044,12995,396,13106);if((g|0)==(c|0))return;else Ha(19100,12995,397,13106)}function gd(a){a=a|0;Yp(a);return}function hd(a){a=a|0;a=Xp(148)|0;c[a>>2]=4;g[a+4>>2]=+Mc(4);c[a+136>>2]=9;c[a+140>>2]=10;c[a+144>>2]=11;return a|0}function id(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;b=Lc(c,4,7)|0;if(!c)return;else{g=0;h=0}while(1){j=a[e+g>>0]|0;i=d[13127+(j&15)>>0]|0;$j(f,b,h,7,d[13127+((j&255)>>>4&255)>>0]|0);$j(f,b,h+7|0,7,i);g=g+1|0;if((g|0)==(c|0))break;else h=h+14|0}return}function jd(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+4|0;m=n;b=Lc(e,4,7)|0;if(!e){i=n;return}else{h=0;k=0}while(1){ak(f,b,k,7,l);ak(f,b,k+7|0,7,m);a[g+h>>0]=d[13143+(c[m>>2]|0)>>0]|0|(d[13143+(c[l>>2]|0)>>0]|0)<<4;h=h+1|0;if((h|0)==(e|0))break;else k=k+14|0}i=n;return}function kd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Lc(c,4,7)|0;if(!c)b=0;else{b=0;f=0;while(1){h=ld(d+f|0)|0;a[e+b>>0]=(h&255)<<4|(ld(d+(f+7)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+14|0}b=c*14|0}if((b|0)==(g<<3|0))return;else Ha(13843,13271,193,13299)}function ld(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;r=d[a+1>>0]|0;s=r^255;t=d[a+2>>0]|0;j=t^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;b=d[a+6>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[13127+g>>0]|0;e=(e&32|0?s:r)+(e&64|0?o:i)+(e&16|0?j:t)+(e&8|0?l:k)+(e&4|0?n:m)+(e&2|0?q:p)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function md(a){a=a|0;Yp(a);return}function nd(a){a=a|0;a=Xp(148)|0;c[a>>2]=5;g[a+4>>2]=+Mc(5);c[a+136>>2]=12;c[a+140>>2]=13;c[a+144>>2]=14;return a|0}function od(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if(!c)return;else{b=0;f=0}while(1){g=a[d+b>>0]|0;a[e+f>>0]=a[13325+((g&255)>>>4&255)>>0]|0;a[e+(f|1)>>0]=a[13325+(g&15)>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+2|0}return}function pd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0;if(!c)return;else b=0;do{g=b<<1;a[f+b>>0]=(d[13341+(d[e+g>>0]|0)>>0]|0)<<4|(d[13341+(d[e+(g|1)>>0]|0)>>0]|0);b=b+1|0}while((b|0)!=(c|0));return}function qd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Lc(c,4,8)|0;if(!c)b=0;else{b=0;f=0;while(1){h=rd(d+f|0)|0;a[e+b>>0]=(h&255)<<4|(rd(d+(f|8)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+16|0}b=c<<4}if((b|0)==(g<<3|0))return;else Ha(13843,13597,181,13625)}function rd(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;t=d[a+1>>0]|0;u=t^255;v=d[a+2>>0]|0;j=v^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;r=d[a+6>>0]|0;s=r^255;b=d[a+7>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[13325+g>>0]|0;e=(e&64|0?u:t)+(e&128|0?o:i)+(e&32|0?j:v)+(e&16|0?l:k)+(e&8|0?n:m)+(e&4|0?q:p)+(e&2|0?s:r)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function sd(a){a=a|0;Yp(a);return}function td(a){a=a|0;var b=0,e=0;if(a>>>0>4095){Qp(13651,55,1,c[2348]|0)|0;kb(1)}b=a>>>8;b=(d[39947+(b&6)>>0]|0)+(d[39947+(a&102)>>0]|0)<<1&2|(d[39947+(b&10)>>0]|0)+(d[39947+(a&170)>>0]|0)&1|(d[39947+(b&1)>>0]|0)+(d[39947+(a&225)>>0]|0)<<2&4|(d[39947]|0)+(d[39947+(a&31)>>0]|0)<<3&8;if((b+-1|0)>>>0>11){b=a&15;e=a>>>1;e=e&112;b=e|b;a=a>>>2;a=a&128;a=b|a;return a|0}e=1<<12-b^a;a=e&15;b=e>>>1;b=b&112;a=b|a;e=e>>>2;e=e&128;e=a|e;return e|0}function ud(a){a=a|0;a=Xp(148)|0;c[a>>2]=6;g[a+4>>2]=+Mc(6);c[a+136>>2]=15;c[a+140>>2]=16;c[a+144>>2]=17;return a|0}function vd(c,e,f,g){c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=e&1;h=e-j|0;if((j|0)==(e|0))c=0;else{i=0;c=0;do{l=b[9828+((d[f+i>>0]|0)<<1)>>1]|0;k=b[9828+((d[f+(i|1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(k&65535)>>>8&15|(l&65535)<<4;a[g+(c+2)>>0]=k;c=c+3|0;i=i+2|0}while(i>>>0>>0)}if(j){l=b[9828+((d[f+(e+-1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(l&65535)<<4;c=c+2|0}if((c|0)==(Kc(6,e)|0))return;else Ha(13707,13770,226,13799)}function wd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=c&1;h=c-i|0;if((i|0)==(c|0)){g=0;b=0}else{g=0;b=0;do{k=d[e+(b+1)>>0]|0;j=k<<8&3840|(d[e+(b+2)>>0]|0);a[f+g>>0]=td(k>>>4|(d[e+b>>0]|0)<<4)|0;a[f+(g|1)>>0]=td(j)|0;b=b+3|0;g=g+2|0}while(g>>>0>>0)}if(i){a[f+g>>0]=td((d[e+(b+1)>>0]|0)>>>4|(d[e+b>>0]|0)<<4)|0;b=b+2|0}if((b|0)==(Kc(6,c)|0))return;else Ha(13707,13770,280,13821)}function xd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c&1;h=((c*3|0)>>>1)+g|0;if(!c)b=0;else{b=0;f=0;while(1){a[e+b>>0]=yd(d+f|0)|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+12|0}b=c*12|0}if((b+(g<<2)|0)==(h<<3|0))return;else Ha(13843,13770,326,13862)}function yd(b){b=b|0;var c=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;u=b+1|0;w=b+2|0;y=b+3|0;A=b+4|0;C=b+5|0;c=b+6|0;g=b+7|0;i=b+8|0;k=b+9|0;m=b+10|0;o=b+11|0;r=td(((a[u>>0]|0)<0?1024:0)|((a[b>>0]|0)<0?2048:0)|((a[w>>0]|0)<0?512:0)|((a[y>>0]|0)<0?256:0)|((a[A>>0]|0)<0?128:0)|((a[C>>0]|0)<0?64:0)|((a[c>>0]|0)<0?32:0)|((a[g>>0]|0)<0?16:0)|((a[i>>0]|0)<0?8:0)|((a[k>>0]|0)<0?4:0)|((a[m>>0]|0)<0?2:0)|(d[o>>0]|0)>>>7&255)|0;E=e[9828+(r<<1)>>1]|0;s=d[b>>0]|0;t=s^255;u=d[u>>0]|0;v=u^255;w=d[w>>0]|0;x=w^255;y=d[y>>0]|0;z=y^255;A=d[A>>0]|0;B=A^255;C=d[C>>0]|0;D=C^255;c=d[c>>0]|0;f=c^255;g=d[g>>0]|0;h=g^255;i=d[i>>0]|0;j=i^255;k=d[k>>0]|0;l=k^255;m=d[m>>0]|0;n=m^255;o=d[o>>0]|0;p=o^255;E=(E&1024|0?v:u)+(E&2048|0?t:s)+(E&512|0?x:w)+(E&256|0?z:y)+(E&128|0?B:A)+(E&64|0?D:C)+(E&32|0?f:c)+(E&16|0?h:g)+(E&8|0?j:i)+(E&4|0?l:k)+(E&2|0?n:m)+(E&1|0?p:o)|0;F=0;b=r;while(1){G=d[13889+(b*17|0)+F>>0]|0;q=e[9828+(G<<1)>>1]|0;q=(q&1024|0?v:u)+(q&2048|0?t:s)+(q&512|0?x:w)+(q&256|0?z:y)+(q&128|0?B:A)+(q&64|0?D:C)+(q&32|0?f:c)+(q&16|0?h:g)+(q&8|0?j:i)+(q&4|0?l:k)+(q&2|0?n:m)+(q&1|0?p:o)|0;r=q>>>0>>0;b=r?G:b;F=F+1|0;if((F|0)==17)break;else E=r?q:E}return b|0}function zd(a){a=a|0;Yp(a);return}function Ad(a){a=a|0;a=Xp(148)|0;c[a>>2]=1;g[a+4>>2]=+Mc(1);c[a+136>>2]=18;c[a+140>>2]=19;c[a+144>>2]=0;return a|0}function Bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gq(d|0,c|0,b|0)|0;return}function Cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gq(d|0,c|0,b|0)|0;return}function Dd(a){a=a|0;Yp(a);return}function Ed(a){a=a|0;a=Xp(148)|0;c[a>>2]=2;g[a+4>>2]=+Mc(2);c[a+136>>2]=20;c[a+140>>2]=21;c[a+144>>2]=22;return a|0}function Fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;fq(d+b|0,c|0,b|0)|0;fq(d+(b<<1)|0,c|0,b|0)|0;return}function Gd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!c)return;b=c<<1;f=0;do{g=a[d+(f+c)>>0]|0;h=a[d+(f+b)>>0]|0;a[e+f>>0]=(h|g)&a[d+f>>0]|h&g;f=f+1|0}while((f|0)!=(c|0));return}function Hd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!c)return;b=c<<1;l=0;do{g=f+l|0;a[g>>0]=0;i=l<<3;j=l+c<<3;k=l+b<<3;h=0;m=0;do{h=h&255|(((d[e+(m+j)>>0]|0)+(d[e+(m+i)>>0]|0)+(d[e+(m+k)>>0]|0)|0)>>>0>383?1<<7-m:0);a[g>>0]=h;m=m+1|0}while((m|0)!=8);l=l+1|0}while((l|0)!=(c|0));return}function Id(a){a=a|0;Yp(a);return}function Jd(a){a=a|0;a=Xp(148)|0;c[a>>2]=3;g[a+4>>2]=+Mc(3);c[a+136>>2]=23;c[a+140>>2]=24;c[a+144>>2]=25;return a|0}function Kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;fq(d+b|0,c|0,b|0)|0;fq(d+(b<<1)|0,c|0,b|0)|0;fq(d+(b*3|0)|0,c|0,b|0)|0;fq(d+(b<<2)|0,c|0,b|0)|0;return}function Ld(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!c)return;b=c<<1;f=c*3|0;g=c<<2;h=0;do{l=a[d+h>>0]|0;m=a[d+(h+c)>>0]|0;j=a[d+(h+b)>>0]|0;k=a[d+(h+f)>>0]|0;i=a[d+(h+g)>>0]|0;o=j&l;n=j&m;a[e+h>>0]=(n|o)&k|i&o|k&l&i|i&n|k&m&i|k&j&i|m&l&(k|j|i);h=h+1|0}while((h|0)!=(c|0));return}function Md(b,c,e,f){b=b|0;c=c|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;if(!c)return;b=c<<1;i=c*3|0;j=c<<2;p=0;do{k=f+p|0;a[k>>0]=0;m=p<<3;n=p+c<<3;o=p+b<<3;g=p+i<<3;h=p+j<<3;l=0;q=0;do{l=l&255|(((d[e+(q+n)>>0]|0)+(d[e+(q+m)>>0]|0)+(d[e+(q+o)>>0]|0)+(d[e+(q+g)>>0]|0)+(d[e+(q+h)>>0]|0)|0)>>>0>639?1<<7-q:0);a[k>>0]=l;q=q+1|0}while((q|0)!=8);p=p+1|0}while((p|0)!=(c|0));return}function Nd(a){a=a|0;Yp(a);return}function Od(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=26;c[b+140>>2]=27;c[b+144>>2]=0;if((a|0)==27){c[b+64>>2]=8;c[b+68>>2]=285;c[b+72>>2]=1;c[b+76>>2]=1;c[b+80>>2]=32;c[b+88>>2]=255;c[b+92>>2]=223;c[b+8>>2]=0;c[b+96>>2]=0;c[b+120>>2]=Xp(255)|0;c[b+124>>2]=Xp(1020)|0;c[b+128>>2]=Xp(1020)|0;return b|0}else{Qp(18436,37,1,c[2348]|0)|0;kb(1)}return 0}function Pd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!b){Qp(18241,49,1,c[2348]|0)|0;kb(1)}Qd(a,b);k=a+104|0;l=a+100|0;b=c[l>>2]|0;if(!b){f=0;b=0}else{m=a+112|0;n=a+120|0;o=a+96|0;j=a+108|0;h=b;g=c[k>>2]|0;i=0;f=0;b=0;do{if((i|0)==(h+-1|0))g=g-(c[m>>2]|0)|0;gq(c[n>>2]|0,d+f|0,g|0)|0;h=c[n>>2]|0;Lm(c[o>>2]|0,h,h+(c[k>>2]|0)|0);gq(e+b|0,c[n>>2]|0,c[j>>2]|0)|0;f=g+f|0;b=(c[j>>2]|0)+b|0;i=i+1|0;h=c[l>>2]|0}while(i>>>0>>0)}if((f|0)!=(c[a+8>>2]|0))Ha(18291,18315,131,18336);if((b|0)==(c[a+12>>2]|0))return;else Ha(18350,18315,132,18336)}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();d=k+8|0;e=k;f=a+8|0;if((c[f>>2]|0)==(b|0)){i=k;return}c[f>>2]=b;l=a+92|0;Vp(d,b,c[l>>2]|0);d=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;m=a+100|0;c[m>>2]=d;Vp(e,b,d);d=((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)|0;c[a+104>>2]=d;g=a+80|0;e=c[g>>2]|0;h=d+e|0;c[a+108>>2]=h;b=c[m>>2]|0;m=_(d,b)|0;c[a+112>>2]=(m>>>0)%((c[f>>2]|0)>>>0)|0;d=(c[l>>2]|0)-d|0;f=a+116|0;c[f>>2]=d;c[a+12>>2]=_(b,h)|0;h=a+96|0;b=c[h>>2]|0;if(b){Im(b);e=c[g>>2]|0;d=c[f>>2]|0}c[h>>2]=Em(c[a+64>>2]|0,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0,e,d)|0;i=k;return}function Rd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!b){Qp(18241,49,1,c[2348]|0)|0;kb(1)}Qd(a,b);p=a+88|0;eq(c[a+124>>2]|0,0,c[p>>2]|0)|0;o=a+128|0;eq(c[o>>2]|0,0,c[p>>2]|0)|0;p=a+132|0;c[p>>2]=0;j=a+100|0;b=c[j>>2]|0;if(!b){f=0;b=0}else{k=a+112|0;l=a+120|0;m=a+108|0;n=a+96|0;h=b;g=c[a+104>>2]|0;i=0;f=0;b=0;do{if((i|0)==(h+-1|0))g=g-(c[k>>2]|0)|0;gq(c[l>>2]|0,d+f|0,c[m>>2]|0)|0;Om(c[n>>2]|0,c[l>>2]|0,c[o>>2]|0,c[p>>2]|0);gq(e+b|0,c[l>>2]|0,g|0)|0;f=(c[m>>2]|0)+f|0;b=g+b|0;i=i+1|0;h=c[j>>2]|0}while(i>>>0>>0)}if((f|0)!=(c[a+12>>2]|0))Ha(18374,18315,185,18398);if((b|0)==(c[a+8>>2]|0))return;else Ha(18412,18315,186,18398)}function Sd(a){a=a|0;var b=0;b=c[a+96>>2]|0;if(b|0)Im(b);Yp(c[a+120>>2]|0);Yp(c[a+124>>2]|0);Yp(c[a+128>>2]|0);Yp(a);return}function Td(b){b=b|0;var c=0;c=a[b>>0]|0;b=a[b+1>>0]|0;return ((d[39691+(b&a[18485]&255)>>0]|0)+(d[39691+(c&a[18484]&255)>>0]|0)&1|((d[39691+(b&a[18483]&255)>>0]|0)+(d[39691+(c&a[18482]&255)>>0]|0)&1|((d[39691+(b&a[18481]&255)>>0]|0)+(d[39691+(c&a[18480]&255)>>0]|0)&1|((d[39691+(b&a[18479]&255)>>0]|0)+(d[39691+(c&a[18478]&255)>>0]|0)&1|((d[39691+(b&a[18477]&255)>>0]|0)+(d[39691+(c&a[18476]&255)>>0]|0)&1|(d[39691+(b&a[18475]&255)>>0]|0)+(d[39691+(c&a[18474]&255)>>0]|0)<<1&2)<<1&6)<<1&14)<<1&30)<<1&62)&255|0}function Ud(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;f=a[b+2>>0]|0;g=0;b=0;do{n=g<<1;b=((1<<5-g&h|0)!=0&1)+(d[39691+(a[18474+n>>0]&k&255)>>0]|0)+(d[39691+(a[18474+(n|1)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=6);f=b&255;if(!(a[39691+(b&255)>>0]|0)){n=0;i=m;return n|0}do if(f<<24>>24!=(a[18486]|0))if(f<<24>>24!=(a[18487]|0))if(f<<24>>24!=(a[18488]|0))if(f<<24>>24!=(a[18489]|0))if(f<<24>>24!=(a[18490]|0))if(f<<24>>24!=(a[18491]|0))if(f<<24>>24!=(a[18492]|0))if(f<<24>>24!=(a[18493]|0))if(f<<24>>24!=(a[18494]|0))if(f<<24>>24!=(a[18495]|0))if(f<<24>>24!=(a[18496]|0))if(f<<24>>24!=(a[18497]|0))if(f<<24>>24!=(a[18498]|0))if(f<<24>>24!=(a[18499]|0))if(f<<24>>24!=(a[18500]|0))if(f<<24>>24!=(a[18501]|0))if(f<<24>>24!=(a[18502]|0))if(f<<24>>24==(a[18503]|0))b=17;else{if(f<<24>>24==(a[18504]|0)){b=18;break}if(f<<24>>24==(a[18505]|0)){b=19;break}if(f<<24>>24==(a[18506]|0)){b=20;break}if(f<<24>>24==(a[18507]|0)){b=21;break}else b=2;i=m;return b|0}else b=16;else b=15;else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;while(0);Vp(l,b,8);a[e+(2-(c[l>>2]|0))>>0]=1<>2];n=1;i=m;return n|0}function Vd(a){a=a|0;a=Xp(148)|0;c[a>>2]=8;g[a+4>>2]=+Mc(8);c[a+136>>2]=28;c[a+140>>2]=29;c[a+144>>2]=0;return a|0}function Wd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();h=l;k=c&1;g=c-k|0;if((k|0)==(c|0)){f=0;b=0}else{f=0;b=0;do{m=d+f|0;a[e+b>>0]=Td(m)|0;a[e+(b+1)>>0]=a[m>>0]|0;a[e+(b+2)>>0]=a[d+(f|1)>>0]|0;b=b+3|0;f=f+2|0}while(f>>>0>>0)}if(k){m=a[d+f>>0]|0;a[h>>0]=m;a[h+1>>0]=0;a[e+b>>0]=Td(h)|0;a[e+(b+1)>>0]=m;f=f|k;b=k+1+b|0}if((b|0)!=(Kc(8,c)|0))Ha(18508,18572,274,18601);if((f|0)==(c|0)){i=l;return}else Ha(19100,18572,275,18601)}function Xd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();l=o+3|0;m=o;n=c&1;g=c-n|0;if((n|0)==(c|0)){f=0;b=0}else{h=l+1|0;k=l+2|0;f=0;b=0;do{q=d+b|0;p=e+f|0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;Ud(q,l)|0;a[p>>0]=a[h>>0]^a[q+1>>0];a[p+1>>0]=a[k>>0]^a[q+2>>0];b=b+3|0;f=f+2|0}while(f>>>0>>0)}if(n){a[m>>0]=a[d+b>>0]|0;q=a[d+(b+1)>>0]|0;a[m+1>>0]=q;a[m+2>>0]=0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;Ud(m,l)|0;a[e+f>>0]=a[l+1>>0]^q;f=f|n;b=n+1+b|0}if((b|0)!=(Kc(8,c)|0))Ha(18508,18572,323,18623);if((f|0)==(c|0)){i=o;return}else Ha(19100,18572,324,18623)}function Yd(a){a=a|0;Yp(a);return}function Zd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();n=p;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;a[e+4>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;l=a[b+2>>0]|0;m=a[b+3>>0]|0;f=a[b+4>>0]|0;g=0;b=0;do{q=g<<2;b=((1<<6-g&h|0)!=0&1)+(d[39691+(a[18645+q>>0]&k&255)>>0]|0)+(d[39691+(a[18645+(q|1)>>0]&l&255)>>0]|0)+(d[39691+(a[18645+(q|2)>>0]&m&255)>>0]|0)+(d[39691+(a[18645+(q|3)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=7);f=b&255;if(!(a[39691+(b&255)>>0]|0)){q=0;i=p;return q|0}else b=0;while(1){if(f<<24>>24==(a[18673+b>>0]|0))break;b=b+1|0;if(b>>>0>=39){b=2;o=7;break}}if((o|0)==7){i=p;return b|0}Vp(n,b,8);a[e+(4-(c[n>>2]|0))>>0]=1<>2];q=1;i=p;return q|0}function _d(a){a=a|0;a=Xp(148)|0;c[a>>2]=9;g[a+4>>2]=+Mc(9);c[a+136>>2]=30;c[a+140>>2]=31;c[a+144>>2]=0;return a|0}function $d(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+16|0;if((i|0)>=(j|0))ba();t=w;u=w+4|0;v=f&3;s=f-v|0;if((v|0)==(f|0)){k=0;b=0}else{k=0;b=0;do{r=g+k|0;n=a[r>>0]|0;o=a[r+1>>0]|0;p=a[r+2>>0]|0;m=a[r+3>>0]|0;q=0;l=0;do{x=q<<2;l=(d[39691+(a[18645+(x|1)>>0]&o&255)>>0]|0)+(d[39691+(a[18645+x>>0]&n&255)>>0]|0)+(d[39691+(a[18645+(x|2)>>0]&p&255)>>0]|0)+(d[39691+(a[18645+(x|3)>>0]&m&255)>>0]|0)&1|l<<1&510;q=q+1|0}while((q|0)!=7);a[h+b>>0]=l;a[h+(b+1)>>0]=a[r>>0]|0;a[h+(b+2)>>0]=a[g+(k|1)>>0]|0;a[h+(b+3)>>0]=a[g+(k|2)>>0]|0;a[h+(b+4)>>0]=a[g+(k|3)>>0]|0;b=b+5|0;k=k+4|0}while(k>>>0>>0)}if(v){c[t>>2]=0;fq(t|0,g+k|0,f&3|0)|0;s=c[t>>2]|0;n=s&255;o=(s&65535)>>>8&255;q=s>>>16&255;r=s>>>24&255;s=s&255;p=(e[t>>1]|0)>>>8&255;m=0;l=0;do{x=m<<2;l=(d[39691+(a[18645+(x|1)>>0]&o&255)>>0]|0)+(d[39691+(a[18645+x>>0]&n&255)>>0]|0)+(d[39691+(a[18645+(x|2)>>0]&q&255)>>0]|0)+(d[39691+(a[18645+(x|3)>>0]&r&255)>>0]|0)&1|l<<1&510;m=m+1|0}while((m|0)!=7);t=l&255;a[u>>0]=t;x=u+1|0;a[x>>0]=s;a[u+2>>0]=p;a[u+3>>0]=q;a[u+4>>0]=r;a[h+b>>0]=t;fq(h+(b+1)|0,x|0,f&3|0)|0;k=k|v;b=v+1+b|0}if((b|0)!=(Kc(9,f)|0))Ha(18712,18776,296,18805);if((k|0)==(f|0)){i=w;return}else Ha(19100,18776,297,18805)}function ae(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();n=r+9|0;p=r+4|0;o=r;q=c&3;g=c-q|0;if((q|0)==(c|0)){f=0;b=0}else{h=n+1|0;k=n+2|0;l=n+3|0;m=n+4|0;f=0;b=0;do{t=d+b|0;s=e+f|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;Zd(t,n)|0;a[s>>0]=a[h>>0]^a[t+1>>0];a[s+1>>0]=a[k>>0]^a[t+2>>0];a[s+2>>0]=a[l>>0]^a[t+3>>0];a[s+3>>0]=a[m>>0]^a[t+4>>0];b=b+5|0;f=f+4|0}while(f>>>0>>0)}if(q){a[p>>0]=a[d+b>>0]|0;m=p+1|0;a[m>>0]=0;a[m+1>>0]=0;a[m+2>>0]=0;a[m+3>>0]=0;fq(m|0,d+(b+1)|0,c&3|0)|0;m=a[m>>0]|0;d=a[p+2>>0]|0;s=a[p+3>>0]|0;t=a[p+4>>0]|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;Zd(p,n)|0;a[o>>0]=a[n+1>>0]^m;a[o+1>>0]=a[n+2>>0]^d;a[o+2>>0]=a[n+3>>0]^s;a[o+3>>0]=a[n+4>>0]^t;fq(e+f|0,o|0,c&3|0)|0;f=f|q;b=q+1+b|0}if((b|0)!=(Kc(9,c)|0))Ha(18712,18776,349,18827);if((f|0)==(c|0)){i=r;return}else Ha(19100,18776,350,18827)}function be(a){a=a|0;Yp(a);return}function ce(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=a[b>>0]|0;i=a[b+1>>0]|0;j=a[b+2>>0]|0;k=a[b+3>>0]|0;l=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;c=a[b+7>>0]|0;e=0;b=0;do{m=e<<3;b=(d[39691+(i&a[18849+(m|1)>>0]&255)>>0]|0)+(d[39691+(f&a[18849+m>>0]&255)>>0]|0)+(d[39691+(j&a[18849+(m|2)>>0]&255)>>0]|0)+(d[39691+(k&a[18849+(m|3)>>0]&255)>>0]|0)+(d[39691+(l&a[18849+(m|4)>>0]&255)>>0]|0)+(d[39691+(g&a[18849+(m|5)>>0]&255)>>0]|0)+(d[39691+(h&a[18849+(m|6)>>0]&255)>>0]|0)+(d[39691+(c&a[18849+(m|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function de(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=d[b>>0]|0;j=a[b+1>>0]|0;k=a[b+2>>0]|0;l=a[b+3>>0]|0;m=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;i=a[b+7>>0]|0;c=a[b+8>>0]|0;e=0;b=0;do{n=e<<3;b=((f&1<<7-e|0)!=0&1)+(d[39691+(j&a[18849+n>>0]&255)>>0]|0)+(d[39691+(k&a[18849+(n|1)>>0]&255)>>0]|0)+(d[39691+(l&a[18849+(n|2)>>0]&255)>>0]|0)+(d[39691+(m&a[18849+(n|3)>>0]&255)>>0]|0)+(d[39691+(g&a[18849+(n|4)>>0]&255)>>0]|0)+(d[39691+(h&a[18849+(n|5)>>0]&255)>>0]|0)+(d[39691+(i&a[18849+(n|6)>>0]&255)>>0]|0)+(d[39691+(c&a[18849+(n|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function ee(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();g=q;p=q+8|0;e=p;f=e+9|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));f=de(b)|0;a:do if(!(a[39691+(f&255)>>0]|0)){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=0}else{e=0;while(1){if(f<<24>>24==(a[18913+e>>0]|0))break;e=e+1|0;if(e>>>0>=72){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=2;break a}}Vp(g,e,8);a[p+(8-(c[g>>2]|0))>>0]=1<>2];g=a[p+1>>0]|0;h=a[p+2>>0]|0;k=a[p+3>>0]|0;l=a[p+4>>0]|0;m=a[p+5>>0]|0;n=a[p+6>>0]|0;o=a[p+7>>0]|0;e=a[p+8>>0]|0;f=1}while(0);a[d>>0]=g^a[b+1>>0];a[d+1>>0]=h^a[b+2>>0];a[d+2>>0]=k^a[b+3>>0];a[d+3>>0]=l^a[b+4>>0];a[d+4>>0]=m^a[b+5>>0];a[d+5>>0]=n^a[b+6>>0];a[d+6>>0]=o^a[b+7>>0];a[d+7>>0]=e^a[b+8>>0];i=q;return f|0}function fe(a){a=a|0;a=Xp(148)|0;c[a>>2]=10;g[a+4>>2]=+Mc(10);c[a+136>>2]=32;c[a+140>>2]=33;c[a+144>>2]=0;return a|0}function ge(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();k=n;m=d&7;h=d-m|0;if((m|0)==(d|0)){g=0;b=0}else{g=0;b=0;do{o=e+g|0;l=f+b|0;a[l>>0]=ce(o)|0;a[l+1>>0]=a[o>>0]|0;a[l+2>>0]=a[o+1>>0]|0;a[l+3>>0]=a[o+2>>0]|0;a[l+4>>0]=a[o+3>>0]|0;a[l+5>>0]=a[o+4>>0]|0;a[l+6>>0]=a[o+5>>0]|0;a[l+7>>0]=a[o+6>>0]|0;a[l+8>>0]=a[o+7>>0]|0;b=b+9|0;g=g+8|0}while(g>>>0>>0)}if(m){h=k;c[h>>2]=0;c[h+4>>2]=0;fq(k|0,e+g|0,d&7|0)|0;a[f+b>>0]=ce(k)|0;h=b+1|0;k=d&7;l=0;do{a[f+(h+l)>>0]=a[e+(l+g)>>0]|0;l=l+1|0}while((l|0)!=(k|0));g=g|m;b=m+1+b|0}if((b|0)!=(Kc(10,d)|0))Ha(18985,19049,286,19078);if((g|0)==(d|0)){i=n;return}else Ha(19100,19049,287,19078)}function he(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();k=m+8|0;h=m;l=b&7;g=b-l|0;if((l|0)==(b|0)){f=0;a=0}else{f=0;a=0;do{ee(d+a|0,e+f|0)|0;a=a+9|0;f=f+8|0}while(f>>>0>>0)}if(l){g=h;c[g>>2]=0;c[g+4>>2]=0;g=b&7;n=g+1|0;eq(k+n|0,0,(n>>>0>8?0:8-g|0)|0)|0;fq(k|0,d+a|0,n|0)|0;ee(k,h)|0;fq(e+f|0,h|0,g|0)|0;f=f|l;a=a+(l+1)|0}if((a|0)!=(Kc(10,b)|0))Ha(18985,19049,338,19118);if((f|0)==(b|0)){i=m;return}else Ha(19100,19049,339,19118)}function ie(a){a=a|0;Yp(a);return}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2348]|0;c[e>>2]=19140;Kp(m,20350,e)|0;kb(1)}if(d>>>0>>0){m=c[2348]|0;c[f>>2]=19140;Kp(m,20418,f)|0;kb(1)}m=Xp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Xp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=ke(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0>>0);d=ke(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2348]|0;c[e>>2]=19140;Kp(o,20497,e)|0;kb(1)}if(!d){o=c[2348]|0;c[f>>2]=19140;Kp(o,20569,f)|0;kb(1)}n=Xp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Xp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=yk(l,0)|0;e=e+1|0}while(e>>>0>>0);a=n+8|0;c[a>>2]=k;a=lk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;mk(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=yk(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=lk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;mk(a);i=p;return n|0}function le(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19140;Kp(n,20637,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19140;Kp(n,20715,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19140;Kp(n,20792,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19140;Kp(n,20881,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=je(b,g,h)|0;i=m;return n|0}return 0}function me(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{zk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);pk(c[b+16>>2]|0);Yp(b);Yp(c[a>>2]|0);Yp(a);return}function ne(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{zk(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);pk(c[a+16>>2]|0);Yp(a);return}function oe(a){a=a|0;mk(c[(c[a+16>>2]|0)+16>>2]|0);return}function pe(a){a=a|0;mk(c[a+16>>2]|0);return}function qe(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();o=n;m=n+8|0;l=a+16|0;ok(c[(c[l>>2]|0)+16>>2]|0,b);f=a+12|0;if(!(c[f>>2]|0)){i=n;return}a=0;while(1){h=c[l>>2]|0;k=d+(a<<2)|0;e=c[h+12>>2]|0;if(e>>>0<=a>>>0){f=4;break}nk(c[h+16>>2]|0,m);Ak(c[(c[h+20>>2]|0)+(a<<2)>>2]|0,c[m>>2]|0,k);g[k>>2]=+g[h+24>>2]*+g[k>>2];a=a+1|0;if(a>>>0>=(c[f>>2]|0)>>>0){f=6;break}}if((f|0)==4){n=c[2348]|0;c[o>>2]=a;c[o+4>>2]=e;Kp(n,20971,o)|0;kb(1)}else if((f|0)==6){i=n;return}}function re(a,b){a=a|0;b=+b;ok(c[a+16>>2]|0,b);return}function se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){nk(c[a+16>>2]|0,f);Ak(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);g[d>>2]=+g[a+24>>2]*+g[d>>2];i=k;return}else{k=c[2348]|0;c[h>>2]=b;c[h+4>>2]=e;Kp(k,20971,h)|0;kb(1)}}function te(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2348]|0;c[g>>2]=19140;Kp(n,21040,g)|0;kb(1)}if(d>>>0<2){n=c[2348]|0;c[h>>2]=19140;Kp(n,21121,h)|0;kb(1)}if(!e){n=c[2348]|0;c[k>>2]=19140;Kp(n,21203,k)|0;kb(1)}if(f<0.0|f>1.0){n=c[2348]|0;c[l>>2]=19140;Kp(n,21276,l)|0;kb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=ke(b,g,h)|0;i=m;return n|0}return 0}function ue(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();m=s+24|0;l=s+16|0;k=s+8|0;h=s;if(!b){r=c[2348]|0;c[h>>2]=19140;Kp(r,19145,h)|0;kb(1)}if(d>>>0<2){r=c[2348]|0;c[k>>2]=19140;Kp(r,19227,k)|0;kb(1)}if(!e){r=c[2348]|0;c[l>>2]=19140;Kp(r,19310,l)|0;kb(1)}if(f<0.0|f>1.0){r=c[2348]|0;c[m>>2]=19140;Kp(r,19384,m)|0;kb(1)}o=_(_(b<<1,d)|0,e)|0;r=o|1;p=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,p);q=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=p+(o<<2)|0;n=+g[p>>2];d=(_(_(e,d)|0,b)|0)<<1|1;h=p+4|0;k=p+(o+-1<<2)|0;l=q+(o<<2)|0;f=0.0;m=0;do{do if(m)if((m|0)==(o|0)){g[l>>2]=n-+g[k>>2];break}else{g[q+(m<<2)>>2]=+g[p+(m+1<<2)>>2]-+g[p+(m+-1<<2)>>2];break}else g[q>>2]=+g[h>>2]-+g[a>>2];while(0);t=+N(+(+g[p+(m<<2)>>2]*+g[q+(m<<2)>>2]));f=t>f?t:f;m=m+1|0}while((m|0)!=(d|0));h=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();k=0;do{g[h+(k<<2)>>2]=+g[q+(k<<2)>>2]*.05999999865889549/f;k=k+1|0}while((k|0)!=(d|0));b=ke(b,h,r)|0;i=s;return b|0}function ve(a,b,d,e,f){a=+a;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();l=q+32|0;n=q+24|0;m=q+16|0;k=q+8|0;h=q;if(a<=0.0){p=c[2348]|0;c[h>>2]=19140;Kp(p,19470,h)|0;kb(1)}if(!b){p=c[2348]|0;c[k>>2]=19140;Kp(p,19540,k)|0;kb(1)}if(!f){p=c[2348]|0;c[m>>2]=19140;Kp(p,19613,m)|0;kb(1)}if(d<=0.0|d>=.5){p=c[2348]|0;c[n>>2]=19140;Kp(p,19690,n)|0;kb(1)}if(e<=0.0){p=c[2348]|0;c[l>>2]=19140;Kp(p,19751,l)|0;kb(1)}p=Xp(56)|0;g[p+12>>2]=a;g[p+16>>2]=1.0/a;c[p>>2]=b;g[p+8>>2]=d;g[p+4>>2]=e;c[p+44>>2]=f;l=_(b<<1,f)|0;h=l|1;m=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();n=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=+(f>>>0);Xe(h,d/o,e,0.0,m);k=(_(b,f)|0)<<1|1;a=0.0;h=0;do{a=a+ +g[m+(h<<2)>>2];h=h+1|0}while((h|0)!=(k|0));a=o/a;h=0;do{g[n+(h<<2)>>2]=a*+g[m+(h<<2)>>2];h=h+1|0}while((h|0)!=(k|0));f=ke(f,n,l)|0;c[p+48>>2]=f;mk(c[f+16>>2]|0);c[p+52>>2]=1;f=p+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;i=q;return p|0}function we(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+48>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{zk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);pk(c[b+16>>2]|0);Yp(b);Yp(a);return}function xe(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;k=k|0;var 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.0,G=0.0;E=i;i=i+32|0;if((i|0)>=(j|0))ba();A=E+24|0;C=E+16|0;B=E+8|0;z=E;y=E+28|0;D=a+28|0;if(!h){C=a+44|0;d=0;B=0;c[e>>2]=d;c[k>>2]=B;e=c[D>>2]|0;k=c[C>>2]|0;k=e>>>0>>0;k=k&1;i=E;return k|0}q=a+32|0;r=a+48|0;m=a+44|0;s=a+52|0;t=a+36|0;u=a+20|0;v=a+24|0;w=a+40|0;p=a+16|0;n=0;x=0;a:while(1){l=c[D>>2]|0;b:while(1){if(!l)if(+g[q>>2]==0.0){if((n|0)==(d|0)){l=d;a=x;o=25;break a}ok(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);l=c[D>>2]|0;n=n+1|0}else l=0;a=c[m>>2]|0;if(l>>>0>=a>>>0)do{if((n|0)==(d|0)){l=d;a=x;o=25;break a}g[u>>2]=+g[u>>2]+-1.0;g[v>>2]=+g[v>>2]-+(a>>>0);c[D>>2]=l-a;ok(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);n=n+1|0;l=c[D>>2]|0;a=c[m>>2]|0}while(l>>>0>=a>>>0);switch(c[s>>2]|0){case 0:{l=n;o=16;break b}case 1:break;default:{o=24;break a}}o=c[r>>2]|0;a=c[o+12>>2]|0;if(a>>>0<=l>>>0){o=19;break a}nk(c[o+16>>2]|0,y);Ak(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,t);g[t>>2]=+g[o+24>>2]*+g[t>>2];a=c[D>>2]|0;l=c[m>>2]|0;if((a|0)!=(l+-1|0)){l=a;o=20;break}c[s>>2]=0;c[D>>2]=l}if((o|0)==16){a=c[r>>2]|0;if(!(c[a+12>>2]|0)){o=17;break}nk(c[a+16>>2]|0,y);Ak(c[c[a+20>>2]>>2]|0,c[y>>2]|0,w);F=+g[a+24>>2]*+g[w>>2];g[w>>2]=F;G=+g[q>>2];g[f+(x<<2)>>2]=(1.0-G)*+g[t>>2]+G*F;F=+g[p>>2]+ +g[u>>2];g[u>>2]=F;F=F*+((c[m>>2]|0)>>>0);g[v>>2]=F;o=~~+M(+F);c[D>>2]=o;g[q>>2]=F-+(o|0);c[s>>2]=1}else if((o|0)==20){o=c[r>>2]|0;a=c[o+12>>2]|0;l=l+1|0;if(a>>>0<=l>>>0){o=21;break}nk(c[o+16>>2]|0,y);Ak(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,w);G=+g[o+24>>2]*+g[w>>2];g[w>>2]=G;F=+g[q>>2];g[f+(x<<2)>>2]=(1.0-F)*+g[t>>2]+F*G;G=+g[p>>2]+ +g[u>>2];g[u>>2]=G;G=G*+((c[m>>2]|0)>>>0);g[v>>2]=G;l=~~+M(+G);c[D>>2]=l;g[q>>2]=G-+(l|0);l=n}a=x+1|0;if(a>>>0>>0){n=l;x=a}else{o=25;break}}if((o|0)==17){E=c[2348]|0;c[z>>2]=0;c[z+4>>2]=0;Kp(E,20971,z)|0;kb(1)}else if((o|0)==19){E=c[2348]|0;c[B>>2]=l;c[B+4>>2]=a;Kp(E,20971,B)|0;kb(1)}else if((o|0)==21){E=c[2348]|0;c[C>>2]=l;c[C+4>>2]=a;Kp(E,20971,C)|0;kb(1)}else if((o|0)==24){E=c[2348]|0;c[A>>2]=19140;Kp(E,19834,A)|0;kb(1)}else if((o|0)==25){c[e>>2]=l;c[k>>2]=a;e=c[D>>2]|0;k=c[m>>2]|0;k=e>>>0>>0;k=k&1;i=E;return k|0}return 0}function ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;if(!d){g=c[2348]|0;c[e>>2]=19885;Kp(g,19890,e)|0;kb(1)}if(!a){g=c[2348]|0;c[f>>2]=19885;Kp(g,19957,f)|0;kb(1)}g=Xp(20)|0;c[g+4>>2]=d;c[g+8>>2]=a;e=Xp(d<<2)|0;c[g>>2]=e;f=d+-1|0;a=0;do{c[e+(a<<2)>>2]=c[b+(f-a<<2)>>2];a=a+1|0}while(a>>>0>>0);b=qk(d)|0;c[g+12>>2]=b;c[g+16>>2]=vk(e,d)|0;rk(b);i=h;return g|0}function ze(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19885;Kp(n,20028,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19885;Kp(n,20106,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19885;Kp(n,20179,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,20264,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=ye(b,g,h)|0;i=m;return n|0}return 0}function Ae(a){a=a|0;uk(c[a+12>>2]|0);wk(c[a+16>>2]|0);Yp(c[a>>2]|0);Yp(a);return}function Be(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();f=n+16|0;m=n+8|0;g=n;h=a+8|0;if(!(c[h>>2]|0)){i=n;return}k=a+12|0;l=g+4|0;a=a+16|0;e=0;do{o=c[k>>2]|0;p=c[b+(e<<3)+4>>2]|0;c[g>>2]=c[b+(e<<3)>>2];c[l>>2]=p;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];tk(o,f);if(!e){sk(c[k>>2]|0,m);xk(c[a>>2]|0,c[m>>2]|0,d)}e=e+1|0}while(e>>>0<(c[h>>2]|0)>>>0);i=n;return}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2348]|0;c[e>>2]=19885;Kp(m,20350,e)|0;kb(1)}if(d>>>0>>0){m=c[2348]|0;c[f>>2]=19885;Kp(m,20418,f)|0;kb(1)}m=Xp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Xp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=De(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0>>0);d=De(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2348]|0;c[e>>2]=19885;Kp(o,20497,e)|0;kb(1)}if(!d){o=c[2348]|0;c[f>>2]=19885;Kp(o,20569,f)|0;kb(1)}n=Xp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Xp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=vk(l,0)|0;e=e+1|0}while(e>>>0>>0);a=n+8|0;c[a>>2]=k;a=qk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;rk(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=vk(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=qk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;rk(a);i=p;return n|0}function Ee(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19885;Kp(n,20637,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19885;Kp(n,20715,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19885;Kp(n,20792,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,20881,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=Ce(b,g,h)|0;i=m;return n|0}return 0}function Fe(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{wk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);uk(c[b+16>>2]|0);Yp(b);Yp(c[a>>2]|0);Yp(a);return}function Ge(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{wk(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);uk(c[a+16>>2]|0);Yp(a);return}function He(a){a=a|0;rk(c[(c[a+16>>2]|0)+16>>2]|0);return}function Ie(a){a=a|0;rk(c[a+16>>2]|0);return}function Je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();k=m+16|0;n=m;f=m+8|0;l=a+16|0;e=c[b+4>>2]|0;h=c[(c[l>>2]|0)+16>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];tk(h,k);h=a+12|0;if(!(c[h>>2]|0)){i=m;return}a=0;while(1){e=c[l>>2]|0;f=d+(a<<3)|0;b=c[e+12>>2]|0;if(b>>>0<=a>>>0){e=4;break}sk(c[e+16>>2]|0,k);xk(c[(c[e+20>>2]|0)+(a<<2)>>2]|0,c[k>>2]|0,f);p=+g[e+24>>2];e=d+(a<<3)+4|0;o=p*+g[e>>2];g[f>>2]=p*+g[f>>2];g[e>>2]=o;a=a+1|0;if(a>>>0>=(c[h>>2]|0)>>>0){e=6;break}}if((e|0)==4){m=c[2348]|0;c[n>>2]=a;c[n+4>>2]=b;Kp(m,20971,n)|0;kb(1)}else if((e|0)==6){i=m;return}}function Ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d+8|0;f=d;a=c[a+16>>2]|0;g=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(a,e);i=d;return}function Le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){sk(c[a+16>>2]|0,f);xk(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);m=+g[a+24>>2];h=d+4|0;l=m*+g[h>>2];g[d>>2]=m*+g[d>>2];g[h>>2]=l;i=k;return}else{k=c[2348]|0;c[h>>2]=b;c[h+4>>2]=e;Kp(k,20971,h)|0;kb(1)}}function Me(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2348]|0;c[g>>2]=19885;Kp(n,21040,g)|0;kb(1)}if(d>>>0<2){n=c[2348]|0;c[h>>2]=19885;Kp(n,21121,h)|0;kb(1)}if(!e){n=c[2348]|0;c[k>>2]=19885;Kp(n,21203,k)|0;kb(1)}if(f<0.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,21276,l)|0;kb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=De(b,g,h)|0;i=m;return n|0}return 0}function Ne(a,b){a=a|0;b=+b;g[a+24>>2]=b;return}function Oe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();h=q+8|0;f=q;if(!b){p=c[2348]|0;c[f>>2]=19885;Kp(p,21361,f)|0;kb(1)}if(!e){p=c[2348]|0;c[h>>2]=19885;Kp(p,21422,h)|0;kb(1)}p=Xp(36)|0;c[p+16>>2]=b;l=p+20|0;c[l>>2]=e;o=e>>>0>b>>>0?e:b;n=p+12|0;c[n>>2]=o;c[p+24>>2]=0;k=p+4|0;c[k>>2]=Xp(e<<2)|0;f=Xp(b<<2)|0;c[p>>2]=f;m=+g[d>>2];h=0;do{g[f+(h<<2)>>2]=+g[a+(h<<2)>>2]/m;h=h+1|0}while(h>>>0>>0);e=c[k>>2]|0;f=c[l>>2]|0;h=0;do{g[e+(h<<2)>>2]=+g[d+(h<<2)>>2]/m;h=h+1|0}while(h>>>0>>0);e=Xp(o<<3)|0;c[p+8>>2]=e;if(!o){i=q;return p|0}f=c[n>>2]|0;h=0;do{g[e+(h<<3)>>2]=0.0;g[e+(h<<3)+4>>2]=0.0;h=h+1|0}while(h>>>0>>0);i=q;return p|0}function Pe(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;var k=0,l=0,m=0,n=0,o=0,p=0;p=i;k=d<<((b|1|0)==3&1);o=k&1;n=(c|0)==0;o=((k-o|0)>>>1)+o|0;k=n?o*3|0:k+1|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Bf(a,b,c,d,e,f,g,h,l,m);b=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(k|0){d=k<<2;fq(b|0,l|0,d|0)|0;fq(c|0,m|0,d|0)|0}if(n){o=Qe(b,c,o)|0;i=p;return o|0}else{o=Oe(b,k,c,k)|0;i=p;return o|0}return 0}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=i;i=i+32|0;if((i|0)>=(j|0))ba();e=t;r=t+16|0;s=t+4|0;if(!d){q=c[2348]|0;c[e>>2]=19885;Kp(q,21485,e)|0;kb(1)}p=Xp(36)|0;c[p+24>>2]=1;c[p+32>>2]=d;q=Xp(d<<2)|0;c[p+28>>2]=q;c[p+12>>2]=d<<1;e=d*12|0;n=Xp(e)|0;c[p>>2]=n;o=Xp(e)|0;c[p+4>>2]=o;fq(n|0,a|0,e|0)|0;fq(o|0,b|0,e|0)|0;e=s+4|0;b=s+8|0;a=r+4|0;f=r+8|0;k=0;do{l=k*3|0;h=n+(l<<2)|0;l=o+(l<<2)|0;c[r>>2]=c[l>>2];c[r+4>>2]=c[l+4>>2];c[r+8>>2]=c[l+8>>2];c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[s+8>>2]=c[h+8>>2];h=Xp(96)|0;u=+g[r>>2];g[h>>2]=+g[s>>2]/u;g[h+4>>2]=+g[e>>2]/u;g[h+8>>2]=+g[b>>2]/u;g[h+12>>2]=u/u;g[h+16>>2]=+g[a>>2]/u;g[h+20>>2]=+g[f>>2]/u;l=h+24|0;m=l+72|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[q+(k<<2)>>2]=h;k=k+1|0}while(k>>>0>>0);i=t;return p|0}function Re(a){a=a|0;var b=0,d=0,e=0;Yp(c[a>>2]|0);Yp(c[a+4>>2]|0);if((c[a+24>>2]|0)!=1){Yp(c[a+8>>2]|0);Yp(a);return}b=a+32|0;d=a+28|0;if(c[b>>2]|0){e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(a);return}function Se(a){a=a|0;var b=0,d=0,e=0,f=0;if((c[a+24>>2]|0)==1){f=a+32|0;if(!(c[f>>2]|0))return;a=a+28|0;b=0;do{d=(c[(c[a>>2]|0)+(b<<2)>>2]|0)+24|0;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));b=b+1|0}while(b>>>0<(c[f>>2]|0)>>>0);return}else{d=a+12|0;if(!(c[d>>2]|0))return;a=a+8|0;b=0;do{f=c[a>>2]|0;g[f+(b<<3)>>2]=0.0;g[f+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}}function Te(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0;l=c[b>>2]|0;j=c[b+4>>2]|0;if(c[a+24>>2]|0){i=a+32|0;if(!(c[i>>2]|0)){h=0;b=0}else{f=(c[k>>2]=j,+g[k>>2]);b=a+28|0;h=0;e=(c[k>>2]=l,+g[k>>2]);do{a=c[(c[b>>2]|0)+(h<<2)>>2]|0;x=a+80|0;u=c[x>>2]|0;w=a+84|0;t=c[w>>2]|0;c[a+88>>2]=u;c[a+92>>2]=t;j=a+72|0;v=c[j>>2]|0;l=a+76|0;o=+g[l>>2];c[x>>2]=v;g[w>>2]=o;p=+g[a+16>>2];s=(c[k>>2]=v,+g[k>>2]);q=+g[a+20>>2];r=(c[k>>2]=u,+g[k>>2]);m=(c[k>>2]=t,+g[k>>2]);e=e-s*p-r*q;q=f-o*p-m*q;g[j>>2]=e;g[l>>2]=q;p=+g[a>>2];n=+g[a+4>>2];f=+g[a+8>>2];e=e*p+s*n+r*f;f=q*p+o*n+m*f;h=h+1|0}while(h>>>0<(c[i>>2]|0)>>>0);h=(g[k>>2]=e,c[k>>2]|0);b=(g[k>>2]=f,c[k>>2]|0)}c[d>>2]=h;c[d+4>>2]=b;return}b=c[a+12>>2]|0;h=b+-1|0;if(h|0){i=a+8|0;while(1){w=b+-2|0;b=c[i>>2]|0;x=c[b+(w<<3)+4>>2]|0;c[b+(h<<3)>>2]=c[b+(w<<3)>>2];c[b+(h<<3)+4>>2]=x;b=h+-1|0;if(!b)break;else{x=h;h=b;b=x}}}f=(c[k>>2]=l,+g[k>>2]);e=(c[k>>2]=j,+g[k>>2]);i=c[a+20>>2]|0;if(i>>>0>1){j=c[a+4>>2]|0;h=a+8|0;b=c[h>>2]|0;l=1;do{s=+g[j+(l<<2)>>2];f=f-s*+g[b+(l<<3)>>2];e=e-s*+g[b+(l<<3)+4>>2];l=l+1|0}while((l|0)!=(i|0))}else{b=a+8|0;h=b;b=c[b>>2]|0}g[b>>2]=f;g[b+4>>2]=e;j=c[a+16>>2]|0;if(!j){f=0.0;e=0.0}else{i=c[a>>2]|0;b=c[h>>2]|0;h=0;f=0.0;e=0.0;do{s=+g[i+(h<<2)>>2];f=f+s*+g[b+(h<<3)>>2];e=e+s*+g[b+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(j|0))}g[d>>2]=f;g[d+4>>2]=e;return}function Ue(a,b){a=a|0;b=+b;return Pe(0,0,0,a,b,0.0,.10000000149011612,60.0)|0}function Ve(a){a=+a;var b=0,c=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b+8|0;c=b;g[d>>2]=1.0;g[d+4>>2]=-1.0;g[c>>2]=1.0;g[c+4>>2]=a+-1.0;c=Oe(d,2,c,2)|0;i=b;return c|0}function We(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,k=0.0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n+8|0;d=n;f=a*14.260000228881836;e=+(b>>>0);if(a>.5|a<=0.0){b=c[2348]|0;h[d>>3]=a;Kp(b,21629,d)|0;kb(1)}else{g=.009999999776482582;k=200.0;l=0}while(1){a=(k+g)*.5;if(a<=0.0){b=4;break}b=(a+-7.949999809265137)/f>>0>=20){b=6;break}else{g=b?a:g;k=b?k:a}}if((b|0)==4){n=c[2348]|0;h[m>>3]=a;Kp(n,21566,m)|0;kb(1)}else if((b|0)==6){i=n;return +a}return +(0.0)}function Xe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=f|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();l=o+8|0;k=o;if(e<-.5|e>.5){p=c[2348]|0;h[k>>3]=e;Kp(p,21694,k)|0;kb(1)}if(b<0.0|b>.5){p=c[2348]|0;h[l>>3]=b;Kp(p,21763,l)|0;kb(1)}if(!a){Qp(21843,71,1,c[2348]|0)|0;kb(1)}d=+N(+d);if(!(d>50.0))if(d>21.0){n=d+-21.0;n=n*.07885999977588654+ +P(+n,.4000000059604645)*.5842}else n=0.0;else n=(d+-8.699999809265137)*.11020000278949738;m=+((a+-1|0)>>>0)*.5;d=b*2.0;k=0;do{b=+Qh(d*(+(k>>>0)-m+e));g[f+(k<<2)>>2]=b*+Uh(k,a,n,e);k=k+1|0}while((k|0)!=(a|0));i=o;return}function Ye(a,b,d,e,f,k){a=a|0;b=b|0;d=d|0;e=+e;f=+f;k=k|0;var l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+80|0;if((i|0)>=(j|0))ba();A=E+16|0;z=E+8|0;m=E;x=E+56|0;y=E+44|0;B=E+32|0;C=E+20|0;t=_(b<<1,d)|0|1;u=+(b>>>0);v=.5/u;w=e/u;n=w*14.260000228881836;o=+(t>>>0);if(w>.5|w<=0.0){F=c[2348]|0;h[m>>3]=w;Kp(F,21629,m)|0;kb(1)}else{p=.009999999776482582;q=200.0;r=0}while(1){l=(p+q)*.5;if(l<=0.0){D=4;break}m=(l+-7.949999809265137)/n>>0>=20){s=l;break}else{p=m?l:p;q=m?q:l}}if((D|0)==4){F=c[2348]|0;h[z>>3]=l;Kp(F,21566,z)|0;kb(1)}g[x>>2]=0.0;w=w*.5;g[x+4>>2]=v-w;g[x+8>>2]=v;g[x+12>>2]=v;g[x+16>>2]=v+w;g[x+20>>2]=.5;g[y>>2]=u;g[y+4>>2]=u*.5;g[y+8>>2]=0.0;c[B>>2]=c[133];c[B+4>>2]=c[134];c[B+8>>2]=c[135];c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;do switch(a|0){case 1:{Xe(t,v,s,f,k);i=E;return}case 2:{$e(t,3,x,y,B,C,0,k);i=E;return}case 3:{Cf(b,d,e,f,k);i=E;return}case 4:{mf(b,d,e,f,k);i=E;return}case 5:{of(b,d,e,f,k);i=E;return}case 6:{qf(b,d,e,f,k);i=E;return}case 7:{Hf(b,d,e,f,k);i=E;return}case 8:{Df(b,d,e,f,k);i=E;return}case 9:{If(b,d,e,f,k);i=E;return}case 10:{uf(b,d,e,f,k);i=E;return}case 11:{sf(b,d,e,f,k);i=E;return}case 12:{tf(b,d,e,f,k);i=E;return}case 13:{nf(b,d,e,f,k);i=E;return}case 14:{pf(b,d,e,f,k);i=E;return}case 15:{rf(b,d,e,f,k);i=E;return}default:{F=c[2348]|0;c[A>>2]=a;Kp(F,21915,A)|0;kb(1)}}while(0)}function Ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0;n=_(b<<1,c)|0|1;i=0;f=0.0;do{l=+g[a+(i<<2)>>2];f=f+l*l;i=i+1|0}while((i|0)!=(n|0));l=f;m=c<<1;if(!m){l=0.0;h=0.0;j=+(m>>>0);j=h/j;j=+O(+j);g[d>>2]=j;g[e>>2]=l;return}else{k=1;h=0.0;f=0.0}do{i=_(k,b)|0;i=(i|0)>-1?i:0-i|0;if(i>>>0>>0){c=i;j=0.0;do{j=j+ +g[a+(c<<2)>>2]*+g[a+(c-i<<2)>>2];c=c+1|0}while((c|0)!=(n|0))}else j=0.0;j=+N(+(j/l));f=f+j*j;h=(k|0)==1|j>h?j:h;k=k+1|0}while(k>>>0<=m>>>0);l=+(m>>>0);l=f/l;l=+O(+l);g[d>>2]=l;g[e>>2]=h;return}function _e(a){a=a|0;if(dp(a,21988)|0)if(dp(a,21995)|0)if(dp(a,21998)|0)if(dp(a,22003)|0)if(dp(a,22008)|0)if(dp(a,22014)|0)if(dp(a,22023)|0)if(dp(a,22032)|0)if(dp(a,22040)|0)if(dp(a,22046)|0)if(dp(a,22050)|0)if(dp(a,22057)|0)if(dp(a,22064)|0)if(!(dp(a,22070)|0))a=14;else{a=(dp(a,22077)|0)==0;a=a?15:0}else a=13;else a=12;else a=11;else a=10;else a=9;else a=8;else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;return a|0}function $e(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|0;h=h|0;f=af(a,b,c,d,e,f,g)|0;cf(f,h);gf(f);return}function af(a,b,d,e,f,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0.0;m=b<<1;if(m){k=1;l=0;do{o=+g[d+(l<<2)>>2];k=o<=.5&o>=0.0&1&k;l=l+1|0}while((l|0)!=(m|0));if(m>>>0>1){o=+g[d>>2];l=1;do{t=o;o=+g[d+(l<<2)>>2];k=o>=t&k;l=l+1|0}while((l|0)!=(m|0))}}else k=1;n=(b|0)==0;if(n)l=1;else{m=0;l=1;do{l=+g[f+(m<<2)>>2]>0.0&l;m=m+1|0}while((m|0)!=(b|0))}if(!k){Qp(22087,40,1,c[2348]|0)|0;kb(1)}if(!l){Qp(22128,61,1,c[2348]|0)|0;kb(1)}if(n){Qp(22190,54,1,c[2348]|0)|0;kb(1)}s=Xp(104)|0;c[s>>2]=a;q=a&1;c[s+4>>2]=q;p=(a-q|0)>>>1;c[s+8>>2]=p;q=p+q|0;p=s+12|0;c[p>>2]=q;c[s+28>>2]=j;c[s+88>>2]=Xp((q<<2)+4|0)|0;q=(q<<3)+8|0;c[s+64>>2]=Xp(q)|0;c[s+68>>2]=Xp(q)|0;c[s+72>>2]=Xp(q)|0;q=s+16|0;c[q>>2]=b;r=s+32|0;c[r>>2]=Xp(b<<4)|0;k=b<<3;n=s+36|0;c[n>>2]=Xp(k)|0;j=s+40|0;c[j>>2]=Xp(k)|0;k=Xp(b<<2)|0;m=s+44|0;c[m>>2]=k;if(!i){c[k>>2]=0;k=c[q>>2]|0;if(k>>>0>1){l=1;do{c[(c[m>>2]|0)+(l<<2)>>2]=0;l=l+1|0;k=c[q>>2]|0}while(l>>>0>>0)}}else{c[k>>2]=c[i>>2];k=c[q>>2]|0;if(k>>>0>1){l=1;do{c[(c[m>>2]|0)+(l<<2)>>2]=c[i+(l<<2)>>2];l=l+1|0;k=c[q>>2]|0}while(l>>>0>>0)}}if(k|0){a=c[r>>2]|0;n=c[n>>2]|0;m=c[j>>2]|0;if(!f){l=0;do{f=l<<1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];f=f|1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];h[n+(l<<3)>>3]=+g[e+(l<<2)>>2];h[m+(l<<3)>>3]=1.0;l=l+1|0}while(l>>>0>>0)}else{l=0;do{i=l<<1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];i=i|1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];h[n+(l<<3)>>3]=+g[e+(l<<2)>>2];h[m+(l<<3)>>3]=+g[f+(l<<2)>>2];l=l+1|0}while(l>>>0>>0)}}c[s+24>>2]=20;a=s+20|0;c[a>>2]=0;o=.5/+(((c[p>>2]|0)*20|0)>>>0);n=c[q>>2]|0;if(!n){d=0;f=Xp(d)|0;e=s+48|0;c[e>>2]=f;e=Xp(d)|0;f=s+52|0;c[f>>2]=e;f=Xp(d)|0;e=s+56|0;c[e>>2]=f;d=Xp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;bf(s);return s|0}l=c[r>>2]|0;k=0;m=0;do{e=m<<1;k=(~~((+h[l+((e|1)<<3)>>3]-+h[l+(e<<3)>>3])/o+1.0)>>>0)+k|0;m=m+1|0}while(m>>>0>>0);c[a>>2]=k;d=k<<3;f=Xp(d)|0;e=s+48|0;c[e>>2]=f;e=Xp(d)|0;f=s+52|0;c[f>>2]=e;f=Xp(d)|0;e=s+56|0;c[e>>2]=f;d=Xp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;bf(s);return s|0}function bf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0.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.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;if((i|0)>=(j|0))ba();A=D;x=.5/+((_(c[a+12>>2]|0,c[a+24>>2]|0)|0)>>>0);y=a+16|0;a:do if(!(c[y>>2]|0)){B=a+28|0;C=0}else{m=a+32|0;n=a+28|0;o=a+48|0;p=a+96|0;q=a+36|0;r=a+52|0;s=a+44|0;t=a+40|0;u=a+56|0;v=a+100|0;z=0;d=0;b:while(1){l=z<<1;f=c[m>>2]|0;g=+h[f+(l<<3)>>3];w=+h[f+((l|1)<<3)>>3];if((z|0)==0?(c[n>>2]|0)!=0:0)g=g>>0;e=(e|0)==0?1:e;f=0;l=d;while(1){k=g+x*+(f>>>0);h[(c[o>>2]|0)+(l<<3)>>3]=k;b=c[p>>2]|0;if(!b){h[(c[r>>2]|0)+(l<<3)>>3]=+h[(c[q>>2]|0)+(z<<3)>>3];b=c[(c[s>>2]|0)+(z<<2)>>2]|0;switch(b|0){case 0:{k=1.0;break}case 1:{k=+X(+(x*(+(f>>>0)*2.0)));break}case 2:{k=x*(+(f>>>0)*2.700000047683716)+1.0;break}default:break b}h[(c[u>>2]|0)+(l<<3)>>3]=k*+h[(c[t>>2]|0)+(z<<3)>>3]}else sb[b&0](k,c[v>>2]|0,(c[r>>2]|0)+(l<<3)|0,(c[u>>2]|0)+(l<<3)|0)|0;d=l+1|0;f=f+1|0;if(f>>>0>=e>>>0){b=l;break}else l=d}l=c[y>>2]|0;h[(c[o>>2]|0)+(b<<3)>>3]=w;z=z+1|0;if(z>>>0>=l>>>0){B=n;C=d;break a}}z=c[2348]|0;c[A>>2]=b;Kp(z,22245,A)|0;kb(1)}while(0);c[a+20>>2]=C;d=(c[a+4>>2]|0)==0;if(!(c[B>>2]|0)){if((C|0)==0|d^1){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+Q(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+Q(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0>>0);i=D;return}b=(C|0)!=0;if(d){if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0>>0);i=D;return}else{if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*6.283185307179586));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*6.283185307179586));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0>>0);i=D;return}}function cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.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.0,x=0;v=a+12|0;d=c[v>>2]|0;t=a+20|0;u=a+88|0;if((d|0)!=-1){f=c[u>>2]|0;e=0;do{c[f+(e<<2)>>2]=((_((c[t>>2]|0)+-1|0,e)|0)>>>0)/(d>>>0)|0;e=e+1|0;d=c[v>>2]|0}while(e>>>0<(d+1|0)>>>0)}m=a+92|0;n=a+60|0;o=a+48|0;p=a+64|0;q=a+72|0;r=a+68|0;k=a+56|0;l=a+52|0;s=0;while(1){df(a);if(c[t>>2]|0){d=0;do{i=+Q(+(+h[(c[o>>2]|0)+(d<<3)>>3]*6.283185307179586));i=+Lh(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,i,(c[v>>2]|0)+1|0);h[(c[n>>2]|0)+(d<<3)>>3]=+h[(c[k>>2]|0)+(d<<3)>>3]*(+h[(c[l>>2]|0)+(d<<3)>>3]-i);d=d+1|0}while(d>>>0<(c[t>>2]|0)>>>0)}ef(a);if(!(c[m>>2]|0)){d=12;break}d=c[v>>2]|0;if((d|0)==-1){i=0.0;g=0.0}else{e=c[u>>2]|0;f=c[n>>2]|0;i=0.0;g=0.0;j=0;while(1){w=+N(+(+h[f+(c[e+(j<<2)>>2]<<3)>>3]));x=(j|0)==0;g=x|wi?w:i;if((j|0)==(d|0))break;else j=j+1|0}}s=s+1|0;if(!(s>>>0<40?!((i-g)/i<1.0000000474974513e-03):0)){d=12;break}}if((d|0)==12){ff(a,b);return}}function df(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;k=a+12|0;f=(c[k>>2]|0)+1|0;if(!f){f=0;d=c[a+64>>2]|0}else{g=c[a+88>>2]|0;i=c[a+48>>2]|0;d=c[a+64>>2]|0;j=0;do{h[d+(j<<3)>>3]=+Q(+(+h[i+(c[g+(j<<2)>>2]<<3)>>3]*6.283185307179586));j=j+1|0}while(j>>>0>>0)}g=a+68|0;Kh(d,f,c[g>>2]|0);n=c[k>>2]|0;m=(n|0)==-1;if(m){h[a+80>>3]=r;return}d=c[g>>2]|0;f=c[a+88>>2]|0;g=c[a+52>>2]|0;i=c[a+56>>2]|0;j=n+1|0;k=0;e=0.0;b=0.0;do{o=+h[d+(k<<3)>>3];l=c[f+(k<<2)>>2]|0;e=e+o*+h[g+(l<<3)>>3];b=b+(k&1|0?-1.0:1.0)*(o/+h[i+(l<<3)>>3]);k=k+1|0}while(k>>>0>>0);b=e/b;l=a+80|0;h[l>>3]=b;if(m)return;i=c[a+88>>2]|0;j=c[a+52>>2]|0;k=c[a+56>>2]|0;g=c[a+72>>2]|0;f=n+1|0;d=0;while(1){a=c[i+(d<<2)>>2]|0;h[g+(d<<3)>>3]=+h[j+(a<<3)>>3]-+((d<<1&2^2)+-1|0)*b/+h[k+(a<<3)>>3];d=d+1|0;if(d>>>0>=f>>>0)break;b=+h[l>>3]}return}function ef(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();n=r;l=c[a+12>>2]|0;m=(c[a+16>>2]|0)+l<<1;q=i;i=i+((1*(m<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c[q>>2]=0;f=(c[a+20>>2]|0)+-1|0;a:do if(f>>>0>1){d=c[a+60>>2]|0;e=1;b=1;while(1){g=+h[d+(e<<3)>>3];if((g>=0.0?+h[d+(e+-1<<3)>>3]<=g:0)?+h[d+(e+1<<3)>>3]<=g:0)p=9;else if((g<0.0?+h[d+(e+-1<<3)>>3]>=g:0)?+h[d+(e+1<<3)>>3]>=g:0)p=9;if((p|0)==9){p=0;if(b>>>0>=m>>>0)break;c[q+(b<<2)>>2]=e;b=b+1|0}e=e+1|0;if(e>>>0>=f>>>0){k=b;break a}}Ha(22307,22324,711,22350)}else k=1;while(0);if(k>>>0>=m>>>0)Ha(22307,22324,725,22350);d=k+1|0;c[q+(k<<2)>>2]=f;o=l+1|0;if(d>>>0>>0){q=c[2348]|0;c[n>>2]=o;c[n+4>>2]=d;Kp(q,22371,n)|0;c[a+92>>2]=0;i=r;return}if(d>>>0>m>>>0)Ha(22472,22324,742,22350);b=d-l+-1|0;if(b|0){n=c[a+60>>2]|0;m=d;l=b;while(1){b:do if(m>>>0>1){e=c[q>>2]|0;f=e;k=1;b=0;e=+h[n+(e<<3)>>3]>0.0&1;while(1){d=c[q+(k<<2)>>2]|0;g=+h[n+(d<<3)>>3];s=+N(+g);f=s<+N(+(+h[n+(f<<3)>>3]));b=f?k:b;if(!e)if(!(g>=0.0)){b=k;break}else e=1;else if(g<0.0)e=0;else{b=k;break}d=k+1|0;if(d>>>0>=m>>>0){p=29;break b}f=c[q+(b<<2)>>2]|0;k=d}s=+N(+(+h[n+(d<<3)>>3]));k=b+-1|0;f=s<+N(+(+h[n+(c[q+(k<<2)>>2]<<3)>>3]));b=f?b:k}else{b=0;p=29}while(0);if((p|0)==29){p=0;if((l|0)==1){s=+N(+(+h[n+(c[q>>2]<<3)>>3]));b=m+-1|0;k=s<+N(+(+h[n+(c[q+(b<<2)>>2]<<3)>>3]));b=k?0:b}}if(b>>>0>>0)do{k=b;b=b+1|0;c[q+(k<<2)>>2]=c[q+(b<<2)>>2]}while((b|0)!=(m|0));l=l+-1|0;if(!l)break;else m=m+-1|0}}f=a+92|0;c[f>>2]=0;b=a+88|0;if(!o){d=0;b=c[b>>2]|0}else{b=c[b>>2]|0;d=0;e=0;do{d=((c[b+(e<<2)>>2]|0)!=(c[q+(e<<2)>>2]|0)&1)+d|0;c[f>>2]=d;e=e+1|0}while(e>>>0>>0);d=o<<2}gq(b|0,q|0,d|0)|0;i=r;return}function ff(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;df(a);x=a+12|0;k=c[x>>2]|0;w=a+4|0;f=c[w>>2]|0;v=k-f|0;e=v+1|0;y=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(!e)e=c[a+28>>2]|0;else{t=a+64|0;u=a+72|0;r=a+68|0;s=a+28|0;p=k+1-f|0;f=0;while(1){d=+(f>>>0);l=+Q(+(d/+((c[a>>2]|0)>>>0)*6.283185307179586));l=+Lh(c[t>>2]|0,c[u>>2]|0,c[r>>2]|0,l,k+1|0);e=c[s>>2]|0;if((e|0)==0?(c[w>>2]|0)==0:0)d=+Q(+(d*3.141592653589793/+((c[a>>2]|0)>>>0)));else d=1.0;h[y+(f<<3)>>3]=l*d;f=f+1|0;if((f|0)==(p|0))break a;k=c[x>>2]|0}}while(0);if(e|0)switch(c[w>>2]|0){case 1:{Qp(22490,73,1,c[2348]|0)|0;i=z;return}case 0:{Qp(22490,73,1,c[2348]|0)|0;i=z;return}default:{i=z;return}}p=c[a>>2]|0;if(!p){i=z;return}q=+h[y>>3];o=+(v>>>0);m=+((1-(c[w>>2]|0)|0)>>>0)*.5;e=c[x>>2]|0;n=+(p>>>0);if(e>>>0>1)f=0;else{d=q/n;e=0;do{g[b+(e<<2)>>2]=d;e=e+1|0}while(e>>>0

>>0);i=z;return}while(1){l=(+(f>>>0)-o+m)/n*6.283185307179586;k=1;d=q;do{d=d+ +h[y+(k<<3)>>3]*2.0*+Q(+(l*+(k>>>0)));k=k+1|0}while(k>>>0>>0);g[b+(f<<2)>>2]=d/n;f=f+1|0;if(f>>>0>=p>>>0)break;e=c[x>>2]|0}i=z;return}function gf(a){a=a|0;Yp(c[a+88>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(c[a+60>>2]|0);Yp(c[a+32>>2]|0);Yp(c[a+36>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(a);return}function hf(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;q=i;if(!d){Qp(22564,58,1,c[2348]|0)|0;kb(1)}if(!e){Qp(22623,58,1,c[2348]|0)|0;kb(1)}if(f<0.0|f>1.0){Qp(22682,55,1,c[2348]|0)|0;kb(1)}p=_(d<<1,e)|0|1;l=i;i=i+((1*(p<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(a|0){case 4:{jf(d,e,f,l);break}case 5:{kf(d,e,f,l);break}case 6:{lf(d,e,f,l);break}default:{Qp(22784,65,1,c[2348]|0)|0;kb(1)}}a=_(e,d)|0;n=a<<1|1;if(!b){e=0;do{c[m+(e<<3)>>2]=c[l+(e<<2)>>2];g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}else{e=0;do{g[m+(e<<3)>>2]=+O(+(+g[l+(e<<2)>>2]));g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}fl(p,m,o,-1,0);a=a+1|0;h=+(d>>>0);f=+(p>>>0);e=0;do{g[k+(e<<2)>>2]=h*+g[o+((((a+e|0)>>>0)%(p>>>0)|0)<<3)>>2]/f;e=e+1|0}while((e|0)!=(n|0));i=q;return}function jf(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=.6931471824645996/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=l*h;i=l*i;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(ck&c>2]=0.0;break}if(c>2]=+X(+(e*(h-c)));break}else{g[d+(b<<2)>>2]=1.0-+X(+(e*(c-i)));break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function kf(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=1.316957950592041/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=l*h;i=l*i;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(ck&c>2]=0.0;break}if(c>2]=1.0/+Eo(e*(c-h));break}else{g[d+(b<<2)>>2]=1.0-1.0/+Eo(e*(i-c));break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function lf(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=1.0-d;k=+(a>>>0);n=j*.5/k;o=.5/k;h=d+1.0;k=h*.5/k;l=1.0/(o*(d*2.0));m=+((_(a<<1,b)|0|1)>>>0);f=l/(1.316957950592041/(o*d));h=o*h;i=c[2348]|0;j=o*j;a=(_(b,a)|0)<<1|1;b=0;do{d=+(b>>>0)/m;d=+N(+(d>.5?d+-1.0:d));do if(!(dn&d>2]=0.0;break}if(d1.0){Qp(22738,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(d+ +O(+(d+-1.0))*+O(+(d+1.0))))}g[e+(b<<2)>>2]=1.0-f*d;break}else{d=l*(d-j);if(d<=0.0|d>1.0){Qp(22738,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(d+ +O(+(d+-1.0))*+O(+(d+1.0))))}g[e+(b<<2)>>2]=f*d;break}}else g[e+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function mf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(4,0,a,b,c,0.0,e);return}function nf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(4,1,a,b,c,0.0,e);return}function of(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(5,0,a,b,c,0.0,e);return}function pf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(5,1,a,b,c,0.0,e);return}function qf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(6,0,a,b,c,0.0,e);return}function rf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(6,1,a,b,c,0.0,e);return}function sf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0;if(!a){Qp(22850,56,1,c[2348]|0)|0;kb(1)}if(!b){Qp(22907,56,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(22964,53,1,c[2348]|0)|0;kb(1)}i=+(a>>>0);h=+(b>>>0);d=d*6.283185307179586;b=(_(b,a)|0)<<1|1;a=0;do{j=+(a>>>0)/i-h+e;k=+Ph(d*(j+-.5)*1.2011224031448364);g[f+(a<<2)>>2]=k-+Ph(d*(j+.5)*1.2011224031448364);a=a+1|0}while((a|0)!=(b|0));d=0.0;a=0;do{d=d+ +g[f+(a<<2)>>2];a=a+1|0}while((a|0)!=(b|0));d=3.141592653589793/(d*2.0);a=0;do{l=f+(a<<2)|0;g[l>>2]=d*+g[l>>2];a=a+1|0}while((a|0)!=(b|0));a=0;do{l=f+(a<<2)|0;g[l>>2]=i*+g[l>>2];a=a+1|0}while((a|0)!=(b|0));return}function tf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0,G=0;F=i;if(!a){Qp(23018,56,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23075,56,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23132,53,1,c[2348]|0)|0;kb(1)}C=_(a<<1,b)|0|1;h=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();D=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();sf(a,b,d,0.0,h);n=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();p=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();r=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();x=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(1,a,b,d,0.0,n);E=+(a>>>0);Xe(C,(d*.1+.699999988079071)/E,60.0,0.0,o);v=_(b,a)|0;A=v<<1|1;b=0;do{G=((b+v|0)>>>0)%(C>>>0)|0;c[q+(b<<3)>>2]=c[n+(G<<2)>>2];g[q+(b<<3)+4>>2]=0.0;c[r+(b<<3)>>2]=c[o+(G<<2)>>2];g[r+(b<<3)+4>>2]=0.0;c[p+(b<<3)>>2]=c[h+(G<<2)>>2];g[p+(b<<3)+4>>2]=0.0;b=b+1|0}while((b|0)!=(A|0));fl(C,q,x,1,0);fl(C,r,y,1,0);fl(C,p,w,1,0);t=+g[x>>2];s=+g[y>>2];m=0.0;l=0.0;k=0.0;b=0;while(1){d=+g[w+(b<<3)>>2];if(b){k=d>2];l=e>2];if(e>2];d=e;b=0;while(1){t=(d-m)/e;g[z+(b<<3)>>2]=(+g[x+(b<<3)>>2]-l+1.0000000474974513e-03)/(+g[w+(b<<3)>>2]-k+1.0000000474974513e-03)*t;g[z+(b<<3)+4>>2]=t*0.0;b=b+1|0;if((b|0)==(A|0))break;d=+g[y+(b<<3)>>2]}fl(C,z,B,-1,0);h=v+1|0;e=+((_(C,a)|0)>>>0);b=0;do{g[D+(b<<2)>>2]=+g[B+((((h+b|0)>>>0)%(C>>>0)|0)<<3)>>2]/e;b=b+1|0}while((b|0)!=(A|0));b=0;do{g[f+(b<<2)>>2]=E*(E*+g[D+(b<<2)>>2]);b=b+1|0}while((b|0)!=(A|0));i=F;return}function uf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=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.0;v=i;i=i+80|0;if((i|0)>=(j|0))ba();n=v+48|0;o=v+32|0;t=v+20|0;u=v+8|0;p=v+4|0;q=v;if(a>>>0<2){Qp(23186,53,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23240,53,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23294,50,1,c[2348]|0)|0;kb(1)}h=a<<1;m=_(h,b)|0|1;w=1.0/+(h>>>0);e=w;r=d;g[n>>2]=0.0;h=n+4|0;g[h>>2]=e*(1.0-r);g[n+8>>2]=w;g[n+12>>2]=w;g[n+16>>2]=e*(r+1.0);g[n+20>>2]=.5;g[o>>2]=1.0;g[o+4>>2]=.7071067690849304;g[o+8>>2]=0.0;c[t>>2]=c[133];c[t+4>>2]=c[134];c[t+8>>2]=c[135];c[u>>2]=c[136];c[u+4>>2]=c[137];c[u+8>>2]=c[138];k=i;i=i+((1*(m<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();$e(m,3,n,o,t,u,0,k);l=m<<2;fq(f|0,k|0,l|0)|0;Ze(k,a,b,q,p);r=+g[q>>2];s=0;do{g[h>>2]=e*(1.0-+(s>>>0)*d/100.0);$e(m,3,n,o,t,u,0,k);Ze(k,a,b,q,p);w=r;r=+g[q>>2];if(r>w)break;fq(f|0,k|0,l|0)|0;s=s+1|0}while(s>>>0<100);k=(_(b,a)|0)<<1|1;e=0.0;h=0;do{w=+g[f+(h<<2)>>2];e=e+w*w;h=h+1|0}while((h|0)!=(k|0));e=+O(+(+(a>>>0)/e));h=0;do{a=f+(h<<2)|0;g[a>>2]=e*+g[a>>2];h=h+1|0}while((h|0)!=(k|0));i=v;return}function vf(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0;A=i;if(e<0.0){Qp(23345,53,1,c[2348]|0)|0;kb(1)}z=i;i=i+((1*d|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(z|0,0,d|0)|0;y=(d|0)==0;if(y){b=0;wf(f,d,b);i=A;return}else{x=0;k=0;h=0}do{p=z+x|0;a:do if((a[p>>0]|0)==0?(v=b+(x<<3)|0,w=+g[b+(x<<3)+4>>2],!(+N(+w)>0]|0)==0):0)?(r=b+(l<<3)|0,s=b+(l<<3)+4|0,t=+g[s>>2],!(+N(+t)>2],+N(+(u-+g[r>>2]))>>0>=d>>>0)break a}B=k+1|0;g[f+(k<<3)>>2]=m;g[f+(k<<3)+4>>2]=w;o=c[o>>2]|0;c[f+(B<<3)>>2]=c[n>>2];c[f+(B<<3)+4>>2]=o;a[p>>0]=1;a[l>>0]=1;k=k+2|0;h=h+1|0}while(0);x=x+1|0}while((x|0)!=(d|0));if(k>>>0>d>>>0)Ha(23399,23407,102,23431);if(y){B=h;wf(f,d,B);i=A;return}n=c[2348]|0;o=0;do{l=z+o|0;do if(!(a[l>>0]|0)){m=+g[b+(o<<3)+4>>2];if(m>e){Qp(23447,61,1,n)|0;break}else{c[f+(k<<3)>>2]=c[b+(o<<3)>>2];g[f+(k<<3)+4>>2]=m;a[l>>0]=1;k=k+1|0;break}}while(0);o=o+1|0}while((o|0)!=(d|0));wf(f,d,h);i=A;return}function wf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;if((i|0)>=(j|0))ba();e=x+32|0;f=x+24|0;h=x+16|0;o=x+8|0;p=x;q=(d|0)==0;if(!q){r=p+4|0;s=o+4|0;t=h+4|0;u=f+4|0;w=0;do{v=w<<1;l=a+(v<<3)|0;n=a+(v<<3)+4|0;m=+g[n>>2];k=+g[l>>2];if(!(m<0.0)){g[h>>2]=k;g[t>>2]=m;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Ko(f,e);k=+g[f>>2];m=+g[u>>2]}g[l>>2]=k;g[n>>2]=m;g[p>>2]=k;g[r>>2]=m;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];Ko(o,e);n=c[s>>2]|0;v=v|1;c[a+(v<<3)>>2]=c[o>>2];c[a+(v<<3)+4>>2]=n;w=w+1|0}while((w|0)!=(d|0));if(!q){q=d+-1|0;o=0;do{if(q>>>0>o>>>0){e=d;p=q;while(1){e=e<<1;f=e+-4|0;h=a+(f<<3)|0;k=+g[h>>2];l=p<<1;n=a+(l<<3)|0;m=+g[n>>2];if(k>m){v=a+(f<<3)+4|0;t=c[v>>2]|0;s=a+(l<<3)+4|0;w=c[s>>2]|0;g[h>>2]=m;c[v>>2]=w;g[n>>2]=k;c[s>>2]=t;s=e+-3|0;n=a+(s<<3)|0;t=c[n>>2]|0;s=a+(s<<3)+4|0;v=c[s>>2]|0;w=l|1;u=a+(w<<3)|0;w=a+(w<<3)+4|0;r=c[w>>2]|0;c[n>>2]=c[u>>2];c[s>>2]=r;c[u>>2]=t;c[w>>2]=v}e=p+-1|0;if(e>>>0>o>>>0){w=p;p=e;e=w}else break}}o=o+1|0}while((o|0)!=(d|0))}}e=d<<1;if(e>>>0>=b>>>0){i=x;return}o=b+-1|0;do{if(o>>>0>e>>>0){f=b;n=o;while(1){f=f+-2|0;h=a+(f<<3)|0;k=+g[h>>2];l=a+(n<<3)|0;m=+g[l>>2];if(k>m){v=a+(f<<3)+4|0;w=c[v>>2]|0;d=a+(n<<3)+4|0;u=c[d>>2]|0;g[h>>2]=m;c[v>>2]=u;g[l>>2]=k;c[d>>2]=w}f=n+-1|0;if(f>>>0>e>>>0){d=n;n=f;f=d}else break}}e=e+1|0}while((e|0)!=(b|0));i=x;return}function xf(a,b,c,d,e,f,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;k=k|0;l=l|0;m=m|0;var n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=i;i=i+64|0;if((i|0)>=(j|0))ba();x=B+48|0;y=B+32|0;z=B+16|0;A=B;o=+g[e>>2];n=+g[e+4>>2];if(!d){s=o;f=n;k=m+4|0;g[m>>2]=s;g[k>>2]=f;i=B;return}v=x+8|0;w=y+8|0;t=z+8|0;u=A+8|0;e=0;do{if(e>>>0>>0){q=+g[a+(e<<3)>>2]*f;p=+g[a+(e<<3)+4>>2]*f;Zn(x,q+1.0,p,1.0-q,-p);p=+h[v>>3];q=+h[x>>3]}else{p=0.0;q=-1.0}D=k+(e<<3)|0;g[D>>2]=q;C=k+(e<<3)+4|0;g[C>>2]=p;r=+g[c+(e<<3)>>2]*f;s=+g[c+(e<<3)+4>>2]*f;Zn(y,r+1.0,s,1.0-r,-s);s=+h[y>>3];r=+h[w>>3];g[l+(e<<3)>>2]=s;g[l+(e<<3)+4>>2]=r;Zn(z,1.0-s,-r,1.0-+g[D>>2],-+g[C>>2]);r=+h[z>>3];s=+h[t>>3];q=o;p=n;o=q*r-p*s;n=p*r+q*s;if((o!=o|0.0!=0.0)&(n!=n|0.0!=0.0)){$n(A,q,p,r,s);o=+h[A>>3];n=+h[u>>3]}e=e+1|0}while((e|0)!=(d|0));D=m+4|0;g[m>>2]=o;g[D>>2]=n;i=B;return}function yf(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();p=r;q=i;i=i+((1*(d+1<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Oh(b,d,q);b=0;do{c[h+(b<<2)>>2]=c[q+(d-b<<3)>>2];b=b+1|0}while(b>>>0<=d>>>0);Oh(a,d,q);o=+g[e>>2];n=+g[e+4>>2];b=0;do{e=d-b|0;l=+g[q+(e<<3)>>2];m=+g[q+(e<<3)+4>>2];k=l*o-m*n;s=m*o+l*n;if((k!=k|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(p,l,m,o,n);k=+g[p>>2]}g[f+(b<<2)>>2]=k;b=b+1|0}while(b>>>0<=d>>>0);i=r;return}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0;C=i;i=i+16|0;if((i|0)>=(j|0))ba();y=C+8|0;z=C;B=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();vf(a,c,9.999999974752427e-07,B);A=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();vf(b,c,9.999999974752427e-07,A);w=c&1;x=(c-w|0)>>>1;if(!x)a=0;else{u=c>>>1;v=0;do{o=v<<1;k=+g[A+(o<<3)>>2];l=+g[A+(o<<3)+4>>2];b=o|1;D=+g[A+(b<<3)>>2];m=+g[A+(b<<3)+4>>2];n=-D;p=+g[B+(o<<3)>>2];q=+g[B+(o<<3)+4>>2];r=+g[B+(b<<3)>>2];s=+g[B+(b<<3)+4>>2];t=-r;b=v*3|0;g[f+(b<<2)>>2]=1.0;o=b+1|0;g[f+(o<<2)>>2]=n-k;h=k*D-l*m;D=l*D+k*m;if((h!=h|0.0!=0.0)&(D!=D|0.0!=0.0)){ao(y,-k,-l,n,-m);h=+g[y>>2]}a=b+2|0;g[f+(a<<2)>>2]=h;g[e+(b<<2)>>2]=1.0;g[e+(o<<2)>>2]=t-p;h=p*r-q*s;D=q*r+p*s;if((h!=h|0.0!=0.0)&(D!=D|0.0!=0.0)){ao(z,-p,-q,t,-s);h=+g[z>>2]}g[e+(a<<2)>>2]=h;v=v+1|0}while((v|0)!=(u|0));a=x*3|0}if(w|0){z=c+-1|0;t=-+g[A+(z<<3)>>2];D=-+g[B+(z<<3)>>2];g[f+(a<<2)>>2]=1.0;A=a+1|0;g[f+(A<<2)>>2]=t;B=a+2|0;g[f+(B<<2)>>2]=0.0;g[e+(a<<2)>>2]=1.0;g[e+(A<<2)>>2]=D;g[e+(B<<2)>>2]=0.0}f=x+w|0;h=+P(+(+g[d>>2]),+(1.0/+(f>>>0)));if(!f){i=C;return}a=c&1;a=((c-a|0)>>>1)+a|0;b=0;do{c=b*3|0;d=e+(c<<2)|0;g[d>>2]=h*+g[d>>2];d=e+(c+1<<2)|0;g[d>>2]=h*+g[d>>2];c=e+(c+2<<2)|0;g[c>>2]=h*+g[c>>2];b=b+1|0}while((b|0)!=(a|0));i=C;return}function Af(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0.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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;ma=i;i=i+144|0;if((i|0)>=(j|0))ba();W=ma+128|0;X=ma+120|0;Y=ma+112|0;ea=ma+104|0;fa=ma+96|0;ga=ma+88|0;ha=ma+80|0;ia=ma+72|0;ja=ma+64|0;ka=ma+56|0;la=ma+48|0;Z=ma+40|0;_=ma+32|0;$=ma+24|0;aa=ma+16|0;ca=ma+8|0;da=ma;C=+Q(+(e*6.283185307179586));if(!d){i=ma;return}D=C*C;E=X+4|0;F=Y+4|0;G=fa+4|0;H=ea+4|0;I=ga+4|0;J=ha+4|0;K=ja+4|0;L=ia+4|0;M=ka+4|0;N=la+4|0;O=_+4|0;P=Z+4|0;R=$+4|0;S=aa+4|0;T=da+4|0;U=ca+4|0;V=0;do{w=a+(V<<3)|0;e=+g[w>>2];x=a+(V<<3)+4|0;k=+g[x>>2];r=e+1.0;s=k+0.0;z=C*r;y=C*s;t=D*r;u=D*s;o=r*t-s*u;n=t*s+r*u;v=(o!=o|0.0!=0.0)&(n!=n|0.0!=0.0);if(v){ao(X,t,u,r,s);e=+g[w>>2];k=+g[x>>2];p=+g[X>>2];q=+g[E>>2]}else{p=o;q=n}l=e*4.0-k*0.0;m=e*0.0+k*4.0;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(Y,4.0,0.0,e,k);k=+g[Y>>2];e=+g[F>>2]}else{k=l;e=m}g[fa>>2]=p-k;g[G>>2]=q-e;c[W>>2]=c[fa>>2];c[W+4>>2]=c[fa+4>>2];zo(ea,W);q=(y+ +g[H>>2])*.5;B=V<<1;g[f+(B<<3)>>2]=(z+ +g[ea>>2])*.5;g[f+(B<<3)+4>>2]=q;if(v){ao(ga,t,u,r,s);o=+g[ga>>2];n=+g[I>>2]}m=+g[w>>2];l=+g[x>>2];k=m*4.0-l*0.0;e=m*0.0+l*4.0;if((k!=k|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(ha,4.0,0.0,m,l);k=+g[ha>>2];e=+g[J>>2]}g[ja>>2]=o-k;g[K>>2]=n-e;c[W>>2]=c[ja>>2];c[W+4>>2]=c[ja+4>>2];zo(ia,W);e=(y-+g[L>>2])*.5;A=B|1;g[f+(A<<3)>>2]=(z-+g[ia>>2])*.5;g[f+(A<<3)+4>>2]=e;w=b+(V<<3)|0;e=+g[w>>2];x=b+(V<<3)+4|0;k=+g[x>>2];r=e+1.0;s=k+0.0;y=C*r;z=C*s;t=D*r;u=D*s;o=r*t-s*u;n=t*s+r*u;v=(o!=o|0.0!=0.0)&(n!=n|0.0!=0.0);if(v){ao(ka,t,u,r,s);e=+g[w>>2];k=+g[x>>2];p=+g[ka>>2];q=+g[M>>2]}else{p=o;q=n}l=e*4.0-k*0.0;m=e*0.0+k*4.0;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(la,4.0,0.0,e,k);k=+g[la>>2];e=+g[N>>2]}else{k=l;e=m}g[_>>2]=p-k;g[O>>2]=q-e;c[W>>2]=c[_>>2];c[W+4>>2]=c[_+4>>2];zo(Z,W);q=(z+ +g[P>>2])*.5;g[h+(B<<3)>>2]=(y+ +g[Z>>2])*.5;g[h+(B<<3)+4>>2]=q;if(v){ao($,t,u,r,s);o=+g[$>>2];n=+g[R>>2]}m=+g[w>>2];l=+g[x>>2];k=m*4.0-l*0.0;e=m*0.0+l*4.0;if((k!=k|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(aa,4.0,0.0,m,l);k=+g[aa>>2];e=+g[S>>2]}g[da>>2]=o-k;g[T>>2]=n-e;c[W>>2]=c[da>>2];c[W+4>>2]=c[da+4>>2];zo(ca,W);z=(z-+g[U>>2])*.5;g[h+(A<<3)>>2]=(y-+g[ca>>2])*.5;g[h+(A<<3)+4>>2]=z;V=V+1|0}while((V|0)!=(d|0));i=ma;return}function Bf(a,b,d,e,f,h,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=+k;l=+l;m=m|0;n=n|0;var 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;B=i;i=i+48|0;if((i|0)>=(j|0))ba();y=B+40|0;s=B+24|0;x=B+8|0;u=B+32|0;z=B+16|0;A=B;if(!(!(f<=0.0)&!(f>=.5))){Qp(23509,54,1,c[2348]|0)|0;kb(1)}if(h<0.0|h>.5){Qp(23564,54,1,c[2348]|0)|0;kb(1)}if(k<=0.0){Qp(23619,54,1,c[2348]|0)|0;kb(1)}if(l<=0.0){Qp(23674,54,1,c[2348]|0)|0;kb(1)}if(!e){Qp(23729,49,1,c[2348]|0)|0;kb(1)}v=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=e&1;p=(e-o|0)>>>1;switch(a|0){case 0:{ll(e,w,v,s);r=1.0;q=0;break}case 1:{k=+O(+(+P(10.0,+(k/10.0))+-1.0));if(!o)r=1.0/+O(+(k*k+1.0));else r=1.0;ml(e,k,w,v,s);q=0;break}case 2:{nl(e,+P(10.0,+(-l/20.0)),w,v,s);r=1.0;q=p<<1;break}case 3:{k=+P(10.0,+(-k/20.0));l=+P(10.0,+(-l/20.0));k=+O(+(1.0/(k*k)+-1.0));l=+O(+(1.0/(l*l)+-1.0));if(!o)r=1.0/+O(+(k*k+1.0));else r=1.0;sl(e,k,l,w,v,s);q=p<<1;break}case 4:{il(e,w,v,s);r=1.0;q=0;break}default:{Qp(23779,44,1,c[2348]|0)|0;kb(1)}}o=e<<1;s=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();t=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(b|0){case 0:{k=+S(+(f*3.141592653589793));break}case 1:{k=f*3.141592653589793;k=-+Q(+k)/+R(+k);break}case 2:{k=f*6.283185307179586;k=(+Q(+k)-+Q(+(h*6.283185307179586)))/+R(+k);break}case 3:{k=f*6.283185307179586;k=+R(+k)/(+Q(+k)-+Q(+(h*6.283185307179586)));break}default:k=0.0}f=+N(+k);g[u>>2]=r;g[u+4>>2]=0.0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];xf(w,q,v,e,y,f,s,t,x);if((b|2|0)==3){a=0;do{w=s+(a<<3)|0;v=s+(a<<3)+4|0;f=-+g[v>>2];g[w>>2]=-+g[w>>2];g[v>>2]=f;v=t+(a<<3)|0;w=t+(a<<3)+4|0;f=-+g[w>>2];g[v>>2]=-+g[v>>2];g[w>>2]=f;a=a+1|0}while((a|0)!=(e|0))}if((b|1|0)==3){a=Wa()|0;p=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Af(s,t,e,h,p,q);e=e<<4;fq(s|0,p|0,e|0)|0;fq(t|0,q|0,e|0)|0;Ga(a|0)}else o=e;p=c[x>>2]|0;a=c[x+4>>2]|0;if((d|0)==1){c[z>>2]=p;c[z+4>>2]=a;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];yf(s,t,o,y,m,n);i=B;return}else{c[A>>2]=p;c[A+4>>2]=a;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];zf(s,t,o,y,m,n);i=B;return}}function Cf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;if(!a){Qp(23824,54,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23879,54,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23934,51,1,c[2348]|0)|0;kb(1)}n=+(a>>>0);o=+(b>>>0);m=d;k=d*4.0*d;l=3.141592653589793/(m*2.0);m=m*3.141592653589793;a=(_(b,a)|0)<<1|1;b=0;do{h=(+(b>>>0)+e)/n-o;i=+Qh(h);j=1.0-h*(k*h);if(+N(+j)<1.0000000474974513e-03)h=+R(+l)*d*.5;else h=i*+Q(+(m*h))/j;g[f+(b<<2)>>2]=h;b=b+1|0}while((b|0)!=(a|0));return}function Df(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();if(a>>>0<2){Qp(23986,53,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24040,53,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(24094,54,1,c[2348]|0)|0;kb(1)}if(e<-1.0|e>1.0){Qp(24149,53,1,c[2348]|0)|0;kb(1)}else{Ef(a,b,d,e,f,g);i=g;return}}function Ef(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=f|0;h=h|0;var i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=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;if(!a){Qp(24203,67,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24271,67,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(24339,64,1,c[2348]|0)|0;kb(1)}m=+Ff(b,d);l=.20000000298023224;j=0;i=m;n=0.0;while(1){p=m-l;o=m+l;p=!(p<=0.0)?p:.009999999776482582;o=!(o>=1.0)?o:.9900000095367432;s=+Gf(a,b,d,e,p,f);r=+Gf(a,b,d,e,m,f);q=+Gf(a,b,d,e,o,f);w=(j|0)==0|ro){k=i;break}if(j>>>0>3?+N(+(m-k))<9.999999974752427e-07:0){k=i;break}j=j+1|0;if(j>>>0>=14){k=i;break}else l=l*.5}+Gf(a,b,d,e,k,f);b=(_(b,a)|0)<<1|1;i=0.0;j=0;do{v=+g[f+(j<<2)>>2];i=i+v*v;j=j+1|0}while((j|0)!=(b|0));i=+O(+(+(a>>>0)/i));j=0;do{w=f+(j<<2)|0;g[w>>2]=i*+g[w>>2];j=j+1|0}while((j|0)!=(b|0));g[h>>2]=k;return}function Ff(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0;if(!a){Qp(24404,59,1,c[2348]|0)|0;kb(1)}if(b<0.0|b>1.0){Qp(24464,56,1,c[2348]|0)|0;kb(1)}do switch(a|0){case 1:{d=.7574973106384277;e=.061343029141426086;f=-.08729662746191025;break}case 2:{d=.8115186095237732;e=.07437658309936523;f=-.01427088025957346;break}case 3:{d=.8424953818321228;e=.07684185355901718;f=-.005368790123611689;break}case 4:{d=.8614078164100647;e=.07144126296043396;f=-.005586519837379456;break}case 5:{d=.8745774030685425;e=.0657869428396225;f=-.006504470016807318;break}case 6:{d=.8843879699707031;e=.06074265018105507;f=-.007364050019532442;break}case 7:{d=.8921661972999573;e=.05669236183166504;f=-.007912220433354378;break}case 8:{d=.898749828338623;e=.0536169596016407;f=-.008153010159730911;break}case 9:{d=.9046003222465515;e=.051679521799087524;f=-.008078929968178272;break}case 10:{d=.9103443026542664;e=.05130752921104431;f=-.007461919914931059;break}case 11:{d=.9158767461776733;e=.05180436000227928;f=-.006707109976559877;break}case 12:{d=.921218752861023;e=.0527380108833313;f=-.00588351022452116;break}case 13:{d=.9263819456100464;e=.054007638245821;f=-.00508452020585537;break}case 14:{d=.9312355518341064;e=.05516162887215614;f=-4.3730600737035275e-03;break}case 15:{d=.9356499314308167;e=.0559656098484993;f=-3.8815198931843042e-03;break}case 16:{d=.9397674202919006;e=.056622739881277084;f=-3.4827999770641327e-03;break}case 17:{d=.9435170292854309;e=.0569412000477314;f=-3.1882100738584995e-03;break}case 18:{d=.9455727338790894;e=.05227591097354889;f=-.004006760194897652;break}case 19:{d=.9500161409378052;e=.05681641027331352;f=-3.0062799341976643e-03;break}case 20:{d=.9528170824050903;e=.05637606978416443;f=-.003047900041565299;break}case 21:{d=.9553625583648682;e=.055758800357580185;f=-.00312987994402647;break}case 22:{d=.9575420618057251;e=.05426060035824776;f=-3.8594501093029976e-03;break}default:{d=+Y(+(+(a>>>0)+1.0000000474974513e-03))*.056873+.781388;e=.054260000586509705;f=-.003860000055283308}}while(0);b=+Y(+b);d=d+e*b+b*(f*b);if(d<0.0){b=0.0;return +b}if(!(d>1.0)){b=d;return +b}b=1.0;return +b}function Gf(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=+f;h=h|0;var k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();k=m+4|0;l=m;if(!(f<0.0)){if(f>1.0)Qp(24577,55,1,c[2348]|0)|0}else Qp(24521,55,1,c[2348]|0)|0;n=_(a<<1,b)|0|1;o=+(a>>>0);Xe(n,((1.0-f)*d+1.0)*.5/o,+We(d*f/o,n),e,h);Ze(h,a,b,l,k);i=m;return +(+g[l>>2])}function Hf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0;if(a>>>0<2){Qp(24633,54,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24688,54,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(24743,55,1,c[2348]|0)|0;kb(1)}if(e<-1.0|e>1.0){Qp(24799,54,1,c[2348]|0)|0;kb(1)}i=+(b>>>0);h=+Y(+d);h=+Y(+i)*.067663+.762886+h*.06551499664783478+h*(+Y(+(1.0-+P(+i,-1.600000023841858)*.088))*h);if(h<=0.0|h>=1.0)h=+Ff(b,d);j=_(a<<1,b)|0|1;i=+(a>>>0);Xe(j,((1.0-h)*d+1.0)*.5/i,+We(h*d/i,j),e,f);b=(_(b,a)|0)<<1|1;h=0.0;a=0;do{e=+g[f+(a<<2)>>2];h=h+e*e;a=a+1|0}while((a|0)!=(b|0));h=+O(+(i/h));a=0;do{j=f+(a<<2)|0;g[j>>2]=h*+g[j>>2];a=a+1|0}while((a|0)!=(b|0));return}function If(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;if(!a){Qp(24854,55,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24910,55,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(24966,52,1,c[2348]|0)|0;kb(1)}s=+(a>>>0);t=+(b>>>0);l=(d+1.0)*3.141592653589793;p=1.0-d;m=p*3.141592653589793;n=d*4.0;o=n;p=p+o/3.141592653589793;q=d*16.0*d;r=.7853981633974483/d;k=d/1.4142135381698608;a=(_(b,a)|0)<<1|1;b=0;do{d=(+(b>>>0)+e)/s-t;i=d;h=+Q(+(l*i));i=+R(+(m*i));do if(!(+N(+d)<1.0e-05)){j=1.0-d*(q*d);if(j*j<1.0e-05){g[f+(b<<2)>>2]=k*(+R(+r)*1.6366198062896729+ +Q(+r)*.36338022351264954);break}else{g[f+(b<<2)>>2]=o/(j*3.141592653589793)*(h+1.0/(n*d)*i);break}}else g[f+(b<<2)>>2]=p;while(0);b=b+1|0}while((b|0)!=(a|0));return}function Jf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=0.0,l=0;b=Xp(140)|0;c[b>>2]=2;c[b+4>>2]=7;g[b+8>>2]=.25;c[b+12>>2]=Ee(7,2,7,.25,0.0)|0;d=Xp(512)|0;c[b+64>>2]=d;e=Qj(7,137,1)|0;f=0;do{l=(Tj(e)|0)!=0;j=d+(f<<3)|0;h=d+(f<<3)+4|0;g[j>>2]=l?.7071067690849304:-.7071067690849304;g[h>>2]=0.0;l=(Tj(e)|0)!=0;k=l?.7071067811865476:-.7071067811865476;i=k+ +g[h>>2];g[j>>2]=+g[j>>2]+k*0.0;g[h>>2]=i;f=f+1|0}while((f|0)!=64);Sj(e);l=b+120|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[b+68>>2]=0;c[b+88>>2]=0;c[b+100>>2]=0;c[b+80>>2]=0;c[b+92>>2]=0;c[b+72>>2]=14;l=ph()|0;c[b+108>>2]=l;c[b+104>>2]=64;l=sh(l)|0;c[b+112>>2]=l;c[b+116>>2]=Xp(l<<3)|0;Kf(b,a)|0;Mf(b,0)|0;return b|0}function Kf(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Qp(25019,81,1,c[2348]|0)|0;a=-1;return a|0}if(!b){Kf(a,556)|0;return 0}if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25101,63,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25165,63,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25165,63,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25229,70,1,c[2348]|0)|0;kb(1)}gq(a+32|0,b|0,16)|0;Lf(a);d=0;return d|0}function Lf(a){a=a|0;var b=0,d=0;d=a+108|0;rh(c[d>>2]|0,c[a+104>>2]|0,c[a+32>>2]|0,c[a+36>>2]|0,c[a+40>>2]|0,c[a+44>>2]|0)|0;d=sh(c[d>>2]|0)|0;c[a+112>>2]=d;b=a+116|0;a=_p(c[b>>2]|0,d<<3)|0;c[b>>2]=a;if(!a){Qp(25300,71,1,c[2348]|0)|0;kb(1)}else return}function Mf(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Qp(25372,89,1,c[2348]|0)|0;a=-1;return a|0}b=(b|0)==0?572:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25462,71,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25534,71,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25534,71,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25606,78,1,c[2348]|0)|0;kb(1)}gq(a+48|0,b|0,16)|0;Nf(a,c[a+72>>2]|0);d=0;return d|0}function Nf(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+128>>2]|0){Qp(25019,81,1,c[2348]|0)|0;return}c[a+72>>2]=b;d=b+6|0;e=a+76|0;c[e>>2]=d;b=a+68|0;c[b>>2]=_p(c[b>>2]|0,d)|0;b=a+80|0;d=c[b>>2]|0;if(d|0)qh(d);d=ph()|0;c[b>>2]=d;rh(d,c[e>>2]|0,c[a+48>>2]|0,c[a+52>>2]|0,c[a+56>>2]|0,c[a+60>>2]|0)|0;e=sh(c[b>>2]|0)|0;b=a+84|0;c[b>>2]=e;d=a+88|0;c[d>>2]=_p(c[d>>2]|0,e<<3)|0;d=a+92|0;e=c[d>>2]|0;if(e|0)Bh(e);e=Ah(c[b>>2]|0,16)|0;c[d>>2]=e;e=Ch(e)|0;c[a+96>>2]=e;a=a+100|0;c[a>>2]=_p(c[a>>2]|0,e<<3)|0;return}function Of(a){a=a|0;a=a+120|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function Pf(a){a=a|0;Fe(c[a+12>>2]|0);qh(c[a+80>>2]|0);Bh(c[a+92>>2]|0);qh(c[a+108>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+88>>2]|0);Yp(c[a+100>>2]|0);Yp(c[a+116>>2]|0);Yp(a);return}function Qf(a){a=a|0;return c[a+128>>2]|0}function Rf(a){a=a|0;if(!(c[a+128>>2]|0)){Qp(25685,58,1,c[2348]|0)|0;a=0;return a|0}else{a=_((c[a+96>>2]|0)+64+(c[a+112>>2]|0)+(c[a+4>>2]<<1)|0,c[a>>2]|0)|0;return a|0}return 0}function Sf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=b+120|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=b+104|0;c[k>>2]=g;g=b+68|0;h=c[g>>2]|0;i=b+72|0;j=c[i>>2]|0;if(!e)eq(h|0,0,j|0)|0;else gq(h|0,e|0,j|0)|0;e=c[i>>2]|0;a[(c[g>>2]|0)+e>>0]=102;a[(c[g>>2]|0)+(e+1)>>0]=(c[k>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[k>>2];a[(c[g>>2]|0)+(e+3)>>0]=c[b+44>>2];k=e+4|0;a[(c[g>>2]|0)+k>>0]=c[b+32>>2]<<5;k=(c[g>>2]|0)+k|0;a[k>>0]=d[k>>0]|0|c[b+36>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+40>>2]&31;e=b+88|0;xh(c[b+80>>2]|0,c[g>>2]|0,c[e>>2]|0);Dh(c[b+92>>2]|0,c[e>>2]|0,c[b+100>>2]|0);Lf(b);xh(c[b+108>>2]|0,f,c[b+116>>2]|0);c[b+128>>2]=1;return}function Tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();f=q+16|0;g=q+8|0;h=q;if(!d){p=a+132|0;p=c[p>>2]|0;i=q;return p|0}k=a+124|0;l=g+4|0;m=a+12|0;n=a+16|0;o=h+4|0;e=c[k>>2]|0;p=0;do{if(!e){Uf(g,a);r=c[l>>2]|0;e=c[m>>2]|0;c[h>>2]=c[g>>2];c[o>>2]=r;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Je(e,f,n);e=c[k>>2]|0}r=c[a+16+(e<<3)+4>>2]|0;c[b+(p<<3)>>2]=c[a+16+(e<<3)>>2];c[b+(p<<3)+4>>2]=r;e=(((c[k>>2]|0)+1|0)>>>0)%((c[a>>2]|0)>>>0)|0;c[k>>2]=e;p=p+1|0}while((p|0)!=(d|0));r=a+132|0;r=c[r>>2]|0;i=q;return r|0} -function yj(a,b){a=a|0;b=b|0;var e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0;P=i;i=i+464|0;if((i|0)>=(j|0))ba();N=P+456|0;M=P+432|0;J=P+416|0;I=P+400|0;E=P+392|0;H=P+384|0;G=P+368|0;F=P+352|0;D=P+328|0;C=P+304|0;B=P+280|0;A=P+256|0;y=P+232|0;x=P+208|0;w=P+192|0;v=P+184|0;u=P+160|0;t=P+136|0;s=P+112|0;r=P+88|0;q=P+80|0;p=P+72|0;o=P+64|0;n=P+56|0;O=P+48|0;K=P+40|0;k=P+32|0;m=P+24|0;l=P+16|0;f=P+8|0;e=P;if(!(c[a+172>>2]|0)){Qp(37231,86,1,c[2348]|0)|0;i=P;return}L=Ep(b,37318)|0;if(!L){O=c[2348]|0;c[e>>2]=b;Kp(O,37320,e)|0;i=P;return}c[f>>2]=37414;Kp(L,37385,f)|0;Qp(37445,11,1,L)|0;Qp(37457,11,1,L)|0;c[l>>2]=2048;Kp(L,37469,l)|0;c[m>>2]=c[a>>2];Kp(L,37478,m)|0;c[k>>2]=c[a+16>>2];Kp(L,37487,k)|0;z=a+20|0;c[K>>2]=c[z>>2];Kp(L,37502,K)|0;c[O>>2]=c[a+24>>2];Kp(L,37517,O)|0;Qp(37532,16,1,L)|0;if(c[a>>2]|0){e=a+12|0;f=0;do{m=d[(c[e>>2]|0)+f>>0]|0;f=f+1|0;c[n>>2]=f;c[n+4>>2]=m;Kp(L,37549,n)|0}while(f>>>0<(c[a>>2]|0)>>>0)}c[o>>2]=0;Kp(L,37563,o)|0;c[p>>2]=1;Kp(L,37587,p)|0;c[q>>2]=2;Kp(L,37611,q)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{q=k;k=k+1|0;p=c[e>>2]|0;Q=+g[p+(q<<3)>>2];R=+g[p+(q<<3)+4>>2];c[r>>2]=k;h[r+8>>3]=Q;h[r+16>>3]=R;Kp(L,37635,r)|0;p=c[f>>2]|0;R=+g[p+(q<<3)>>2];Q=+g[p+(q<<3)+4>>2];c[s>>2]=k;h[s+8>>3]=R;h[s+16>>3]=Q;Kp(L,37665,s)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Qp(37695,16,1,L)|0;sk(c[a+176>>2]|0,O);e=0;do{s=c[O>>2]|0;Q=+g[s+(e<<3)>>2];R=+g[s+(e<<3)+4>>2];e=e+1|0;c[t>>2]=e;h[t+8>>3]=Q;h[t+16>>3]=R;Kp(L,37712,t)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(37750,39,1,L)|0;Qp(37790,24,1,L)|0;Qp(37815,30,1,L)|0;Qp(37846,9,1,L)|0;if(c[a>>2]|0){e=a+76|0;f=0;do{t=c[e>>2]|0;Q=+g[t+(f<<3)>>2];R=+g[t+(f<<3)+4>>2];f=f+1|0;c[u>>2]=f;h[u+8>>3]=Q;h[u+16>>3]=R;Kp(L,37856,u)|0}while(f>>>0<(c[a>>2]|0)>>>0)}Qp(37886,2,1,L)|0;c[v>>2]=2048;Kp(L,37889,v)|0;nk(c[a+180>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[w>>2]=e;h[w+8>>3]=R;Kp(L,37914,w)|0}while((e|0)!=2048);Qp(37939,91,1,L)|0;Qp(38031,33,1,L)|0;Qp(37741,8,1,L)|0;Qp(38065,15,1,L)|0;Qp(38081,21,1,L)|0;Qp(37886,2,1,L)|0;Qp(38103,17,1,L)|0;Qp(38121,17,1,L)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{w=k;k=k+1|0;v=c[e>>2]|0;R=+g[v+(w<<3)>>2];Q=+g[v+(w<<3)+4>>2];c[x>>2]=k;h[x+8>>3]=R;h[x+16>>3]=Q;Kp(L,38139,x)|0;v=c[f>>2]|0;Q=+g[v+(w<<3)>>2];R=+g[v+(w<<3)+4>>2];c[y>>2]=k;h[y+8>>3]=Q;h[y+16>>3]=R;Kp(L,38169,y)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Qp(37886,2,1,L)|0;Qp(38199,21,1,L)|0;Qp(38221,21,1,L)|0;Qp(38243,21,1,L)|0;Qp(38265,21,1,L)|0;if(c[a>>2]|0){k=a+84|0;l=a+88|0;e=a+188|0;f=a+92|0;m=0;do{y=m;m=m+1|0;x=c[k>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[A>>2]=m;h[A+8>>3]=R;h[A+16>>3]=Q;Kp(L,38287,A)|0;x=c[l>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[B>>2]=m;h[B+8>>3]=Q;h[B+16>>3]=R;Kp(L,38320,B)|0;x=c[e>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[C>>2]=m;h[C+8>>3]=R;h[C+16>>3]=Q;Kp(L,38353,C)|0;x=c[f>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[D>>2]=m;h[D+8>>3]=Q;h[D+16>>3]=R;Kp(L,38386,D)|0}while(m>>>0<(c[a>>2]|0)>>>0)}Qp(38419,15,1,L)|0;Qp(37741,8,1,L)|0;Qp(38435,16,1,L)|0;Qp(38452,40,1,L)|0;Qp(38493,48,1,L)|0;Qp(38542,11,1,L)|0;Qp(38554,30,1,L)|0;Qp(38585,33,1,L)|0;Qp(38619,16,1,L)|0;Qp(38636,58,1,L)|0;Qp(38695,48,1,L)|0;Qp(38542,11,1,L)|0;Qp(38554,30,1,L)|0;Qp(38744,35,1,L)|0;Qp(37886,2,1,L)|0;Qp(38780,23,1,L)|0;Qp(38804,23,1,L)|0;if(c[z>>2]|0){e=a+192|0;f=a+196|0;k=0;do{D=k;k=k+1|0;R=+g[(c[e>>2]|0)+(D<<2)>>2];c[F>>2]=k;h[F+8>>3]=R;Kp(L,38828,F)|0;R=+g[(c[f>>2]|0)+(D<<2)>>2];c[G>>2]=k;h[G+8>>3]=R;Kp(L,38847,G)|0}while(k>>>0<(c[z>>2]|0)>>>0)}h[H>>3]=+g[a+200>>2];Kp(L,38866,H)|0;h[E>>3]=+g[a+204>>2];Kp(L,38888,E)|0;Qp(38910,17,1,L)|0;nk(c[a+208>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[I>>2]=e;h[I+8>>3]=R;Kp(L,38928,I)|0}while((e|0)!=2048);Qp(38947,17,1,L)|0;nk(c[a+212>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[J>>2]=e;h[J+8>>3]=R;Kp(L,38965,J)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(38984,19,1,L)|0;Qp(39004,16,1,L)|0;Qp(39021,24,1,L)|0;Qp(39046,40,1,L)|0;Qp(38542,11,1,L)|0;Qp(39087,32,1,L)|0;Qp(39120,24,1,L)|0;Qp(39145,19,1,L)|0;Qp(39165,16,1,L)|0;Qp(39182,26,1,L)|0;Qp(38542,11,1,L)|0;Qp(39209,31,1,L)|0;Qp(39241,16,1,L)|0;Qp(39258,26,1,L)|0;Qp(38542,11,1,L)|0;Qp(39285,30,1,L)|0;Qp(39316,24,1,L)|0;sk(c[a+184>>2]|0,O);e=0;do{K=c[O>>2]|0;Q=+g[K+(e<<3)>>2];R=+g[K+(e<<3)+4>>2];e=e+1|0;c[M>>2]=e;h[M+8>>3]=Q;h[M+16>>3]=R;Kp(L,39341,M)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(39378,45,1,L)|0;Qp(39424,13,1,L)|0;Qp(39438,13,1,L)|0;Qp(39452,23,1,L)|0;Qp(39476,13,1,L)|0;Qp(39490,9,1,L)|0;Hp(L)|0;c[N>>2]=b;Rp(39500,N)|0;i=P;return}function zj(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;d=Xp(1060)|0;c[d>>2]=a;a=d+12|0;b=0;do{g[a+(b<<2)>>2]=+R(+(+(b>>>0)*6.283185307179586*.00390625));b=b+1|0}while((b|0)!=256);g[d+1052>>2]=.10000000149011612;g[d+1056>>2]=.3162277638912201;a=c[d>>2]|0;switch(a|0){case 0:{c[d+1048>>2]=7;break}case 1:{c[d+1048>>2]=8;break}default:{b=c[2348]|0;c[e>>2]=a;Kp(b,39546,e)|0;kb(1)}}g[d+4>>2]=0.0;g[d+8>>2]=0.0;c[d+1036>>2]=0;g[d+1040>>2]=0.0;g[d+1044>>2]=1.0;i=f;return d|0}function Aj(a){a=a|0;var b=0,d=0;b=~~(+g[a+4>>2]*40.7436637878418+512.0+.5)>>>0;d=b&255;c[a+1036>>2]=d;c[a+1040>>2]=c[a+12+(d<<2)>>2];c[a+1044>>2]=c[a+12+((b+64&255)<<2)>>2];return}function Bj(a){a=a|0;var b=0.0;b=+g[a+4>>2];g[a+1040>>2]=+R(+b);g[a+1044>>2]=+Q(+b);return}function Cj(a,b){a=a|0;b=+b;if(b<0.0){Qp(39588,59,1,c[2348]|0)|0;kb(1)}else{g[a+1052>>2]=b;g[a+1056>>2]=+O(+b);return}}function Dj(a){a=a|0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;c[a+1036>>2]=0;g[a+1040>>2]=0.0;g[a+1044>>2]=1.0;return}function Ej(a){a=a|0;Yp(a);return}function Fj(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function Gj(a,b){a=a|0;b=+b;a=a+8|0;g[a>>2]=+g[a>>2]+b;return}function Hj(a,b){a=a|0;b=+b;a=a+4|0;g[a>>2]=b;if(b>3.141592653589793){g[a>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[a>>2]=b+6.283185307179586;return}function Ij(a){a=a|0;var b=0.0,c=0;c=a+4|0;b=+g[a+8>>2]+ +g[c>>2];g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function Jj(a){a=a|0;return +(+g[a+8>>2])}function Kj(a,b){a=a|0;b=+b;var c=0;c=a+8|0;g[c>>2]=+g[c>>2]+ +g[a+1052>>2]*b;c=a+4|0;b=+g[c>>2]+ +g[a+1056>>2]*b;g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function Lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;qb[c[a+1048>>2]&31](a);n=+g[b>>2];k=+g[b+4>>2];l=+g[a+1040>>2];e=+g[a+1044>>2]+l*0.0;f=n*e-k*l;h=n*l+k*e;if(!((f!=f|0.0!=0.0)&(h!=h|0.0!=0.0))){l=f;n=h;m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}ao(m,n,k,e,l);l=+g[m>>2];n=+g[m+4>>2];m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;qb[c[a+1048>>2]&31](a);n=+g[b>>2];l=+g[b+4>>2];f=+g[a+1040>>2];e=+g[a+1044>>2]-f*0.0;f=-f;h=n*e-l*f;k=n*f+l*e;if(!((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0))){l=h;n=k;m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}ao(m,n,l,e,f);l=+g[m>>2];n=+g[m+4>>2];m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}function Nj(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;e=c&-4;if(!e)f=0;else{f=c&-4;g=0;do{h=b+g|0;a[h>>0]=(d[h>>0]|0)^180;h=b+(g|1)|0;a[h>>0]=(d[h>>0]|0)^106;h=b+(g|2)|0;a[h>>0]=(d[h>>0]|0)^139;h=b+(g|3)|0;a[h>>0]=(d[h>>0]|0)^197;g=g+4|0}while(g>>>0>>0)}if(f>>>0>>0){h=b+f|0;a[h>>0]=(d[h>>0]|0)^180}e=f|1;if(e>>>0>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^106}e=f|2;if(e>>>0>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^139}e=f|3;if(e>>>0>=c>>>0)return;h=b+e|0;a[h>>0]=(d[h>>0]|0)^197;return}function Oj(a,b){a=a|0;b=b|0;Nj(a,b);return}function Pj(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0;if(!c)return;else g=0;a:while(1){switch(g&3|0){case 0:{e=180;h=7;break}case 1:{f=g<<3;e=106;h=8;break}case 2:{e=139;h=7;break}case 3:{e=197;h=7;break}default:{h=6;break a}}if((h|0)==7){h=0;f=g<<3;i=b+f|0;a[i>>0]=(d[i>>0]|0)^255;if(e&64)h=8}if((h|0)==8){i=b+(f|1)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&32|0){i=b+(g<<3|2)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&16|0){i=b+(g<<3|3)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&8|0){i=b+(g<<3|4)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&4|0){i=b+(g<<3|5)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&2|0){i=b+(g<<3|6)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&1|0){i=b+(g<<3|7)|0;a[i>>0]=(d[i>>0]|0)^255}g=g+1|0;if(g>>>0>=c>>>0){h=22;break}}if((h|0)!=6)if((h|0)==22)return}function Qj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a+-2|0)>>>0>13){Qp(39648,42,1,c[2348]|0)|0;kb(1)}g=Xp(24)|0;c[g>>2]=a;c[g+4>>2]=b>>>1;f=g+8|0;c[f>>2]=0;if(!a)b=0;else{b=0;e=0;while(1){b=b<<1|d&1;e=e+1|0;if(e>>>0>=a>>>0)break;else d=d>>>1}c[f>>2]=b}c[g+12>>2]=(1<>2]=b;c[g+20>>2]=0;return g|0}function Rj(a){a=a|0;var b=0;if((a+-2|0)>>>0>13){Qp(39648,42,1,c[2348]|0)|0;kb(1)}else{b=Xp(24)|0;a=7520+(a*24|0)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];return b|0}return 0}function Sj(a){a=a|0;Yp(a);return}function Tj(a){a=a|0;var b=0,d=0;d=a+16|0;b=Wj(c[d>>2]|0,c[a+4>>2]|0)|0;c[a+20>>2]=b;c[d>>2]=(c[d>>2]<<1|b)&c[a+12>>2];return b|0}function Uj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){b=0;return b|0}g=a+16|0;h=a+4|0;i=a+20|0;d=a+12|0;e=c[g>>2]|0;f=0;a=0;do{j=Wj(e,c[h>>2]|0)|0;c[i>>2]=j;e=(c[g>>2]<<1|j)&c[d>>2];c[g>>2]=e;a=j|a<<1;f=f+1|0}while((f|0)!=(b|0));return a|0}function Vj(a){a=a|0;c[a+16>>2]=c[a+8>>2];return}function Wj(a,b){a=a|0;b=b|0;b=b&a;return (d[39947+(b>>>8&255)>>0]|0)+(d[39947+(b&255)>>0]|0)+(d[39947+(b>>>16&255)>>0]|0)+(d[39947+(b>>>24)>>0]|0)&1|0}function Xj(a){a=a|0;return (d[40203+(a&255)>>0]|0)<<8|(d[40203+(a>>>8&255)>>0]|0)|0}function Yj(a){a=a|0;return (d[40203+(a>>>8&255)>>0]|0)<<8|(d[40203+(a&255)>>0]|0)<<16|(d[40203+(a>>>16&255)>>0]|0)|0}function Zj(a){a=a|0;return (d[40203+(a>>>8&255)>>0]|0)<<16|(d[40203+(a&255)>>0]|0)<<24|(d[40203+(a>>>16&255)>>0]|0)<<8|(d[40203+(a>>>24)>>0]|0)|0}function _j(a){a=a|0;var b=0;b=a>>>24;if(!b){b=a>>>16&255;if(!b){b=a>>>8&255;if(!b){b=a&255;if(!b){a=0;return a|0}else a=8}else a=16}else a=24}else a=32;a=a-(c[7904+(b<<2)>>2]|0)|0;return a|0}function $j(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if(e<<3>>>0<=f>>>0){Qp(40459,59,1,c[2348]|0)|0;kb(1)}i=f>>>3;if(!(i>>>0>>0&(g|0)!=0))return;f=f-(i<<3)|0;j=i;while(1){k=8-f|0;k=g>>>0>>0?g:k;m=8-k|0;l=g;g=g-k|0;n=255>>>m&255;m=m-f|0;i=b+j|0;a[i>>0]=(d[i>>0]|0)&(n<>>g)<>>0>7;j=(i&1)+j|0;if(!(j>>>0>>0&(l|0)!=(k|0)))break;else f=i?f&7:f}return}function ak(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;if(b<<3>>>0<=e>>>0){Qp(40519,61,1,c[2348]|0)|0;kb(1)}h=e>>>3;if(!(h>>>0>>0&(f|0)!=0)){a=f;b=0;a=b<>2]=a;return}k=f;e=e-(h<<3)|0;f=0;while(1){i=8-e|0;l=k>>>0>>0?k:i;f=255>>>(8-l|0)&255&(d[a+h>>0]|0)>>>(i-l|0)|f<>>0>7;h=(j&1)+h|0;e=k-l|0;if(!(h>>>0>>0&(k|0)!=(l|0)))break;else{k=e;e=j?i&7:i}}l=f<>2]=l;return}function bk(a,b,e,f,g){a=a|0;b=b|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;n=b<<3;if(!((f|0)!=0&(n|0)!=0))return;if(!e){h=(n|0)!=0;i=0;do{c[g+(i<<2)>>2]=0;i=i+1|0}while(i>>>0>>0&h);return}else{p=0;q=0}do{o=g+(p<<2)|0;h=q>>>3;if(h>>>0>>0){m=e;i=q-(h<<3)|0;l=h;h=0;while(1){j=8-i|0;r=m>>>0>>0?m:j;h=255>>>(8-r|0)&255&(d[a+l>>0]|0)>>>(j-r|0)|h<>>0>7;l=(k&1)+l|0;i=m-r|0;if(!((m|0)!=(r|0)&l>>>0>>0))break;else{m=i;i=k?j&7:j}}}else{i=e;h=0}c[o>>2]=h<>>0>>0&q>>>0>>0);return}function ck(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;Vp(m,e,8);if((((c[m+4>>2]|0)>0&1)+(c[m>>2]|0)|0)>>>0>g>>>0){Qp(40581,38,1,c[2348]|0)|0;kb(-1)}if(!e){n=0;c[h>>2]=n;i=o;return}else{m=0;g=0}a:while(1){k=0;while(1){k=(d[b+g>>0]|0)&1|k&254;g=g+1|0;if(!(g&7)){l=k;break}if(g>>>0>>0)k=k<<1;else{b=k;k=m;n=8;break a}}k=m+1|0;a[f+m>>0]=l;if(g>>>0>>0)m=k;else{l=g;g=0;break}}if((n|0)==8){l=g;g=b&127}if(!(l&7)){n=k;c[h>>2]=n;i=o;return}a[f+k>>0]=g;n=k+1|0;c[h>>2]=n;i=o;return}function dk(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;h=d<<3;if(h>>>0>f>>>0){Qp(40620,40,1,c[2348]|0)|0;kb(-1)}if(!d){e=0;c[g>>2]=e;return}else{f=0;i=0}while(1){k=a[b+f>>0]|0;j=k&255;a[e+i>>0]=(k&255)>>>7;a[e+(i|1)>>0]=j>>>6&1;a[e+(i|2)>>0]=j>>>5&1;a[e+(i|3)>>0]=j>>>4&1;a[e+(i|4)>>0]=j>>>3&1;a[e+(i|5)>>0]=j>>>2&1;a[e+(i|6)>>0]=j>>>1&1;a[e+(i|7)>>0]=j&1;f=f+1|0;if((f|0)==(d|0))break;else i=i+8|0}c[g>>2]=h;return}function ek(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+32|0;if((i|0)>=(j|0))ba();l=v;u=v+16|0;t=_(e,d)|0;Vp(u,t,g);u=((c[u+4>>2]|0)>0&1)+(c[u>>2]|0)|0;if(u>>>0>h>>>0){s=c[2348]|0;Qp(40661,40,1,s)|0;c[l>>2]=e;c[l+4>>2]=d;c[l+8>>2]=h;c[l+12>>2]=g;Kp(s,40702,l)|0;kb(-1)}if(!t){l=0;h=0;e=0}else{p=d+-1|0;o=g+-1|0;q=0;n=0;l=0;s=0;h=0;m=0;e=0;while(1){if(!s){r=n+1|0;m=a[b+n>>0]|0}else r=n;e=((m&255)>>>(p-s|0)&1|(e&255)<<1)&255;if((h|0)==(o|0)){a[f+l>>0]=e;l=l+1|0;e=0}h=((h+1|0)>>>0)%(g>>>0)|0;q=q+1|0;if((q|0)==(t|0))break;else{n=r;s=((s+1|0)>>>0)%(d>>>0)|0}}}if((l|0)==(u|0)){f=u;c[k>>2]=f;i=v;return}if(h>>>0>>0)do{e=(e&255)<<1&255;h=h+1|0}while((h|0)!=(g|0));a[f+l>>0]=e;f=l+1|0;c[k>>2]=f;i=v;return}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.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;A=i;i=i+48|0;if((i|0)>=(j|0))ba();p=A+32|0;q=A+24|0;v=A+16|0;w=A+8|0;z=A;x=b&-4;if(!x)e=0;else{m=+g[c>>2];o=+g[c+4>>2];r=p+4|0;s=q+4|0;t=v+4|0;u=w+4|0;e=b&-4;y=0;do{k=+g[a+(y<<3)>>2];l=+g[a+(y<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(p,k,l,m,o);h=+g[p>>2];f=+g[r>>2]}g[d+(y<<3)>>2]=h;g[d+(y<<3)+4>>2]=f;n=y|1;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(q,k,l,m,o);h=+g[q>>2];f=+g[s>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;n=y|2;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(v,k,l,m,o);h=+g[v>>2];f=+g[t>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;n=y|3;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(w,k,l,m,o);h=+g[w>>2];f=+g[u>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;y=y+4|0}while(y>>>0>>0)}if(e>>>0>=b>>>0){i=A;return}o=+g[c>>2];m=+g[c+4>>2];n=z+4|0;do{l=+g[a+(e<<3)>>2];k=+g[a+(e<<3)+4>>2];h=l*o-k*m;f=k*o+l*m;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(z,l,k,o,m);h=+g[z>>2];f=+g[n>>2]}g[d+(e<<3)>>2]=h;g[d+(e<<3)+4>>2]=f;e=e+1|0}while((e|0)!=(b|0));i=A;return}function gk(a){a=a|0;var b=0,d=0;b=Xp(12)|0;c[b+4>>2]=a;a=a<<2;d=Xp(a)|0;c[b>>2]=d;c[b+8>>2]=0;eq(d|0,0,a|0)|0;return b|0}function hk(a){a=a|0;c[a+8>>2]=0;eq(c[a>>2]|0,0,c[a+4>>2]<<2|0)|0;return}function ik(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function jk(a,b){a=a|0;b=+b;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=b;c[d>>2]=((e+1|0)>>>0)%((c[a+4>>2]|0)>>>0)|0;return}function kk(a,b){a=a|0;b=b|0;c[b>>2]=c[(c[a>>2]|0)+(c[a+8>>2]<<2)>>2];return}function lk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2348]|0;c[b>>2]=40764;Kp(d,40769,b)|0;kb(1)}else{b=Xp(28)|0;c[b+4>>2]=a;e=_j(a)|0;c[b+8>>2]=e;e=1<>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<2;e=Xp(a)|0;c[b>>2]=e;c[b+24>>2]=0;eq(e|0,0,a|0)|0;i=d;return b|0}return 0}function mk(a){a=a|0;c[a+24>>2]=0;eq(c[a>>2]|0,0,c[a+20>>2]<<2|0)|0;return}function nk(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<2);return}function ok(a,b){a=a|0;b=+b;var d=0,e=0,f=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;gq(f|0,f+(c[a+12>>2]<<2)|0,(c[d>>2]<<2)+-4|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g[(c[f>>2]|0)+(d+-1+(c[a>>2]|0)<<2)>>2]=b;return}function pk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function qk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2348]|0;c[b>>2]=40766;Kp(d,40769,b)|0;kb(1)}else{b=Xp(28)|0;c[b+4>>2]=a;e=_j(a)|0;c[b+8>>2]=e;e=1<>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<3;e=Xp(a)|0;c[b>>2]=e;c[b+24>>2]=0;eq(e|0,0,a|0)|0;i=d;return b|0}return 0}function rk(a){a=a|0;c[a+24>>2]=0;eq(c[a>>2]|0,0,c[a+20>>2]<<3|0)|0;return}function sk(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<3);return}function tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;gq(f|0,f+(c[a+12>>2]<<3)|0,(c[d>>2]<<3)+-8|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g=c[b+4>>2]|0;e=d+-1+(c[a>>2]|0)|0;f=c[f>>2]|0;c[f+(e<<3)>>2]=c[b>>2];c[f+(e<<3)+4>>2]=g;return}function uk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function vk(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<2;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function wk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0.0;i=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){f=0.0;e=0.0}else{h=0;f=0.0;e=0.0;do{j=+g[i+(h<<2)>>2];f=f+j*+g[b+(h<<3)>>2];e=e+j*+g[b+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(a|0))}g[d>>2]=f;g[d+4>>2]=e;return}function yk(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<2;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function zk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0;h=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){e=0.0;g[d>>2]=e;return}else{f=0;e=0.0}do{e=e+ +g[h+(f<<2)>>2]*+g[b+(f<<2)>>2];f=f+1|0}while((f|0)!=(a|0));g[d>>2]=e;return}function Bk(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0;e=b<<1;b=e&-4;if(!b){b=0;c=0.0}else{d=0;c=0.0;do{j=+g[a+(d<<2)>>2];i=+g[a+((d|1)<<2)>>2];h=+g[a+((d|2)<<2)>>2];f=+g[a+((d|3)<<2)>>2];c=c+j*j+i*i+h*h+f*f;d=d+4|0}while(d>>>0>>0)}if(b>>>0>=e>>>0){j=c;return +j}do{j=+g[a+(b<<2)>>2];c=c+j*j;b=b+1|0}while((b|0)!=(e|0));return +c}function Ck(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Xp(36)|0;c[g>>2]=a;f=Kc(e,Kc(d,(Ec(b)|0)+a|0)|0)|0;c[g+4>>2]=f;c[g+8>>2]=b;b=Ec(b)|0;c[g+12>>2]=b;c[g+24>>2]=f;f=f<<3;c[g+28>>2]=Xp(f)|0;c[g+32>>2]=Xp(f)|0;c[g+20>>2]=2;f=Xp(40)|0;c[g+16>>2]=f;b=b+a|0;h=f+8|0;c[h>>2]=d;c[f>>2]=b;a=f+4|0;c[a>>2]=Kc(d,b)|0;c[f+12>>2]=Nc(c[h>>2]|0,0)|0;b=Jl(c[a>>2]|0)|0;c[f+16>>2]=b;if((c[h>>2]|0)==1)Ll(b,0);d=c[a>>2]|0;h=f+28|0;c[h>>2]=e;c[f+20>>2]=d;b=f+24|0;c[b>>2]=Kc(e,d)|0;c[f+32>>2]=Nc(c[h>>2]|0,0)|0;b=Jl(c[b>>2]|0)|0;c[f+36>>2]=b;if((c[h>>2]|0)!=1)return g|0;Ll(b,0);return g|0}function Dk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(!a){a=Ck(b,d,e,f)|0;return a|0}if((((c[a>>2]|0)==(b|0)?(c[a+8>>2]|0)==(d|0):0)?(g=c[a+16>>2]|0,(c[g+8>>2]|0)==(e|0)):0)?(c[g+28>>2]|0)==(f|0):0)return a|0;Ek(a);a=Ck(b,d,e,f)|0;return a|0}function Ek(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=a+16|0;if(c[b>>2]|0){e=0;do{Oc(c[(c[d>>2]|0)+(e*20|0)+12>>2]|0);Kl(c[(c[d>>2]|0)+(e*20|0)+16>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+28>>2]|0);Yp(c[a+32>>2]|0);Yp(a);return}function Fk(a){a=a|0;return c[a+4>>2]|0}function Gk(a){a=a|0;return c[a+8>>2]|0}function Hk(a){a=a|0;return c[(c[a+16>>2]|0)+8>>2]|0}function Ik(a){a=a|0;return c[(c[a+16>>2]|0)+28>>2]|0}function Jk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=b+28|0;f=c[i>>2]|0;g=c[b>>2]|0;if(!d)eq(f|0,0,g|0)|0;else gq(f|0,d|0,g|0)|0;g=Fc(c[b+8>>2]|0,c[i>>2]|0,c[b>>2]|0)|0;h=b+12|0;f=c[h>>2]|0;if(!f)f=0;else{d=0;while(1){a[(c[i>>2]|0)+(f+~d+(c[b>>2]|0))>>0]=g;d=d+1|0;f=c[h>>2]|0;if(d>>>0>=f>>>0)break;else g=g>>>8}}Nj(c[i>>2]|0,(c[b>>2]|0)+f|0);f=b+20|0;if(!(c[f>>2]|0)){i=c[i>>2]|0;b=b+4|0;b=c[b>>2]|0;gq(e|0,i|0,b|0)|0;return}g=b+16|0;d=b+32|0;h=0;do{j=c[g>>2]|0;Pc(c[j+(h*20|0)+12>>2]|0,c[j+(h*20|0)>>2]|0,c[i>>2]|0,c[d>>2]|0);Ml(c[(c[g>>2]|0)+(h*20|0)+16>>2]|0,c[d>>2]|0,c[i>>2]|0);h=h+1|0}while(h>>>0<(c[f>>2]|0)>>>0);i=c[i>>2]|0;j=b+4|0;j=c[j>>2]|0;gq(e|0,i|0,j|0)|0;return}function Kk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;gq(c[j>>2]|0,b|0,c[a+4>>2]|0)|0;b=c[a+20>>2]|0;if(b|0){f=a+16|0;g=a+32|0;do{b=b+-1|0;Nl(c[(c[f>>2]|0)+(b*20|0)+16>>2]|0,c[j>>2]|0,c[g>>2]|0);i=c[f>>2]|0;Qc(c[i+(b*20|0)+12>>2]|0,c[i+(b*20|0)>>2]|0,c[g>>2]|0,c[j>>2]|0)}while((b|0)!=0)}h=a+12|0;Oj(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;gq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0>>0);gq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(i,e,a,b)|0;return a|0}function Lk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;gq(c[j>>2]|0,b|0,c[a+4>>2]<<3|0)|0;i=a+16|0;h=a+32|0;Ol(c[(c[i>>2]|0)+36>>2]|0,c[j>>2]|0,c[h>>2]|0);g=c[i>>2]|0;Rc(c[g+32>>2]|0,c[g+20>>2]|0,c[h>>2]|0,c[j>>2]|0);Nl(c[(c[i>>2]|0)+16>>2]|0,c[j>>2]|0,c[h>>2]|0);i=c[i>>2]|0;Qc(c[i+12>>2]|0,c[i>>2]|0,c[h>>2]|0,c[j>>2]|0);h=a+12|0;Oj(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;gq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0>>0);gq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(i,e,a,b)|0;return a|0}function Mk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(gl(a)|0){case 1:{d=Nk(a,b,d,e,f)|0;return d|0}case 2:{d=Pk(a,b,d,e,f)|0;return d|0}case 3:{d=Rk(a,b,d,e,f)|0;return d|0}case 4:{d=Tk(a,b,d,e,f)|0;return d|0}case 5:{d=Vk(a,b,d,e,f)|0;return d|0}default:{Qp(41014,53,1,c[2348]|0)|0;kb(1)}}return 0}function Nk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+32|0;if((i|0)>=(j|0))ba();q=u+24|0;p=u+16|0;r=u+8|0;s=u;t=Xp(72)|0;c[t>>2]=a;c[t+4>>2]=b;c[t+8>>2]=d;c[t+16>>2]=f;e=(e|0)==1?1:-1;c[t+20>>2]=e;d=t+12|0;c[d>>2]=e;c[t+24>>2]=1;c[t+28>>2]=9;f=(_j(a)|0)+-1|0;c[t+40>>2]=f;b=Xp(a<<2)|0;c[t+44>>2]=b;if(!a){f=0;o=0}else{e=0;do{c[b+(e<<2)>>2]=hl(e,f)|0;e=e+1|0}while(e>>>0>>0);f=a<<3;e=c[d>>2]|0;o=c[t>>2]|0}a=Xp(f)|0;c[t+48>>2]=a;k=(e|0)==1?-1.0:1.0;if(!o){i=u;return t|0}l=k*0.0;h=l*2.0-l;m=k*2.0+l*0.0;f=p+4|0;n=+(o>>>0);b=s+4|0;d=r+4|0;if((h!=h|0.0!=0.0)&(m!=m|0.0!=0.0)){e=0;do{ao(p,l,k,2.0,0.0);h=+(e>>>0);m=h*(+g[f>>2]*3.141592653589793)/n;g[s>>2]=h*(+g[p>>2]*3.141592653589793)/n;g[b>>2]=m;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Io(r,q);v=c[d>>2]|0;c[a+(e<<3)>>2]=c[r>>2];c[a+(e<<3)+4>>2]=v;e=e+1|0}while(e>>>0>>0);i=u;return t|0}k=h*3.141592653589793;h=m*3.141592653589793;e=0;do{m=+(e>>>0);g[s>>2]=m*k/n;g[b>>2]=m*h/n;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Io(r,q);v=c[d>>2]|0;c[a+(e<<3)>>2]=c[r>>2];c[a+(e<<3)+4>>2]=v;e=e+1|0}while(e>>>0>>0);i=u;return t|0}function Ok(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0.0,l=0.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,y=0,z=0,A=0,B=0;z=i;i=i+16|0;if((i|0)>=(j|0))ba();y=z;d=c[a>>2]&-4;if(!d)b=a+8|0;else{e=a+44|0;f=a+4|0;b=a+8|0;h=0;do{u=c[(c[e>>2]|0)+(h<<2)>>2]|0;w=c[f>>2]|0;t=c[w+(u<<3)+4>>2]|0;x=c[b>>2]|0;c[x+(h<<3)>>2]=c[w+(u<<3)>>2];c[x+(h<<3)+4>>2]=t;x=h|1;t=c[(c[e>>2]|0)+(x<<2)>>2]|0;u=c[f>>2]|0;w=c[u+(t<<3)+4>>2]|0;v=c[b>>2]|0;c[v+(x<<3)>>2]=c[u+(t<<3)>>2];c[v+(x<<3)+4>>2]=w;x=h|2;v=c[(c[e>>2]|0)+(x<<2)>>2]|0;w=c[f>>2]|0;t=c[w+(v<<3)+4>>2]|0;u=c[b>>2]|0;c[u+(x<<3)>>2]=c[w+(v<<3)>>2];c[u+(x<<3)+4>>2]=t;x=h|3;u=c[(c[e>>2]|0)+(x<<2)>>2]|0;t=c[f>>2]|0;v=c[t+(u<<3)+4>>2]|0;w=c[b>>2]|0;c[w+(x<<3)>>2]=c[t+(u<<3)>>2];c[w+(x<<3)+4>>2]=v;h=h+4|0}while(h>>>0>>0)}u=c[b>>2]|0;v=a+40|0;b=c[v>>2]|0;if(!b){i=z;return}t=c[a>>2]|0;w=a+48|0;x=y+4|0;d=t;r=0;s=1;do{q=s;s=s<<1;t=t>>>1;if(q){f=0;h=0;do{e=c[w>>2]|0;o=+g[e+(h<<3)>>2];p=+g[e+(h<<3)+4>>2];h=((h+t|0)>>>0)%(d>>>0)|0;if(f>>>0>>0){e=f;do{d=e+q|0;b=u+(d<<3)|0;m=+g[b>>2];d=u+(d<<3)+4|0;n=+g[d>>2];l=o*m-p*n;k=p*m+o*n;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(y,m,n,o,p);l=+g[y>>2];k=+g[x>>2]}B=u+(e<<3)|0;A=u+(e<<3)+4|0;n=+g[A>>2]-k;g[b>>2]=+g[B>>2]-l;g[d>>2]=n;n=k+ +g[A>>2];g[B>>2]=l+ +g[B>>2];g[A>>2]=n;e=e+s|0;d=c[a>>2]|0}while(e>>>0>>0)}f=f+1|0}while((f|0)!=(q|0));b=c[v>>2]|0}r=r+1|0}while(r>>>0>>0);i=z;return}function Pk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+224|0;if((i|0)>=(j|0))ba();v=z+56|0;t=z+16|0;s=z+8|0;p=z;A=z+32|0;u=z+48|0;w=z+40|0;x=z+24|0;y=Xp(72)|0;c[y>>2]=a;c[y+4>>2]=b;c[y+8>>2]=d;c[y+16>>2]=f;r=(e|0)==1;b=r?1:-1;c[y+20>>2]=b;c[y+12>>2]=b;c[y+24>>2]=2;c[y+28>>2]=10;Dl(a,v,A);e=c[A>>2]|0;if(e>>>0<2){A=c[2348]|0;c[p>>2]=a;Kp(A,40834,p)|0;c[s>>2]=a;Kp(A,40884,s)|0;kb(1)}else m=0;while(1){if((c[v+(m<<2)>>2]|0)!=2){e=5;break}m=m+1|0;if(m>>>0>=e>>>0){e=6;break}}if((e|0)==5)if(!m){m=c[v>>2]|0;if(!m){A=c[2348]|0;c[s>>2]=a;Kp(A,40884,s)|0;kb(1)}else h=m}else e=6;if((e|0)==6)if(a&15)if(!(a&7))h=8;else h=(a&3|0)==0?4:2;else h=16;if((a>>>0)%(h>>>0)|0|0){A=c[2348]|0;c[t>>2]=a;c[t+4>>2]=h;Kp(A,40941,t)|0;kb(1)}s=(a>>>0)/(h>>>0)|0;c[y+44>>2]=h;c[y+40>>2]=s;A=(h>>>0>s>>>0?h:s)<<3;t=Xp(A)|0;c[y+52>>2]=t;A=Xp(A)|0;c[y+56>>2]=A;d=a<<3;c[y+48>>2]=Xp(d)|0;c[y+64>>2]=Mk(s,t,A,b,f)|0;c[y+68>>2]=Mk(h,t,A,b,f)|0;d=Xp(d)|0;c[y+60>>2]=d;l=r?-1.0:1.0;if(!a){i=z;return y|0}n=l*0.0;k=n*2.0-n;o=l*2.0+n*0.0;m=u+4|0;q=+(a>>>0);e=x+4|0;b=w+4|0;if((k!=k|0.0!=0.0)&(o!=o|0.0!=0.0)){h=0;do{ao(u,n,l,2.0,0.0);k=+(h>>>0);o=k*(+g[m>>2]*3.141592653589793)/q;g[x>>2]=k*(+g[u>>2]*3.141592653589793)/q;g[e>>2]=o;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];Io(w,v);A=c[b>>2]|0;c[d+(h<<3)>>2]=c[w>>2];c[d+(h<<3)+4>>2]=A;h=h+1|0}while(h>>>0>>0);i=z;return y|0}l=k*3.141592653589793;k=o*3.141592653589793;h=0;do{o=+(h>>>0);g[x>>2]=o*l/q;g[e>>2]=o*k/q;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];Io(w,v);A=c[b>>2]|0;c[d+(h<<3)>>2]=c[w>>2];c[d+(h<<3)+4>>2]=A;h=h+1|0}while(h>>>0>>0);i=z;return y|0}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0.0,l=0.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,y=0,z=0;x=i;i=i+16|0;if((i|0)>=(j|0))ba();d=x;w=c[a+40>>2]|0;t=c[a+44>>2]|0;u=c[a+52>>2]|0;v=c[a+56>>2]|0;s=c[a+48>>2]|0;e=c[a+60>>2]|0;gq(s|0,c[a+4>>2]|0,c[a>>2]<<3|0)|0;r=(t|0)==0;a:do if(!r){q=a+64|0;f=d+4|0;if(!w){b=0;while(1){h=c[q>>2]|0;qb[c[h+28>>2]&31](h);b=b+1|0;if((b|0)==(t|0))break a}}else h=0;do{b=0;do{z=(_(b,t)|0)+h|0;y=c[s+(z<<3)+4>>2]|0;c[u+(b<<3)>>2]=c[s+(z<<3)>>2];c[u+(b<<3)+4>>2]=y;b=b+1|0}while((b|0)!=(w|0));b=c[q>>2]|0;qb[c[b+28>>2]&31](b);b=0;do{m=+g[v+(b<<3)>>2];n=+g[v+(b<<3)+4>>2];z=_(b,h)|0;o=+g[e+(z<<3)>>2];p=+g[e+(z<<3)+4>>2];l=m*o-n*p;k=n*o+m*p;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(d,m,n,o,p);l=+g[d>>2];k=+g[f>>2]}z=(_(b,t)|0)+h|0;g[s+(z<<3)>>2]=l;g[s+(z<<3)+4>>2]=k;b=b+1|0}while((b|0)!=(w|0));h=h+1|0}while((h|0)!=(t|0))}while(0);if(!w){i=x;return}h=a+68|0;f=a+8|0;if(r){b=0;do{z=c[h>>2]|0;qb[c[z+28>>2]&31](z);b=b+1|0}while((b|0)!=(w|0));i=x;return}else e=0;do{b=_(e,t)|0;d=0;do{y=d+b|0;z=c[s+(y<<3)+4>>2]|0;c[u+(d<<3)>>2]=c[s+(y<<3)>>2];c[u+(d<<3)+4>>2]=z;d=d+1|0}while((d|0)!=(t|0));b=c[h>>2]|0;qb[c[b+28>>2]&31](b);b=0;do{r=c[v+(b<<3)+4>>2]|0;z=(_(b,w)|0)+e|0;y=c[f>>2]|0;c[y+(z<<3)>>2]=c[v+(b<<3)>>2];c[y+(z<<3)+4>>2]=r;b=b+1|0}while((b|0)!=(t|0));e=e+1|0}while((e|0)!=(w|0));i=x;return}function Rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+48|0;if((i|0)>=(j|0))ba();A=F+40|0;x=F+32|0;B=F;C=F+24|0;D=F+16|0;E=Xp(72)|0;c[E>>2]=a;c[E+4>>2]=b;c[E+8>>2]=d;c[E+16>>2]=f;y=(e|0)==1?1:-1;c[E+20>>2]=y;l=E+12|0;c[l>>2]=y;c[E+24>>2]=3;c[E+28>>2]=11;y=(a<<3)+-8|0;e=Xp(y)|0;o=E+40|0;u=E+48|0;c[u>>2]=e;y=Xp(y)|0;c[E+52>>2]=y;k=a+-1|0;z=Mk(k,e,y,1,f)|0;c[E+56>>2]=z;c[E+60>>2]=Mk(k,y,e,-1,f)|0;e=El(a)|0;b=Xp((a<<2)+-4|0)|0;c[o>>2]=b;a:do if((a|0)!=1){d=0;do{w=d;d=d+1|0;c[b+(w<<2)>>2]=Fl(e,d,a)|0}while(d>>>0>>0);e=c[E>>2]|0;s=(c[l>>2]|0)==1?-1.0:1.0;if((e|0)!=1){t=s*0.0;m=t*2.0-t;n=s*2.0+t*0.0;d=x+4|0;l=c[o>>2]|0;a=B+8|0;v=+(e>>>0);o=D+4|0;w=C+4|0;k=c[u>>2]|0;f=e+-1|0;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){b=0;while(1){ao(x,t,s,2.0,0.0);p=+g[x>>2]*3.141592653589793;q=+g[d>>2]*3.141592653589793;r=+((c[l+(b<<2)>>2]|0)>>>0);n=p*r-q*0.0;m=p*0.0+q*r;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){$n(B,p,q,r,0.0);n=+h[B>>3];m=+h[a>>3]}g[D>>2]=n/v;g[o>>2]=m/v;c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];Io(C,A);u=c[w>>2]|0;c[k+(b<<3)>>2]=c[C>>2];c[k+(b<<3)+4>>2]=u;b=b+1|0;if(b>>>0>=f>>>0)break a}}t=m*3.141592653589793;q=n*3.141592653589793;r=q*0.0;s=t*0.0;b=0;do{p=+((c[l+(b<<2)>>2]|0)>>>0);n=t*p-r;m=s+q*p;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){$n(B,t,q,p,0.0);n=+h[B>>3];m=+h[a>>3]}g[D>>2]=n/v;g[o>>2]=m/v;c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];Io(C,A);x=c[w>>2]|0;c[k+(b<<3)>>2]=c[C>>2];c[k+(b<<3)+4>>2]=x;b=b+1|0}while(b>>>0>>0)}else e=1}else e=1;while(0);qb[c[z+28>>2]&31](z);D=(e<<3)+-8|0;C=Xp(D)|0;c[E+44>>2]=C;fq(C|0,y|0,D|0)|0;i=F;return E|0}function Sk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,k=0.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;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;b=(c[a>>2]|0)+-1|0;s=a+40|0;if(b|0){e=a+4|0;f=a+48|0;d=0;do{u=c[(c[s>>2]|0)+(b+~d<<2)>>2]|0;v=c[e>>2]|0;l=c[v+(u<<3)+4>>2]|0;q=c[f>>2]|0;c[q+(d<<3)>>2]=c[v+(u<<3)>>2];c[q+(d<<3)+4>>2]=l;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(b>>>0>d>>>0)}v=c[a+56>>2]|0;qb[c[v+28>>2]&31](v);if((c[a>>2]|0)!=1){b=a+44|0;d=a+52|0;e=r+4|0;q=0;do{l=c[b>>2]|0;m=+g[l+(q<<3)>>2];n=+g[l+(q<<3)+4>>2];l=c[d>>2]|0;f=l+(q<<3)|0;o=+g[f>>2];l=l+(q<<3)+4|0;p=+g[l>>2];k=m*o-n*p;h=n*o+m*p;if((k!=k|0.0!=0.0)&(h!=h|0.0!=0.0)){ao(r,o,p,m,n);k=+g[r>>2];h=+g[e>>2]}g[f>>2]=k;g[l>>2]=h;q=q+1|0}while(q>>>0<((c[a>>2]|0)+-1|0)>>>0)}l=c[a+60>>2]|0;qb[c[l+28>>2]&31](l);l=a+8|0;v=c[l>>2]|0;g[v>>2]=0.0;g[v+4>>2]=0.0;if(c[a>>2]|0){d=a+4|0;e=0;do{u=c[d>>2]|0;v=c[l>>2]|0;b=v+4|0;p=+g[u+(e<<3)+4>>2]+ +g[b>>2];g[v>>2]=+g[u+(e<<3)>>2]+ +g[v>>2];g[b>>2]=p;e=e+1|0;b=c[a>>2]|0}while(e>>>0>>0);b=b+-1|0;if(!b){i=t;return}}else b=-1;e=a+48|0;f=a+4|0;d=0;do{v=c[(c[s>>2]|0)+(d<<2)>>2]|0;q=c[e>>2]|0;o=+(b>>>0);r=c[f>>2]|0;p=+g[q+(d<<3)+4>>2]/o+ +g[r+4>>2];u=c[l>>2]|0;g[u+(v<<3)>>2]=+g[q+(d<<3)>>2]/o+ +g[r>>2];g[u+(v<<3)+4>>2]=p;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(d>>>0>>0);i=t;return}function Tk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.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;G=i;i=i+48|0;if((i|0)>=(j|0))ba();B=G+40|0;z=G+32|0;C=G;D=G+24|0;E=G+16|0;F=Xp(72)|0;c[F>>2]=a;c[F+4>>2]=b;c[F+8>>2]=d;o=F+16|0;c[o>>2]=f;b=(e|0)==1?1:-1;c[F+20>>2]=b;n=F+12|0;c[n>>2]=b;c[F+24>>2]=4;c[F+28>>2]=12;b=El(a)|0;d=Xp((a<<2)+-4|0)|0;A=F+40|0;t=F+44|0;c[t>>2]=d;if((a|0)==1)b=-3;else{e=a+-1|0;f=0;do{y=f;f=f+1|0;c[d+(y<<2)>>2]=Fl(b,f,a)|0}while(f>>>0>>0);b=(a<<1)+-5|0}c[A>>2]=b;d=0;do{b=b>>>1;d=d+1|0}while((b|0)!=0);b=d;w=1<>2]=w;a=w<<3;x=Xp(a)|0;c[F+52>>2]=x;a=Xp(a)|0;y=F+56|0;c[y>>2]=a;d=c[o>>2]|0;v=F+60|0;c[v>>2]=Mk(w,x,a,1,d)|0;c[F+64>>2]=Mk(w,a,x,-1,d)|0;r=(c[n>>2]|0)==1?-1.0:1.0;s=r*0.0;k=s*2.0-s;l=r*2.0+s*0.0;d=z+4|0;a=c[F>>2]|0;o=a+-1|0;e=c[t>>2]|0;f=C+8|0;u=+(a>>>0);a=E+4|0;n=D+4|0;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){b=0;do{ao(z,s,r,2.0,0.0);m=+g[z>>2]*3.141592653589793;p=+g[d>>2]*3.141592653589793;q=+((c[e+(((b>>>0)%(o>>>0)|0)<<2)>>2]|0)>>>0);l=m*q-p*0.0;k=m*0.0+p*q;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){$n(C,m,p,q,0.0);l=+h[C>>3];k=+h[f>>3]}g[E>>2]=l/u;g[a>>2]=k/u;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];Io(D,B);t=c[n>>2]|0;c[x+(b<<3)>>2]=c[D>>2];c[x+(b<<3)+4>>2]=t;b=b+1|0}while(b>>>0>>0);E=c[v>>2]|0;C=E+28|0;C=c[C>>2]|0;qb[C&31](E);E=c[A>>2]|0;E=E<<3;C=Xp(E)|0;D=F+48|0;c[D>>2]=C;D=c[y>>2]|0;gq(C|0,D|0,E|0)|0;i=G;return F|0}s=k*3.141592653589793;p=l*3.141592653589793;q=p*0.0;r=s*0.0;b=0;do{l=+((c[e+(((b>>>0)%(o>>>0)|0)<<2)>>2]|0)>>>0);m=s*l-q;k=r+p*l;if((m!=m|0.0!=0.0)&(k!=k|0.0!=0.0)){$n(C,s,p,l,0.0);m=+h[C>>3];k=+h[f>>3]}g[E>>2]=m/u;g[a>>2]=k/u;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];Io(D,B);z=c[n>>2]|0;c[x+(b<<3)>>2]=c[D>>2];c[x+(b<<3)+4>>2]=z;b=b+1|0}while(b>>>0>>0);E=c[v>>2]|0;C=E+28|0;C=c[C>>2]|0;qb[C&31](E);E=c[A>>2]|0;E=E<<3;C=Xp(E)|0;D=F+48|0;c[D>>2]=C;D=c[y>>2]|0;gq(C|0,D|0,E|0)|0;i=G;return F|0}function Uk(a){a=a|0;var b=0,d=0.0,e=0,f=0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.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;w=i;i=i+16|0;if((i|0)>=(j|0))ba();p=w;u=c[a+52>>2]|0;q=c[a+56>>2]|0;r=c[a+48>>2]|0;v=c[a+44>>2]|0;s=c[a+40>>2]|0;k=c[v+((c[a>>2]|0)+-2<<2)>>2]|0;t=a+4|0;f=c[t>>2]|0;b=c[f+(k<<3)+4>>2]|0;c[u>>2]=c[f+(k<<3)>>2];c[u+4>>2]=b;b=c[a>>2]|0;k=s+1|0;if((k|0)!=(b|0)){e=0;do{e=e+1|0;g[u+(e<<3)>>2]=0.0;g[u+(e<<3)+4>>2]=0.0;b=c[a>>2]|0}while(e>>>0<(k-b|0)>>>0)}e=b+-1|0;if(e>>>0>1){f=1;do{z=c[v+(e+~f<<2)>>2]|0;A=c[t>>2]|0;y=c[A+(z<<3)+4>>2]|0;x=k+f-b|0;c[u+(x<<3)>>2]=c[A+(z<<3)>>2];c[u+(x<<3)+4>>2]=y;f=f+1|0;b=c[a>>2]|0;e=b+-1|0}while(e>>>0>f>>>0)}A=c[a+60>>2]|0;qb[c[A+28>>2]&31](A);if(s|0){b=p+4|0;k=0;do{l=+g[r+(k<<3)>>2];m=+g[r+(k<<3)+4>>2];e=q+(k<<3)|0;n=+g[e>>2];f=q+(k<<3)+4|0;o=+g[f>>2];h=l*n-m*o;d=m*n+l*o;if((h!=h|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(p,n,o,l,m);h=+g[p>>2];d=+g[b>>2]}g[e>>2]=h;g[f>>2]=d;k=k+1|0}while((k|0)!=(s|0))}f=c[a+64>>2]|0;qb[c[f+28>>2]&31](f);f=a+8|0;A=c[f>>2]|0;g[A>>2]=0.0;g[A+4>>2]=0.0;if(c[a>>2]|0){e=0;do{z=c[t>>2]|0;A=c[f>>2]|0;b=A+4|0;o=+g[z+(e<<3)+4>>2]+ +g[b>>2];g[A>>2]=+g[z+(e<<3)>>2]+ +g[A>>2];g[b>>2]=o;e=e+1|0;b=c[a>>2]|0}while(e>>>0>>0);if((b|0)==1){i=w;return}}d=+(s>>>0);b=0;do{A=c[v+(b<<2)>>2]|0;y=c[t>>2]|0;o=+g[u+(b<<3)+4>>2]/d+ +g[y+4>>2];z=c[f>>2]|0;g[z+(A<<3)>>2]=+g[u+(b<<3)>>2]/d+ +g[y>>2];g[z+(A<<3)+4>>2]=o;b=b+1|0}while(b>>>0<((c[a>>2]|0)+-1|0)>>>0);i=w;return}function Vk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.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.0,F=0.0;B=i;i=i+32|0;if((i|0)>=(j|0))ba();w=B+24|0;x=B+16|0;y=B+8|0;z=B;A=Xp(72)|0;c[A>>2]=a;c[A+4>>2]=b;c[A+8>>2]=d;c[A+16>>2]=f;b=(e|0)==1;v=b?1:-1;c[A+20>>2]=v;c[A+12>>2]=v;c[A+24>>2]=5;v=A+40|0;c[v>>2]=0;f=A+44|0;c[f>>2]=0;switch(a|0){case 2:{c[A+28>>2]=13;i=B;return A|0}case 3:{c[A+28>>2]=14;i=B;return A|0}case 4:{c[A+28>>2]=15;i=B;return A|0}case 5:{c[A+28>>2]=16;i=B;return A|0}case 6:{c[A+28>>2]=17;i=B;return A|0}case 7:{c[A+28>>2]=18;i=B;return A|0}case 8:{c[A+28>>2]=19;i=B;return A|0}default:{e=A+28|0;if((a|0)==16){c[e>>2]=20;i=B;return A|0}c[e>>2]=21;t=Xp(a<<3)|0;c[v>>2]=t;u=Xp(a<<2)|0;c[f>>2]=u;k=b?-1.0:1.0;if(!a){i=B;return A|0}d=a>>>0>1;l=k*0.0;p=l*2.0-l;q=k*2.0+l*0.0;s=(p!=p|0.0!=0.0)&(q!=q|0.0!=0.0);m=x+4|0;n=z+4|0;o=y+4|0;p=p*3.141592653589793;q=q*3.141592653589793;r=0;do{if(d){e=c[A>>2]|0;h=+(e>>>0);b=c[v>>2]|0;if(s){f=1;do{ao(x,l,k,2.0,0.0);F=+((_(f,r)|0)>>>0);E=F*(+g[m>>2]*3.141592653589793)/h;g[z>>2]=F*(+g[x>>2]*3.141592653589793)/h;g[n>>2]=E;c[w>>2]=c[z>>2];c[w+4>>2]=c[z+4>>2];Io(y,w);D=c[o>>2]|0;C=f+-1|0;c[b+(C<<3)>>2]=c[y>>2];c[b+(C<<3)+4>>2]=D;f=f+1|0}while(f>>>0>>0)}else{f=1;do{F=+((_(f,r)|0)>>>0);g[z>>2]=F*p/h;g[n>>2]=F*q/h;c[w>>2]=c[z>>2];c[w+4>>2]=c[z+4>>2];Io(y,w);C=c[o>>2]|0;D=f+-1|0;c[b+(D<<3)>>2]=c[y>>2];c[b+(D<<3)+4>>2]=C;f=f+1|0}while(f>>>0>>0)}}else e=a;c[u+(r<<2)>>2]=Gl(t,e+-1|0)|0;r=r+1|0}while(r>>>0>>0);i=B;return A|0}}return 0}function Wk(a){a=a|0;var b=0.0,d=0,e=0,f=0;d=a+4|0;f=c[d>>2]|0;b=+g[f+4>>2]+ +g[f+12>>2];a=a+8|0;e=c[a>>2]|0;g[e>>2]=+g[f>>2]+ +g[f+8>>2];g[e+4>>2]=b;d=c[d>>2]|0;b=+g[d+4>>2]-+g[d+12>>2];a=c[a>>2]|0;g[a+8>>2]=+g[d>>2]-+g[d+8>>2];g[a+12>>2]=b;return}function Xk(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+80|0;if((i|0)>=(j|0))ba();v=C+64|0;e=C+56|0;p=C+48|0;o=C+40|0;r=C+32|0;x=C+24|0;w=C+16|0;y=C+8|0;A=C;z=a+4|0;D=c[z>>2]|0;s=+g[D+4>>2]+ +g[D+12>>2]+ +g[D+20>>2];B=a+8|0;d=c[B>>2]|0;g[d>>2]=+g[D>>2]+ +g[D+8>>2]+ +g[D+16>>2];g[d+4>>2]=s;d=c[z>>2]|0;s=+g[d>>2];t=+g[d+4>>2];b=+g[d+8>>2];f=+g[d+12>>2];h=f*.8660253882408142-b*.5;k=f*-.5-b*.8660253882408142;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(e,b,f,-.5,-.8660253882408142);h=+g[e>>2];q=+g[e+4>>2];d=c[z>>2]|0}else q=k;n=+g[d+16>>2];m=+g[d+20>>2];g[o>>2]=-.5;g[o+4>>2]=-.8660253882408142;c[v>>2]=c[o>>2];c[v+4>>2]=c[o+4>>2];Ko(p,v);l=+g[p>>2];k=+g[p+4>>2];f=n*l-m*k;b=m*l+n*k;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(r,n,m,l,k);f=+g[r>>2];b=+g[r+4>>2]}u=s+h+f;s=t+q+b;D=c[z>>2]|0;n=+g[D>>2];q=+g[D+4>>2];l=+g[D+8>>2];m=+g[D+12>>2];g[w>>2]=-.5;g[w+4>>2]=-.8660253882408142;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];Ko(x,v);h=+g[x>>2];b=+g[x+4>>2];k=l*h-m*b;f=m*h+l*b;if((k!=k|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(y,l,m,h,b);m=+g[y+4>>2];l=+g[y>>2]}else{m=f;l=k}D=c[z>>2]|0;h=+g[D+16>>2];k=+g[D+20>>2];f=k*.8660253882408142-h*.5;b=k*-.5-h*.8660253882408142;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,h,k,-.5,-.8660253882408142);f=+g[A>>2];b=+g[A+4>>2]}f=n+l+f;b=q+m+b;e=c[B>>2]|0;d=e+8|0;e=e+12|0;if((c[a+12>>2]|0)==1){g[d>>2]=u;g[e>>2]=s;D=c[B>>2]|0;g[D+16>>2]=f;g[D+20>>2]=b;i=C;return}else{g[d>>2]=f;g[e>>2]=b;D=c[B>>2]|0;g[D+16>>2]=u;g[D+20>>2]=s;i=C;return}}function Yk(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=0.0,i=0.0,j=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0;l=c[a+4>>2]|0;p=c[a+8>>2]|0;z=c[l>>2]|0;y=c[l+4>>2]|0;m=p+4|0;c[p>>2]=z;c[m>>2]=y;B=c[l+16>>2]|0;A=c[l+20>>2]|0;f=p+8|0;b=p+12|0;c[f>>2]=B;c[b>>2]=A;x=c[l+8>>2]|0;w=c[l+12>>2]|0;t=p+16|0;s=p+20|0;c[t>>2]=x;c[s>>2]=w;v=+g[l+24>>2];u=+g[l+28>>2];l=p+24|0;j=p+28|0;o=(c[k>>2]=B,+g[k>>2]);r=(c[k>>2]=A,+g[k>>2]);q=(c[k>>2]=z,+g[k>>2]);n=(c[k>>2]=y,+g[k>>2]);i=q-o;e=n-r;g[f>>2]=i;g[b>>2]=e;q=o+q;n=r+n;r=(c[k>>2]=x,+g[k>>2]);o=(c[k>>2]=w,+g[k>>2]);d=r-v;h=o-u;g[l>>2]=d;g[j>>2]=h;r=v+r;o=u+o;g[t>>2]=q-r;g[s>>2]=n-o;g[p>>2]=r+q;g[m>>2]=o+n;h=h-d*0.0;a=(c[a+12>>2]|0)==-1;h=a?-h:h;d=a?d:-d;g[l>>2]=i-h;g[j>>2]=e-d;g[f>>2]=i+h;g[b>>2]=e+d;return}function Zk(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=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,A=0.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.0,N=0,O=0.0,P=0,Q=0,R=0.0,S=0,T=0.0,U=0,V=0,W=0,X=0,Y=0.0,Z=0,_=0.0,$=0,aa=0,ca=0,da=0.0,ea=0.0,fa=0,ga=0,ha=0,ia=0;ia=i;i=i+208|0;if((i|0)>=(j|0))ba();v=ia+192|0;p=ia+184|0;q=ia+176|0;s=ia+168|0;r=ia+160|0;u=ia+152|0;t=ia+144|0;x=ia+136|0;w=ia+128|0;y=ia+120|0;B=ia+112|0;C=ia+104|0;D=ia+96|0;E=ia+88|0;F=ia+80|0;G=ia+72|0;H=ia+64|0;I=ia+56|0;J=ia+48|0;K=ia+40|0;L=ia+32|0;U=ia+24|0;X=ia+16|0;aa=ia+8|0;ga=ia;N=c[a+4>>2]|0;ha=c[a+8>>2]|0;P=N+4|0;Q=N+8|0;S=N+12|0;V=N+16|0;W=N+20|0;Z=N+24|0;$=N+28|0;ca=N+32|0;fa=N+36|0;ea=+g[P>>2]+ +g[S>>2]+ +g[W>>2]+ +g[$>>2]+ +g[fa>>2];g[ha>>2]=+g[N>>2]+ +g[Q>>2]+ +g[V>>2]+ +g[Z>>2]+ +g[ca>>2];g[ha+4>>2]=ea;if((c[a+12>>2]|0)==-1){g[q>>2]=.30901700258255005;g[q+4>>2]=-.9510565400123596;c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];Ko(p,v);da=+g[p>>2];ea=+g[p+4>>2];g[r>>2]=-.80901700258255;g[r+4>>2]=-.5877852439880371;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];Ko(s,v);_=+g[s>>2];Y=+g[s+4>>2]}else{da=.30901700258255005;ea=-.9510565400123596;_=-.80901700258255;Y=-.5877852439880371}g[t>>2]=da;g[t+4>>2]=ea;c[v>>2]=c[t>>2];c[v+4>>2]=c[t+4>>2];Ko(u,v);O=+g[u>>2];M=+g[u+4>>2];g[w>>2]=_;g[w+4>>2]=Y;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];Ko(x,v);T=+g[x>>2];R=+g[x+4>>2];z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=da*b-ea*d;f=ea*b+da*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(y,b,d,da,ea);e=+g[y>>2];f=+g[y+4>>2]}d=+g[V>>2];h=+g[W>>2];b=_*d-Y*h;k=Y*d+_*h;if((b!=b|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(B,d,h,_,Y);o=+g[B>>2];k=+g[B+4>>2]}else o=b;b=+g[Z>>2];d=+g[$>>2];h=T*b-R*d;l=R*b+T*d;if((h!=h|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(C,b,d,T,R);h=+g[C>>2];l=+g[C+4>>2]}m=+g[ca>>2];n=+g[fa>>2];d=O*m-M*n;b=M*m+O*n;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(D,m,n,O,M);d=+g[D>>2];b=+g[D+4>>2]}g[ha+8>>2]=z+e+o+h+d;g[ha+12>>2]=A+f+k+l+b;z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=_*b-Y*d;f=Y*b+_*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(E,b,d,_,Y);e=+g[E>>2];f=+g[E+4>>2]}b=+g[V>>2];d=+g[W>>2];h=O*b-M*d;k=M*b+O*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(F,b,d,O,M);h=+g[F>>2];k=+g[F+4>>2]}b=+g[Z>>2];d=+g[$>>2];l=da*b-ea*d;m=ea*b+da*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(G,b,d,da,ea);l=+g[G>>2];m=+g[G+4>>2]}n=+g[ca>>2];o=+g[fa>>2];d=T*n-R*o;b=R*n+T*o;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(H,n,o,T,R);d=+g[H>>2];b=+g[H+4>>2]}g[ha+16>>2]=z+e+h+l+d;g[ha+20>>2]=A+f+k+m+b;z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=T*b-R*d;f=R*b+T*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,b,d,T,R);e=+g[I>>2];f=+g[I+4>>2]}b=+g[V>>2];d=+g[W>>2];h=da*b-ea*d;k=ea*b+da*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(J,b,d,da,ea);h=+g[J>>2];k=+g[J+4>>2]}b=+g[Z>>2];d=+g[$>>2];l=O*b-M*d;m=M*b+O*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(K,b,d,O,M);l=+g[K>>2];m=+g[K+4>>2]}n=+g[ca>>2];o=+g[fa>>2];d=_*n-Y*o;b=Y*n+_*o;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(L,n,o,_,Y);d=+g[L>>2];b=+g[L+4>>2]}g[ha+24>>2]=z+e+h+l+d;g[ha+28>>2]=A+f+k+m+b;n=+g[N>>2];o=+g[P>>2];e=+g[Q>>2];b=+g[S>>2];d=O*e-M*b;f=M*e+O*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(U,e,b,O,M);m=+g[U>>2];l=+g[U+4>>2]}else{m=d;l=f}e=+g[V>>2];b=+g[W>>2];d=T*e-R*b;f=R*e+T*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(X,e,b,T,R);k=+g[X>>2];h=+g[X+4>>2]}else{k=d;h=f}f=+g[Z>>2];e=+g[$>>2];d=_*f-Y*e;b=Y*f+_*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(aa,f,e,_,Y);d=+g[aa>>2];b=+g[aa+4>>2]}k=n+m+k+d;h=o+l+h+b;f=+g[ca>>2];b=+g[fa>>2];d=da*f-ea*b;e=ea*f+da*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){da=d;ea=e;da=k+da;ea=h+ea;ga=ha+32|0;ha=ha+36|0;g[ga>>2]=da;g[ha>>2]=ea;i=ia;return}ao(ga,f,b,da,ea);da=+g[ga>>2];ea=+g[ga+4>>2];da=k+da;ea=h+ea;ga=ha+32|0;ha=ha+36|0;g[ga>>2]=da;g[ha>>2]=ea;i=ia;return}function _k(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.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.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0.0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+208|0;if((i|0)>=(j|0))ba();n=ha+192|0;o=ha+184|0;p=ha+176|0;w=ha+168|0;q=ha+160|0;r=ha+152|0;s=ha+144|0;v=ha+136|0;t=ha+128|0;x=ha+120|0;y=ha+112|0;z=ha+104|0;A=ha+96|0;B=ha+88|0;C=ha+80|0;D=ha+72|0;E=ha+64|0;F=ha+56|0;G=ha+48|0;H=ha+40|0;K=ha+32|0;R=ha+24|0;W=ha+16|0;ca=ha+8|0;fa=ha;L=c[a+4>>2]|0;ga=c[a+8>>2]|0;M=L+4|0;N=L+8|0;O=L+12|0;S=L+16|0;T=L+20|0;X=L+24|0;Y=L+28|0;Z=L+32|0;_=L+36|0;da=L+40|0;ea=L+44|0;aa=+g[M>>2]+ +g[O>>2]+ +g[T>>2]+ +g[Y>>2]+ +g[_>>2]+ +g[ea>>2];g[ga>>2]=+g[L>>2]+ +g[N>>2]+ +g[S>>2]+ +g[X>>2]+ +g[Z>>2]+ +g[da>>2];g[ga+4>>2]=aa;if((c[a+12>>2]|0)==1){g[p>>2]=.5;g[p+4>>2]=-.8660253882408142;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];Ko(o,n);U=-+g[o>>2];V=-+g[o+4>>2];g[q>>2]=.5;g[q+4>>2]=-.8660253882408142;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];Ko(w,n);$=.5;aa=-.8660253882408142;Q=-.5;P=.8660253882408142;J=+g[w>>2];I=+g[w+4>>2]}else{g[s>>2]=.5;g[s+4>>2]=-.8660253882408142;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];Ko(r,n);$=+g[r>>2];aa=+g[r+4>>2];g[t>>2]=.5;g[t+4>>2]=-.8660253882408142;c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];Ko(v,n);U=-.5;V=.8660253882408142;Q=-+g[v>>2];P=-+g[v+4>>2];J=.5;I=-.8660253882408142}l=+g[L>>2];u=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=$*b-aa*d;f=aa*b+$*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(x,b,d,$,aa);e=+g[x>>2];k=+g[x+4>>2]}else k=f;f=+g[S>>2];h=+g[T>>2];d=U*f-V*h;b=V*f+U*h;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(y,f,h,U,V);d=+g[y>>2];b=+g[y+4>>2]}m=l+e+d-+g[X>>2];l=u+k+b-+g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(z,b,d,Q,P);e=+g[z>>2];f=+g[z+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=J*h-I*k;b=I*h+J*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,h,k,J,I);d=+g[A>>2];b=+g[A+4>>2]}g[ga+8>>2]=m+e+d;g[ga+12>>2]=l+f+b;l=+g[L>>2];m=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=U*b-V*d;f=V*b+U*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(B,b,d,U,V);e=+g[B>>2];f=+g[B+4>>2]}h=+g[S>>2];k=+g[T>>2];d=Q*h-P*k;b=P*h+Q*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(C,h,k,Q,P);d=+g[C>>2];b=+g[C+4>>2]}u=l+e+d+ +g[X>>2];l=m+f+b+ +g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=U*b-V*d;f=V*b+U*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(D,b,d,U,V);e=+g[D>>2];f=+g[D+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=Q*h-P*k;b=P*h+Q*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(E,h,k,Q,P);d=+g[E>>2];b=+g[E+4>>2]}g[ga+16>>2]=u+e+d;g[ga+20>>2]=l+f+b;l=+g[M>>2]-+g[O>>2]+ +g[T>>2]-+g[Y>>2]+ +g[_>>2]-+g[ea>>2];g[ga+24>>2]=+g[L>>2]-+g[N>>2]+ +g[S>>2]-+g[X>>2]+ +g[Z>>2]-+g[da>>2];g[ga+28>>2]=l;l=+g[L>>2];m=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(F,b,d,Q,P);e=+g[F>>2];f=+g[F+4>>2]}h=+g[S>>2];k=+g[T>>2];d=U*h-V*k;b=V*h+U*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(G,h,k,U,V);d=+g[G>>2];b=+g[G+4>>2]}u=l+e+d+ +g[X>>2];l=m+f+b+ +g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(H,b,d,Q,P);e=+g[H>>2];f=+g[H+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=U*h-V*k;b=V*h+U*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(K,h,k,U,V);d=+g[K>>2];b=+g[K+4>>2]}g[ga+32>>2]=u+e+d;g[ga+36>>2]=l+f+b;l=+g[L>>2];m=+g[M>>2];e=+g[N>>2];b=+g[O>>2];d=J*e-I*b;f=I*e+J*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(R,e,b,J,I);k=+g[R>>2];h=+g[R+4>>2]}else{k=d;h=f}f=+g[S>>2];e=+g[T>>2];d=Q*f-P*e;b=P*f+Q*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(W,f,e,Q,P);d=+g[W>>2];b=+g[W+4>>2]}k=l+k+d-+g[X>>2];h=m+h+b-+g[Y>>2];f=+g[Z>>2];e=+g[_>>2];d=U*f-V*e;b=V*f+U*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ca,f,e,U,V);d=+g[ca>>2];b=+g[ca+4>>2]}k=k+d;h=h+b;f=+g[da>>2];b=+g[ea>>2];d=$*f-aa*b;e=aa*f+$*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){$=d;aa=e;$=k+$;aa=h+aa;fa=ga+40|0;ga=ga+44|0;g[fa>>2]=$;g[ga>>2]=aa;i=ha;return}ao(fa,f,b,$,aa);$=+g[fa>>2];aa=+g[fa+4>>2];$=k+$;aa=h+aa;fa=ga+40|0;ga=ga+44|0;g[fa>>2]=$;g[ga>>2]=aa;i=ha;return}function $k(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.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.0,H=0.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,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0.0,pa=0,qa=0.0,ra=0,sa=0,ta=0,ua=0,va=0.0,wa=0,xa=0.0,ya=0,za=0,Aa=0,Ba=0.0,Ca=0.0,Da=0,Ea=0,Fa=0,Ga=0.0,Ha=0.0,Ia=0,Ja=0,Ka=0,La=0,Ma=0.0,Na=0.0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0;Sa=i;i=i+400|0;if((i|0)>=(j|0))ba();D=Sa+384|0;t=Sa+376|0;u=Sa+368|0;v=Sa+360|0;w=Sa+352|0;y=Sa+344|0;x=Sa+336|0;A=Sa+328|0;z=Sa+320|0;C=Sa+312|0;B=Sa+304|0;F=Sa+296|0;E=Sa+288|0;I=Sa+280|0;J=Sa+272|0;K=Sa+264|0;L=Sa+256|0;M=Sa+248|0;N=Sa+240|0;O=Sa+232|0;P=Sa+224|0;Q=Sa+216|0;R=Sa+208|0;S=Sa+200|0;T=Sa+192|0;U=Sa+184|0;V=Sa+176|0;W=Sa+168|0;X=Sa+160|0;Y=Sa+152|0;Z=Sa+144|0;_=Sa+136|0;$=Sa+128|0;aa=Sa+120|0;ca=Sa+112|0;da=Sa+104|0;ea=Sa+96|0;fa=Sa+88|0;ga=Sa+80|0;ha=Sa+72|0;ia=Sa+64|0;la=Sa+56|0;ma=Sa+48|0;ta=Sa+40|0;ya=Sa+32|0;Da=Sa+24|0;Ia=Sa+16|0;La=Sa+8|0;Qa=Sa;na=c[a+4>>2]|0;Ra=c[a+8>>2]|0;pa=na+4|0;ra=na+8|0;sa=na+12|0;ua=na+16|0;wa=na+20|0;za=na+24|0;Aa=na+28|0;Ea=na+32|0;Fa=na+36|0;Ja=na+40|0;Ka=na+44|0;Oa=na+48|0;Pa=na+52|0;Na=+g[pa>>2]+ +g[sa>>2]+ +g[wa>>2]+ +g[Aa>>2]+ +g[Fa>>2]+ +g[Ka>>2]+ +g[Pa>>2];g[Ra>>2]=+g[na>>2]+ +g[ra>>2]+ +g[ua>>2]+ +g[za>>2]+ +g[Ea>>2]+ +g[Ja>>2]+ +g[Oa>>2];g[Ra+4>>2]=Na;if((c[a+12>>2]|0)==1){Ma=.6234897971153259;Na=-.7818315029144287;Ga=-.22252093255519867;Ha=-.9749279022216797;Ca=-.9009688496589661;Ba=-.4338837265968323}else{g[u>>2]=.6234897971153259;g[u+4>>2]=-.7818315029144287;c[D>>2]=c[u>>2];c[D+4>>2]=c[u+4>>2];Ko(t,D);Ma=+g[t>>2];Na=+g[t+4>>2];g[w>>2]=-.22252093255519867;g[w+4>>2]=-.9749279022216797;c[D>>2]=c[w>>2];c[D+4>>2]=c[w+4>>2];Ko(v,D);Ga=+g[v>>2];Ha=+g[v+4>>2];g[x>>2]=-.9009688496589661;g[x+4>>2]=-.4338837265968323;c[D>>2]=c[x>>2];c[D+4>>2]=c[x+4>>2];Ko(y,D);Ca=+g[y>>2];Ba=+g[y+4>>2]}g[z>>2]=Ca;g[z+4>>2]=Ba;c[D>>2]=c[z>>2];c[D+4>>2]=c[z+4>>2];Ko(A,D);xa=+g[A>>2];va=+g[A+4>>2];g[B>>2]=Ga;g[B+4>>2]=Ha;c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];Ko(C,D);qa=+g[C>>2];oa=+g[C+4>>2];g[E>>2]=Ma;g[E+4>>2]=Na;c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];Ko(F,D);ka=+g[F>>2];ja=+g[F+4>>2];G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ma*b-Na*d;f=Na*b+Ma*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,b,d,Ma,Na);e=+g[I>>2];f=+g[I+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ga*b-Ha*d;k=Ha*b+Ga*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(J,b,d,Ga,Ha);h=+g[J>>2];k=+g[J+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ca*b-Ba*d;m=Ba*b+Ca*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(K,b,d,Ca,Ba);l=+g[K>>2];m=+g[K+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=xa*b-va*d;o=va*b+xa*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(L,b,d,xa,va);n=+g[L>>2];o=+g[L+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=qa*b-oa*d;q=oa*b+qa*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(M,b,d,qa,oa);p=+g[M>>2];q=+g[M+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=ka*r-ja*s;b=ja*r+ka*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(N,r,s,ka,ja);d=+g[N>>2];b=+g[N+4>>2]}g[Ra+8>>2]=G+e+h+l+n+p+d;g[Ra+12>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ga*b-Ha*d;f=Ha*b+Ga*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(O,b,d,Ga,Ha);e=+g[O>>2];f=+g[O+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=xa*b-va*d;k=va*b+xa*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(P,b,d,xa,va);h=+g[P>>2];k=+g[P+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=ka*b-ja*d;m=ja*b+ka*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(Q,b,d,ka,ja);l=+g[Q>>2];m=+g[Q+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=Ma*b-Na*d;o=Na*b+Ma*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(R,b,d,Ma,Na);n=+g[R>>2];o=+g[R+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=Ca*b-Ba*d;q=Ba*b+Ca*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(S,b,d,Ca,Ba);p=+g[S>>2];q=+g[S+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=qa*r-oa*s;b=oa*r+qa*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(T,r,s,qa,oa);d=+g[T>>2];b=+g[T+4>>2]}g[Ra+16>>2]=G+e+h+l+n+p+d;g[Ra+20>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ca*b-Ba*d;f=Ba*b+Ca*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(U,b,d,Ca,Ba);e=+g[U>>2];f=+g[U+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=ka*b-ja*d;k=ja*b+ka*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(V,b,d,ka,ja);h=+g[V>>2];k=+g[V+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ga*b-Ha*d;m=Ha*b+Ga*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(W,b,d,Ga,Ha);l=+g[W>>2];m=+g[W+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=qa*b-oa*d;o=oa*b+qa*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(X,b,d,qa,oa);n=+g[X>>2];o=+g[X+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=Ma*b-Na*d;q=Na*b+Ma*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(Y,b,d,Ma,Na);p=+g[Y>>2];q=+g[Y+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=xa*r-va*s;b=va*r+xa*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(Z,r,s,xa,va);d=+g[Z>>2];b=+g[Z+4>>2]}g[Ra+24>>2]=G+e+h+l+n+p+d;g[Ra+28>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=xa*b-va*d;f=va*b+xa*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(_,b,d,xa,va);e=+g[_>>2];f=+g[_+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ma*b-Na*d;k=Na*b+Ma*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao($,b,d,Ma,Na);h=+g[$>>2];k=+g[$+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=qa*b-oa*d;m=oa*b+qa*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(aa,b,d,qa,oa);l=+g[aa>>2];m=+g[aa+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=Ga*b-Ha*d;o=Ha*b+Ga*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(ca,b,d,Ga,Ha);n=+g[ca>>2];o=+g[ca+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=ka*b-ja*d;q=ja*b+ka*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(da,b,d,ka,ja);p=+g[da>>2];q=+g[da+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=Ca*r-Ba*s;b=Ba*r+Ca*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ea,r,s,Ca,Ba);d=+g[ea>>2];b=+g[ea+4>>2]}g[Ra+32>>2]=G+e+h+l+n+p+d;g[Ra+36>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=qa*b-oa*d;f=oa*b+qa*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(fa,b,d,qa,oa);e=+g[fa>>2];f=+g[fa+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ca*b-Ba*d;k=Ba*b+Ca*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(ga,b,d,Ca,Ba);h=+g[ga>>2];k=+g[ga+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ma*b-Na*d;m=Na*b+Ma*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(ha,b,d,Ma,Na);l=+g[ha>>2];m=+g[ha+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=ka*b-ja*d;o=ja*b+ka*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(ia,b,d,ka,ja);n=+g[ia>>2];o=+g[ia+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=xa*b-va*d;q=va*b+xa*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(la,b,d,xa,va);p=+g[la>>2];q=+g[la+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=Ga*r-Ha*s;b=Ha*r+Ga*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ma,r,s,Ga,Ha);d=+g[ma>>2];b=+g[ma+4>>2]}g[Ra+40>>2]=G+e+h+l+n+p+d;g[Ra+44>>2]=H+f+k+m+o+q+b;r=+g[na>>2];s=+g[pa>>2];e=+g[ra>>2];b=+g[sa>>2];d=ka*e-ja*b;f=ja*e+ka*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(ta,e,b,ka,ja);q=+g[ta>>2];p=+g[ta+4>>2]}else{q=d;p=f}e=+g[ua>>2];b=+g[wa>>2];d=qa*e-oa*b;f=oa*e+qa*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(ya,e,b,qa,oa);o=+g[ya>>2];n=+g[ya+4>>2]}else{o=d;n=f}e=+g[za>>2];b=+g[Aa>>2];d=xa*e-va*b;f=va*e+xa*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(Da,e,b,xa,va);m=+g[Da>>2];l=+g[Da+4>>2]}else{m=d;l=f}e=+g[Ea>>2];b=+g[Fa>>2];d=Ca*e-Ba*b;f=Ba*e+Ca*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(Ia,e,b,Ca,Ba);k=+g[Ia>>2];h=+g[Ia+4>>2]}else{k=d;h=f}f=+g[Ja>>2];e=+g[Ka>>2];d=Ga*f-Ha*e;b=Ha*f+Ga*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(La,f,e,Ga,Ha);d=+g[La>>2];b=+g[La+4>>2]}k=r+q+o+m+k+d;h=s+p+n+l+h+b;f=+g[Oa>>2];b=+g[Pa>>2];d=Ma*f-Na*b;e=Na*f+Ma*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){Ma=d;Na=e;Ma=k+Ma;Na=h+Na;Qa=Ra+48|0;Ra=Ra+52|0;g[Qa>>2]=Ma;g[Ra>>2]=Na;i=Sa;return}ao(Qa,f,b,Ma,Na);Ma=+g[Qa>>2];Na=+g[Qa+4>>2];Ma=k+Ma;Na=h+Na;Qa=Ra+48|0;Ra=Ra+52|0;g[Qa>>2]=Ma;g[Ra>>2]=Na;i=Sa;return}function al(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,l=0,m=0,n=0.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.0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0;C=i;i=i+64|0;if((i|0)>=(j|0))ba();l=C+48|0;m=C+32|0;w=C+16|0;x=C;A=c[a+4>>2]|0;E=c[a+8>>2]|0;v=(c[a+12>>2]|0)==1;ea=c[A>>2]|0;da=c[A+4>>2]|0;D=E+4|0;c[E>>2]=ea;c[D>>2]=da;ga=c[A+32>>2]|0;fa=c[A+36>>2]|0;a=E+8|0;o=E+12|0;c[a>>2]=ga;c[o>>2]=fa;$=c[A+16>>2]|0;_=c[A+20>>2]|0;p=E+16|0;q=E+20|0;c[p>>2]=$;c[q>>2]=_;ca=c[A+48>>2]|0;aa=c[A+52>>2]|0;y=E+24|0;z=E+28|0;c[y>>2]=ca;c[z>>2]=aa;X=c[A+8>>2]|0;W=c[A+12>>2]|0;H=E+32|0;G=E+36|0;c[H>>2]=X;c[G>>2]=W;Z=c[A+40>>2]|0;Y=c[A+44>>2]|0;r=E+40|0;s=E+44|0;c[r>>2]=Z;c[s>>2]=Y;V=c[A+24>>2]|0;U=c[A+28>>2]|0;t=E+48|0;u=E+52|0;c[t>>2]=V;c[u>>2]=U;T=+g[A+56>>2];S=+g[A+60>>2];A=E+56|0;B=E+60|0;O=(c[k>>2]=ga,+g[k>>2]);P=(c[k>>2]=fa,+g[k>>2]);d=(c[k>>2]=ea,+g[k>>2]);b=(c[k>>2]=da,+g[k>>2]);N=d-O;K=b-P;d=O+d;b=P+b;P=(c[k>>2]=ca,+g[k>>2]);O=(c[k>>2]=aa,+g[k>>2]);R=(c[k>>2]=$,+g[k>>2]);Q=(c[k>>2]=_,+g[k>>2]);L=R-P;M=Q-O;R=P+R;Q=O+Q;O=(c[k>>2]=Z,+g[k>>2]);P=(c[k>>2]=Y,+g[k>>2]);F=(c[k>>2]=X,+g[k>>2]);e=(c[k>>2]=W,+g[k>>2]);J=F-O;n=e-P;F=O+F;e=P+e;P=(c[k>>2]=V,+g[k>>2]);O=(c[k>>2]=U,+g[k>>2]);I=P-T;f=O-S;P=T+P;O=S+O;g[p>>2]=d-R;g[q>>2]=b-Q;d=R+d;b=Q+b;g[t>>2]=F-P;g[u>>2]=e-O;F=P+F;e=O+e;O=L*0.0;M=v?M-O:O-M;L=v?-L:L;g[y>>2]=N-M;g[z>>2]=K-L;g[a>>2]=N+M;g[o>>2]=L+K;K=I*0.0;f=v?f-K:K-f;I=v?-I:I;g[A>>2]=J-f;g[B>>2]=n-I;f=J+f;n=I+n;g[r>>2]=f;g[s>>2]=n;g[H>>2]=d-F;g[G>>2]=b-e;g[E>>2]=F+d;g[D>>2]=e+b;b=f*.7071067811865476;e=n*.7071067811865476;if(v){d=b+e;b=e-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(l,f,n,.7071067811865476,-.7071067811865476);d=+h[l>>3];b=+h[l+8>>3]}}else{d=b-e;b=b+e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(m,f,n,.7071067811865476,.7071067811865476);d=+h[m>>3];b=+h[m+8>>3]}}f=b;e=d;T=+g[a>>2];b=+g[o>>2];g[r>>2]=T-e;g[s>>2]=b-f;g[a>>2]=e+T;g[o>>2]=f+b;b=+g[u>>2];f=+g[t>>2];T=f*0.0;b=v?b-T:T-b;f=v?-f:f;T=+g[p>>2];e=+g[q>>2];g[t>>2]=T-b;g[u>>2]=e-f;g[p>>2]=T+b;g[q>>2]=f+e;e=+g[A>>2];f=+g[B>>2];b=e*-.7071067811865476;if(v){T=f*-.7071067811865476;d=b-T;b=b+T;if(!((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0))){Q=d;R=b;S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}$n(w,e,f,-.7071067811865476,-.7071067811865476);Q=+h[w>>3];R=+h[w+8>>3];S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}else{d=f*.7071067811865476;b=b-d;d=e*.7071067811865476-d;if(!((b!=b|0.0!=0.0)&(d!=d|0.0!=0.0))){Q=b;R=d;S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}$n(x,e,f,-.7071067811865476,.7071067811865476);Q=+h[x>>3];R=+h[x+8>>3];S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}}function bl(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,k=0.0,l=0.0,m=0.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,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.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0;Aa=i;i=i+432|0;if((i|0)>=(j|0))ba();n=Aa+424|0;p=Aa+416|0;r=Aa+408|0;t=Aa+400|0;o=Aa+392|0;q=Aa+384|0;s=Aa+376|0;u=Aa+368|0;w=Aa+304|0;y=Aa+288|0;z=Aa+360|0;B=Aa+352|0;D=Aa+272|0;F=Aa+256|0;v=Aa+240|0;x=Aa+224|0;A=Aa+344|0;C=Aa+336|0;E=Aa+208|0;G=Aa+192|0;L=Aa+176|0;R=Aa+160|0;T=Aa+144|0;Z=Aa+328|0;$=Aa+128|0;ga=Aa+112|0;ia=Aa+96|0;M=Aa+80|0;S=Aa+64|0;U=Aa+48|0;_=Aa+320|0;aa=Aa+32|0;ha=Aa+16|0;ja=Aa;wa=c[a+4>>2]|0;J=c[a+8>>2]|0;K=(c[a+12>>2]|0)==1;xa=c[wa+4>>2]|0;a=J+4|0;c[J>>2]=c[wa>>2];c[a>>2]=xa;xa=c[wa+68>>2]|0;N=J+8|0;O=J+12|0;c[N>>2]=c[wa+64>>2];c[O>>2]=xa;xa=c[wa+36>>2]|0;X=J+16|0;Y=J+20|0;c[X>>2]=c[wa+32>>2];c[Y>>2]=xa;xa=c[wa+100>>2]|0;ea=J+24|0;fa=J+28|0;c[ea>>2]=c[wa+96>>2];c[fa>>2]=xa;xa=c[wa+20>>2]|0;ma=J+32|0;na=J+36|0;c[ma>>2]=c[wa+16>>2];c[na>>2]=xa;xa=c[wa+84>>2]|0;qa=J+40|0;ra=J+44|0;c[qa>>2]=c[wa+80>>2];c[ra>>2]=xa;xa=c[wa+52>>2]|0;ua=J+48|0;va=J+52|0;c[ua>>2]=c[wa+48>>2];c[va>>2]=xa;xa=c[wa+116>>2]|0;ya=J+56|0;za=J+60|0;c[ya>>2]=c[wa+112>>2];c[za>>2]=xa;xa=c[wa+12>>2]|0;H=J+64|0;I=J+68|0;c[H>>2]=c[wa+8>>2];c[I>>2]=xa;xa=c[wa+76>>2]|0;P=J+72|0;Q=J+76|0;c[P>>2]=c[wa+72>>2];c[Q>>2]=xa;xa=c[wa+44>>2]|0;V=J+80|0;W=J+84|0;c[V>>2]=c[wa+40>>2];c[W>>2]=xa;xa=c[wa+108>>2]|0;ca=J+88|0;da=J+92|0;c[ca>>2]=c[wa+104>>2];c[da>>2]=xa;xa=c[wa+28>>2]|0;ka=J+96|0;la=J+100|0;c[ka>>2]=c[wa+24>>2];c[la>>2]=xa;xa=c[wa+92>>2]|0;oa=J+104|0;pa=J+108|0;c[oa>>2]=c[wa+88>>2];c[pa>>2]=xa;xa=c[wa+60>>2]|0;sa=J+112|0;ta=J+116|0;c[sa>>2]=c[wa+56>>2];c[ta>>2]=xa;Na=+g[wa+120>>2];Ma=+g[wa+124>>2];wa=J+120|0;xa=J+124|0;l=+g[N>>2];m=+g[O>>2];Ka=+g[J>>2];Ia=+g[a>>2];g[N>>2]=Ka-l;g[O>>2]=Ia-m;Ka=l+Ka;Ia=m+Ia;m=+g[ea>>2];l=+g[fa>>2];La=+g[X>>2];Ja=+g[Y>>2];g[ea>>2]=La-m;g[fa>>2]=Ja-l;La=m+La;Ja=l+Ja;l=+g[qa>>2];m=+g[ra>>2];Ga=+g[ma>>2];Ea=+g[na>>2];g[qa>>2]=Ga-l;g[ra>>2]=Ea-m;Ga=l+Ga;Ea=m+Ea;m=+g[ya>>2];l=+g[za>>2];Ha=+g[ua>>2];Fa=+g[va>>2];f=Ha-m;e=Fa-l;g[ya>>2]=f;g[za>>2]=e;Ha=m+Ha;Fa=l+Fa;l=+g[P>>2];m=+g[Q>>2];Ca=+g[H>>2];d=+g[I>>2];g[P>>2]=Ca-l;g[Q>>2]=d-m;Ca=l+Ca;d=m+d;m=+g[ca>>2];l=+g[da>>2];Da=+g[V>>2];Ba=+g[W>>2];g[ca>>2]=Da-m;g[da>>2]=Ba-l;Da=m+Da;Ba=l+Ba;l=+g[oa>>2];m=+g[pa>>2];b=+g[ka>>2];k=+g[la>>2];g[oa>>2]=b-l;g[pa>>2]=k-m;b=l+b;k=m+k;m=+g[sa>>2];l=+g[ta>>2];g[wa>>2]=m-Na;g[xa>>2]=l-Ma;m=Na+m;l=Ma+l;g[X>>2]=Ka-La;g[Y>>2]=Ia-Ja;g[J>>2]=La+Ka;g[a>>2]=Ja+Ia;g[ua>>2]=Ga-Ha;g[va>>2]=Ea-Fa;g[ma>>2]=Ha+Ga;g[na>>2]=Fa+Ea;g[V>>2]=Ca-Da;g[W>>2]=d-Ba;g[H>>2]=Da+Ca;g[I>>2]=Ba+d;g[sa>>2]=b-m;g[ta>>2]=k-l;g[ka>>2]=m+b;g[la>>2]=l+k;k=+g[ea>>2];l=+g[fa>>2];b=k*0.0;if(K){d=l-b;b=l*-0.0-k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(n,-k,-l,0.0,1.0);d=+g[n>>2];b=+g[n+4>>2];f=+g[ya>>2];e=+g[za>>2]}Ma=+g[N>>2];Na=+g[O>>2];g[ea>>2]=Ma-d;g[fa>>2]=Na-b;g[N>>2]=d+Ma;g[O>>2]=b+Na;d=e-f*0.0;b=e*-0.0-f;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(p,-f,-e,0.0,1.0);d=+g[p>>2];b=+g[p+4>>2]}f=+g[qa>>2];e=+g[ra>>2];g[ya>>2]=f-d;g[za>>2]=e-b;g[qa>>2]=d+f;g[ra>>2]=b+e;e=+g[ca>>2];f=+g[da>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(r,-e,-f,0.0,1.0);d=+g[r>>2];b=+g[r+4>>2]}f=+g[P>>2];e=+g[Q>>2];g[ca>>2]=f-d;g[da>>2]=e-b;g[P>>2]=d+f;g[Q>>2]=b+e;d=+g[wa>>2];e=+g[xa>>2];f=e-d*0.0;b=e*-0.0-d;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(t,-d,-e,0.0,1.0);f=+g[t>>2];b=+g[t+4>>2]}Na=+g[oa>>2];e=+g[pa>>2];g[wa>>2]=Na-f;g[xa>>2]=e-b;e=b+e;f=f+Na}else{d=b-l;b=k+l*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(o,k,l,0.0,1.0);d=+g[o>>2];b=+g[o+4>>2];f=+g[ya>>2];e=+g[za>>2]}Ma=+g[N>>2];Na=+g[O>>2];g[ea>>2]=Ma-d;g[fa>>2]=Na-b;g[N>>2]=d+Ma;g[O>>2]=b+Na;d=f*0.0-e;b=f+e*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(q,f,e,0.0,1.0);d=+g[q>>2];b=+g[q+4>>2]}f=+g[qa>>2];e=+g[ra>>2];g[ya>>2]=f-d;g[za>>2]=e-b;g[qa>>2]=d+f;g[ra>>2]=b+e;e=+g[ca>>2];f=+g[da>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(s,e,f,0.0,1.0);d=+g[s>>2];b=+g[s+4>>2]}f=+g[P>>2];e=+g[Q>>2];g[ca>>2]=f-d;g[da>>2]=e-b;g[P>>2]=d+f;g[Q>>2]=b+e;d=+g[wa>>2];e=+g[xa>>2];f=d*0.0-e;b=d+e*0.0;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(u,d,e,0.0,1.0);f=+g[u>>2];b=+g[u+4>>2]}Na=+g[oa>>2];e=+g[pa>>2];g[wa>>2]=Na-f;g[xa>>2]=e-b;e=b+e;f=f+Na}g[oa>>2]=f;g[pa>>2]=e;l=+g[ma>>2];m=+g[na>>2];b=+g[J>>2];k=+g[a>>2];g[ma>>2]=b-l;g[na>>2]=k-m;g[J>>2]=l+b;g[a>>2]=m+k;k=+g[ka>>2];m=+g[la>>2];b=+g[H>>2];l=+g[I>>2];g[ka>>2]=b-k;g[la>>2]=l-m;g[H>>2]=k+b;g[I>>2]=m+l;l=+g[qa>>2];m=+g[ra>>2];b=l*.70710677;k=m*.70710677;if(K){d=b+k;b=k-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(w,l,m,.70710677,-.70710677);d=+h[w>>3];b=+h[w+8>>3];f=+g[oa>>2];e=+g[pa>>2]}Ma=d;Na=b;d=+g[N>>2];b=+g[O>>2];g[qa>>2]=d-Ma;g[ra>>2]=b-Na;g[N>>2]=Ma+d;g[O>>2]=Na+b;b=f*.70710677;Na=e*.70710677;d=b+Na;b=Na-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(y,f,e,.70710677,-.70710677);d=+h[y>>3];b=+h[y+8>>3]}Na=d;f=b;d=+g[P>>2];e=+g[Q>>2];g[oa>>2]=d-Na;g[pa>>2]=e-f;g[P>>2]=Na+d;g[Q>>2]=f+e;e=+g[ua>>2];f=+g[va>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(z,-e,-f,0.0,1.0);d=+g[z>>2];b=+g[z+4>>2]}f=+g[X>>2];e=+g[Y>>2];g[ua>>2]=f-d;g[va>>2]=e-b;g[X>>2]=d+f;g[Y>>2]=b+e;e=+g[sa>>2];f=+g[ta>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(B,-e,-f,0.0,1.0);d=+g[B>>2];b=+g[B+4>>2]}f=+g[V>>2];e=+g[W>>2];g[sa>>2]=f-d;g[ta>>2]=e-b;g[V>>2]=d+f;g[W>>2]=b+e;e=+g[ya>>2];f=+g[za>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(D,e,f,-.70710677,-.70710677);d=+h[D>>3];b=+h[D+8>>3]}f=b;Na=+g[ea>>2];e=+g[fa>>2];g[ya>>2]=Na-d;g[za>>2]=e-f;g[ea>>2]=d+Na;g[fa>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(F,e,f,-.70710677,-.70710677);d=+h[F>>3];b=+h[F+8>>3]}Na=d;Ma=b;d=+g[ca>>2];b=+g[da>>2];g[wa>>2]=d-Na;g[xa>>2]=b-Ma;b=Ma+b;d=Na+d}else{d=b-k;b=b+k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(v,l,m,.70710677,.70710677);d=+h[v>>3];b=+h[v+8>>3];f=+g[oa>>2];e=+g[pa>>2]}Ma=d;d=+g[N>>2];Na=+g[O>>2];g[qa>>2]=d-Ma;g[ra>>2]=Na-b;g[N>>2]=Ma+d;g[O>>2]=b+Na;Na=f*.70710677;b=e*.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(x,f,e,.70710677,.70710677);d=+h[x>>3];b=+h[x+8>>3]}Na=d;f=b;d=+g[P>>2];e=+g[Q>>2];g[oa>>2]=d-Na;g[pa>>2]=e-f;g[P>>2]=Na+d;g[Q>>2]=f+e;e=+g[ua>>2];f=+g[va>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,e,f,0.0,1.0);d=+g[A>>2];b=+g[A+4>>2]}f=+g[X>>2];e=+g[Y>>2];g[ua>>2]=f-d;g[va>>2]=e-b;g[X>>2]=d+f;g[Y>>2]=b+e;e=+g[sa>>2];f=+g[ta>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(C,e,f,0.0,1.0);d=+g[C>>2];b=+g[C+4>>2]}f=+g[V>>2];e=+g[W>>2];g[sa>>2]=f-d;g[ta>>2]=e-b;g[V>>2]=d+f;g[W>>2]=b+e;e=+g[ya>>2];f=+g[za>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(E,e,f,-.70710677,.70710677);d=+h[E>>3];b=+h[E+8>>3]}f=b;b=+g[ea>>2];e=+g[fa>>2];g[ya>>2]=b-d;g[za>>2]=e-f;g[ea>>2]=d+b;g[fa>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(G,e,f,-.70710677,.70710677);d=+h[G>>3];b=+h[G+8>>3]}Na=d;Ma=b;d=+g[ca>>2];b=+g[da>>2];g[wa>>2]=d-Na;g[xa>>2]=b-Ma;b=Ma+b;d=Na+d}g[ca>>2]=d;g[da>>2]=b;d=+g[H>>2];l=+g[I>>2];b=+g[J>>2];k=+g[a>>2];g[H>>2]=b-d;g[I>>2]=k-l;g[J>>2]=d+b;g[a>>2]=l+k;k=+g[P>>2];l=+g[Q>>2];b=k*.9238795;d=l*.38268346;e=k*.38268346;f=l*.9238795;if(K){d=b+d;b=f-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(L,k,l,.9238795,-.38268346);d=+h[L>>3];b=+h[L+8>>3]}Na=d;f=b;b=+g[N>>2];e=+g[O>>2];g[P>>2]=b-Na;g[Q>>2]=e-f;g[N>>2]=Na+b;g[O>>2]=f+e;e=+g[V>>2];f=+g[W>>2];b=e*.70710677;Na=f*.70710677;d=b+Na;b=Na-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(R,e,f,.70710677,-.70710677);d=+h[R>>3];b=+h[R+8>>3]}Na=d;f=b;d=+g[X>>2];e=+g[Y>>2];g[V>>2]=d-Na;g[W>>2]=e-f;g[X>>2]=Na+d;g[Y>>2]=f+e;e=+g[ca>>2];f=+g[da>>2];d=e*.38268343+f*.9238795;b=f*.38268343-e*.9238795;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(T,e,f,.38268343,-.9238795);d=+h[T>>3];b=+h[T+8>>3]}Na=d;f=b;d=+g[ea>>2];e=+g[fa>>2];g[ca>>2]=d-Na;g[da>>2]=e-f;g[ea>>2]=Na+d;g[fa>>2]=f+e;e=+g[ka>>2];f=+g[la>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(Z,-e,-f,0.0,1.0);d=+g[Z>>2];b=+g[Z+4>>2]}f=+g[ma>>2];e=+g[na>>2];g[ka>>2]=f-d;g[la>>2]=e-b;g[ma>>2]=d+f;g[na>>2]=b+e;e=+g[oa>>2];f=+g[pa>>2];d=f*.92387956-e*.3826834;b=f*-.3826834-e*.92387956;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n($,e,f,-.3826834,-.92387956);d=+h[$>>3];b=+h[$+8>>3]}f=b;Na=+g[qa>>2];e=+g[ra>>2];g[oa>>2]=Na-d;g[pa>>2]=e-f;g[qa>>2]=d+Na;g[ra>>2]=f+e;e=+g[sa>>2];f=+g[ta>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ga,e,f,-.70710677,-.70710677);d=+h[ga>>3];b=+h[ga+8>>3]}Na=d;f=b;d=+g[ua>>2];e=+g[va>>2];g[sa>>2]=d-Na;g[ta>>2]=e-f;g[ua>>2]=Na+d;g[va>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];d=f*.38268349-e*.9238795;b=f*-.9238795-e*.38268349;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ia,e,f,-.9238795,-.38268349);d=+h[ia>>3];b=+h[ia+8>>3]}La=d;Ka=b;Ma=+g[ya>>2];Na=+g[za>>2];g[wa>>2]=Ma-La;g[xa>>2]=Na-Ka;Na=Ka+Na;Ma=La+Ma;g[ya>>2]=Ma;g[za>>2]=Na;i=Aa;return}else{d=b-d;b=e+f;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(M,k,l,.9238795,.38268346);d=+h[M>>3];b=+h[M+8>>3]}f=b;Na=+g[N>>2];e=+g[O>>2];g[P>>2]=Na-d;g[Q>>2]=e-f;g[N>>2]=d+Na;g[O>>2]=f+e;e=+g[V>>2];f=+g[W>>2];Na=e*.70710677;b=f*.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(S,e,f,.70710677,.70710677);d=+h[S>>3];b=+h[S+8>>3]}Na=d;f=b;d=+g[X>>2];e=+g[Y>>2];g[V>>2]=d-Na;g[W>>2]=e-f;g[X>>2]=Na+d;g[Y>>2]=f+e;e=+g[ca>>2];f=+g[da>>2];d=e*.38268343-f*.9238795;b=e*.9238795+f*.38268343;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(U,e,f,.38268343,.9238795);d=+h[U>>3];b=+h[U+8>>3]}Na=d;f=b;d=+g[ea>>2];e=+g[fa>>2];g[ca>>2]=d-Na;g[da>>2]=e-f;g[ea>>2]=Na+d;g[fa>>2]=f+e;e=+g[ka>>2];f=+g[la>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(_,e,f,0.0,1.0);d=+g[_>>2];b=+g[_+4>>2]}f=+g[ma>>2];e=+g[na>>2];g[ka>>2]=f-d;g[la>>2]=e-b;g[ma>>2]=d+f;g[na>>2]=b+e;e=+g[oa>>2];f=+g[pa>>2];d=e*-.3826834-f*.92387956;b=e*.92387956-f*.3826834;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(aa,e,f,-.3826834,.92387956);d=+h[aa>>3];b=+h[aa+8>>3]}f=b;b=+g[qa>>2];e=+g[ra>>2];g[oa>>2]=b-d;g[pa>>2]=e-f;g[qa>>2]=d+b;g[ra>>2]=f+e;e=+g[sa>>2];f=+g[ta>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ha,e,f,-.70710677,.70710677);d=+h[ha>>3];b=+h[ha+8>>3]}Na=d;f=b;d=+g[ua>>2];e=+g[va>>2];g[sa>>2]=d-Na;g[ta>>2]=e-f;g[ua>>2]=Na+d;g[va>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];d=e*-.9238795-f*.38268349;b=e*.38268349-f*.9238795;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ja,e,f,-.9238795,.38268349);d=+h[ja>>3];b=+h[ja+8>>3]}La=d;Ka=b;Ma=+g[ya>>2];Na=+g[za>>2];g[wa>>2]=Ma-La;g[xa>>2]=Na-Ka;Na=Ka+Na;Ma=La+Ma;g[ya>>2]=Ma;g[za>>2]=Na;i=Aa;return}}function cl(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=0;d=c[a>>2]|0;if(!d)return;e=a+44|0;f=a+4|0;a=a+8|0;b=0;do{Il(c[(c[e>>2]|0)+(b<<2)>>2]|0,(c[f>>2]|0)+8|0,(c[a>>2]|0)+(b<<3)|0);k=c[f>>2]|0;h=c[a>>2]|0;j=h+(b<<3)|0;h=h+(b<<3)+4|0;i=+g[k+4>>2]+ +g[h>>2];g[j>>2]=+g[k>>2]+ +g[j>>2];g[h>>2]=i;b=b+1|0}while((b|0)!=(d|0));return}function dl(a){a=a|0;var b=0,d=0;switch(c[a+20>>2]|0){case -1:case 1:{switch(c[a+24>>2]|0){case 5:{b=c[a+40>>2]|0;if(b|0)Yp(b);d=a+44|0;b=c[d>>2]|0;if(b|0){if(c[a>>2]|0){Hl(c[b>>2]|0);if((c[a>>2]|0)>>>0>1){b=1;do{Hl(c[(c[d>>2]|0)+(b<<2)>>2]|0);b=b+1|0}while(b>>>0<(c[a>>2]|0)>>>0)}b=c[d>>2]|0}Yp(b)}Yp(a);return}case 1:{Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(a);return}case 2:{dl(c[a+64>>2]|0);dl(c[a+68>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+60>>2]|0);Yp(a);return}case 3:{Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);dl(c[a+56>>2]|0);dl(c[a+60>>2]|0);Yp(a);return}case 4:{Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+60>>2]|0);dl(c[a+64>>2]|0);Yp(a);return}default:{Qp(41068,54,1,c[2348]|0)|0;kb(1)}}break}case 23:case 22:case 21:case 20:case 13:case 12:case 11:case 10:{Yp(a);return}case 31:case 30:return;default:{Qp(41123,52,1,c[2348]|0)|0;kb(1)}}}function el(a){a=a|0;qb[c[a+28>>2]&31](a);return}function fl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Mk(a,b,d,e,f)|0;qb[c[d+28>>2]&31](d);dl(d);return}function gl(a){a=a|0;if(!a){Qp(41176,58,1,c[2348]|0)|0;a=0;return a|0}if((a|1|0)==17|((a|0)==13|(a>>>0<9|(a|0)==11))){a=5;return a|0}if(((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1){a=2;return a|0}if(!(Cl(a)|0)){a=2;return a|0}a=a+-1|0;a=((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1?3:4;return a|0}function hl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b){b=0;return b|0}else{c=a;a=0;d=0}while(1){a=a<<1|c&1;d=d+1|0;if((d|0)==(b|0))break;else c=c>>>1}return a|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();p=q;jl(a+1|0,c);e=+O(+(+(((a<<1)+-1|0)>>>0)*.6931471824645996));f=(a|0)==0;if(f){g[d>>2]=1.0;g[d+4>>2]=0.0;i=q;return}else b=0;do{r=c+(b<<3)|0;o=c+(b<<3)+4|0;n=+g[o>>2]/e;g[r>>2]=+g[r>>2]/e;g[o>>2]=n;b=b+1|0}while((b|0)!=(a|0));o=d+4|0;g[d>>2]=1.0;g[o>>2]=0.0;if(f){i=q;return}b=p+4|0;e=1.0;h=0.0;f=0;do{k=+g[c+(f<<3)>>2];l=+g[c+(f<<3)+4>>2];m=k*e-l*h;n=l*e+k*h;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(p,e,h,k,l);e=+g[p>>2];h=+g[b>>2]}else{e=m;h=n}g[d>>2]=e;g[o>>2]=h;f=f+1|0}while((f|0)!=(a|0));i=q;return}function jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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,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;I=i;i=i+64|0;if((i|0)>=(j|0))ba();E=I+56|0;e=I+48|0;f=I+40|0;v=I+24|0;y=I+16|0;D=I+32|0;F=I+8|0;G=I;z=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();A=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();H=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(a>>>0>1){h=A+4|0;k=e+4|0;l=z+4|0;q=v+4|0;r=f+4|0;s=H+4|0;t=y+4|0;B=1;C=1;while(1){u=(B+(C&1)|0)>>>1;w=B&1;d=w+B|0;x=d>>>1;switch(B|0){case 1:{g[A>>2]=-1.0;g[h>>2]=0.0;g[H>>2]=-1.0;g[s>>2]=0.0;break}case 2:{g[A>>2]=-1.0;g[h>>2]=0.0;g[H>>2]=-1.5;g[s>>2]=.8660253882408142;break}default:{p=+g[A>>2];if(!w){n=+g[h>>2];o=p*2.0-n*0.0;m=p*0.0+n*2.0;if((o!=o|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(e,2.0,0.0,p,n);o=+g[e>>2];m=+g[k>>2]}J=c[l>>2]|0;c[v>>2]=c[z>>2];c[q>>2]=J;c[E>>2]=c[v>>2];c[E+4>>2]=c[v+4>>2];Ko(f,E);n=m-+g[r>>2];m=o-+g[f>>2]}else{n=0.0;m=p*2.0-+g[z>>2]}g[H>>2]=m;g[s>>2]=n;if(d>>>0>3){d=1;do{J=d-w|0;o=+g[A+(J<<3)>>2];p=+g[A+(J<<3)+4>>2];n=o*2.0-p*0.0;m=o*0.0+p*2.0;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(y,2.0,0.0,o,p);n=+g[y>>2];m=+g[t>>2]}J=d+-1|0;p=m-+g[z+(J<<3)+4>>2];g[H+(d<<3)>>2]=n-+g[z+(J<<3)>>2];g[H+(d<<3)+4>>2]=p;d=d+1|0}while(d>>>0>>0)}if(x|0){d=0;do{K=H+(d<<3)|0;J=H+(d<<3)+4|0;kl(B,+g[K>>2],+g[J>>2],E,D);p=+g[D>>2];g[K>>2]=+g[E>>2]+p*0.0;g[J>>2]=p;d=d+1|0}while((d|0)!=(u|0))}}}fq(z|0,A|0,x-w<<3|0)|0;fq(A|0,H|0,x<<3|0)|0;B=B+1|0;if((B|0)==(a|0))break a;else C=C^1}}while(0);d=a&1;e=(a-d|0)>>>1;if(e|0){f=G+4|0;h=F+4|0;k=a>>>1;l=0;do{J=e-l+-1|0;D=c[H+(J<<3)>>2]|0;J=c[H+(J<<3)+4>>2]|0;K=l<<1;c[b+(K<<3)>>2]=D;c[b+(K<<3)+4>>2]=J;c[G>>2]=D;c[f>>2]=J;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);J=c[h>>2]|0;K=K|1;c[b+(K<<3)>>2]=c[F>>2];c[b+(K<<3)+4>>2]=J;l=l+1|0}while((l|0)!=(k|0))}if(!d){i=I;return}J=c[H+4>>2]|0;K=a+-1|0;c[b+(K<<3)>>2]=c[H>>2];c[b+(K<<3)+4>>2]=J;i=I;return}function kl(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0;if(a>>>0<2){Qp(41235,53,1,c[2348]|0)|0;kb(1)}t=0;while(1){k=b*b-d*d;n=b*2.0*d;o=2;p=1.0;q=b+1.0;r=0.0;s=d;while(1){l=+(((o<<1)+-1|0)>>>0);m=q*l+k*p-n*r;l=n*p+(k*r+s*l);h=o>>>0>>0;i=h?l:s;j=h?m:q;o=o+1|0;if(o>>>0>a>>>0)break;else{p=h?q:p;q=j;r=h?s:r;s=i}}k=d*i+(m-b*j);i=l-b*i-d*j;j=i*i+k*k;if(j==0.0){h=8;break}b=b+-(l*i+m*k)/j;d=d+-(l*k-m*i)/j;t=t+1|0;if(t>>>0>=50){h=8;break}}if((h|0)==8){g[e>>2]=b;g[f>>2]=d;return}}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0.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;w=i;i=i+48|0;if((i|0)>=(j|0))ba();b=w+32|0;f=w+24|0;h=w+16|0;q=w+8|0;r=w;v=a&1;if((a-v|0)>>>0<2)b=0;else{s=a+-1|0;k=+(a<<1>>>0);l=h+4|0;m=f+4|0;n=r+4|0;o=q+4|0;p=a>>>1;t=0;u=0;while(1){t=t+1|0;z=+((s+(t<<1)|0)>>>0)*3.141592653589793/k;g[h>>2]=z*0.0;g[l>>2]=z;c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];Io(f,b);y=c[m>>2]|0;x=u|1;c[d+(u<<3)>>2]=c[f>>2];c[d+(u<<3)+4>>2]=y;g[r>>2]=z*-0.0;g[n>>2]=-z;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];Io(q,b);y=c[o>>2]|0;c[d+(x<<3)>>2]=c[q>>2];c[d+(x<<3)+4>>2]=y;if((t|0)==(p|0))break;else u=u+2|0}b=p<<1}if(v){g[d+(b<<3)>>2]=-1.0;g[d+(b<<3)+4>>2]=0.0;b=b|1}if((b|0)==(a|0)){g[e>>2]=1.0;g[e+4>>2]=0.0;i=w;return}else Ha(41363,41289,62,41313)}function ml(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;var f=0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;s=i;i=i+16|0;if((i|0)>=(j|0))ba();r=s;m=b*b;k=+O(+(1.0/m+1.0));b=1.0/b;l=1.0/+(a>>>0);n=+P(+(b+k),+l);l=+P(+(k-b),+l);b=(n+l)*.5;l=(n-l)*.5;q=a&1;if((a-q|0)>>>0<2)c=0;else{c=a+-1|0;h=+(a<<1>>>0);k=b*0.0;f=a>>>1;o=0;p=0;while(1){o=o+1|0;n=+((c+(o<<1)|0)>>>0)*3.141592653589793/h;v=l*+Q(+n);n=+R(+n);u=k*n;n=b*n;t=p|1;g[d+(p<<3)>>2]=v-u;g[d+(p<<3)+4>>2]=-n;g[d+(t<<3)>>2]=v+u;g[d+(t<<3)+4>>2]=n;if((o|0)==(f|0))break;else p=p+2|0}c=f<<1}f=(q|0)!=0;if(f){g[d+(c<<3)>>2]=-l;g[d+(c<<3)+4>>2]=0.0;c=c|1}if((c|0)!=(a|0))Ha(41363,41326,85,41350);if(f)b=1.0;else b=1.0/+O(+(m+1.0));f=e+4|0;g[e>>2]=b;g[f>>2]=0.0;if(!a){i=s;return}o=r+4|0;h=0.0;c=0;do{k=+g[d+(c<<3)>>2];l=+g[d+(c<<3)+4>>2];m=k*b-l*h;n=l*b+k*h;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(r,b,h,k,l);b=+g[r>>2];h=+g[o>>2]}else{b=m;h=n}g[e>>2]=b;g[f>>2]=h;c=c+1|0}while((c|0)!=(a|0));i=s;return}function nl(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var h=0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.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.0,I=0.0;E=i;i=i+48|0;if((i|0)>=(j|0))ba();v=E+40|0;w=E+32|0;y=E+24|0;z=E+16|0;B=E+8|0;D=E;q=+O(+(1.0/(b*b)+1.0));b=1.0/b;r=+(a>>>0);s=r;r=1.0/r;t=+P(+(b+q),+r);r=+P(+(q-b),+r);b=(t+r)*.5;r=(t-r)*.5;x=a&1;A=(a-x|0)>>>1;C=(A|0)==0;if(C)h=0;else{h=a+-1|0;l=+(a<<1>>>0);q=b*0.0;m=v+4|0;n=w+4|0;o=a>>>1;p=0;u=0;while(1){p=p+1|0;t=+((h+(p<<1)|0)>>>0)*3.141592653589793/l;I=r*+Q(+t);t=+R(+t);H=q*t;t=b*t;_n(v,1.0,0.0,I-H,-t);G=c[m>>2]|0;F=u|1;c[e+(u<<3)>>2]=c[v>>2];c[e+(u<<3)+4>>2]=G;_n(w,1.0,0.0,I+H,t);G=c[n>>2]|0;c[e+(F<<3)>>2]=c[w>>2];c[e+(F<<3)+4>>2]=G;if((p|0)==(o|0))break;else u=u+2|0}h=o<<1}if(x){g[e+(h<<3)>>2]=-1.0/r;g[e+(h<<3)+4>>2]=0.0;h=h|1}if((h|0)!=(a|0))Ha(41363,41369,84,41393);if(C)p=0;else{h=y+4|0;m=z+4|0;n=a>>>1;o=0;p=0;while(1){o=o+1|0;I=+Q(+(+(((o<<1)+-1|0)>>>0)*1.5707963267948966/s));H=I*0.0;_n(y,-1.0,0.0,H,I);F=c[h>>2]|0;G=p|1;c[d+(p<<3)>>2]=c[y>>2];c[d+(p<<3)+4>>2]=F;_n(z,1.0,0.0,H,I);F=c[m>>2]|0;c[d+(G<<3)>>2]=c[z>>2];c[d+(G<<3)+4>>2]=F;if((o|0)==(n|0))break;else p=p+2|0}p=n<<1}if((p|0)!=(A<<1|0))Ha(41406,41369,95,41393);o=f+4|0;g[f>>2]=1.0;g[o>>2]=0.0;if(!a){b=0.0;l=1.0}else{h=B+4|0;l=1.0;b=0.0;m=0;do{q=+g[e+(m<<3)>>2];r=+g[e+(m<<3)+4>>2];s=q*l-r*b;t=r*l+q*b;if((s!=s|0.0!=0.0)&(t!=t|0.0!=0.0)){ao(B,l,b,q,r);l=+g[B>>2];b=+g[h>>2]}else{l=s;b=t}g[f>>2]=l;g[o>>2]=b;m=m+1|0}while((m|0)!=(a|0))}if(C){i=E;return}n=D+4|0;m=0;while(1){_n(D,l,b,+g[d+(m<<3)>>2],+g[d+(m<<3)+4>>2]);G=c[D>>2]|0;h=c[n>>2]|0;c[f>>2]=G;c[o>>2]=h;m=m+1|0;l=(c[k>>2]=G,+g[k>>2]);if(m>>>0>=p>>>0)break;else b=(c[k>>2]=h,+g[k>>2])}i=E;return}function ol(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0,m=0.0,n=0.0,o=0;o=i;n=+O(+(1.0-a*a));if(a>.9999998807907104){m=+Y(+(n*.25));m=n*(n*((-1.0-m)*.25))-m}else{l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=a;do{m=+O(+(1.0-e*e));e=(1.0-m)/(m+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=e*(+g[k+(f<<2)>>2]+1.0);f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);m=e}if(a<3.9999998989515007e-04){n=+Y(+(a*.25));n=(-1.0-n)*.25*a*a-n;g[c>>2]=m;g[d>>2]=n;i=o;return}l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=n;do{n=+O(+(1.0-e*e));e=(1.0-n)/(n+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=e*(+g[k+(f<<2)>>2]+1.0);f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);n=e;g[c>>2]=m;g[d>>2]=n;i=o;return}function pl(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;if((i|0)>=(j|0))ba();o=s+32|0;p=s+24|0;t=s+16|0;q=s+8|0;r=s;h=+g[b+4>>2]*3.141592653589793*.5;g[t>>2]=+g[b>>2]*3.141592653589793*.5;g[t+4>>2]=h;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];Co(p,o);h=+g[p>>2];f=+g[p+4>>2];p=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}else b=0;do{n=+O(+(1.0-d*d));d=(1.0-n)/(n+1.0);g[p+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}b=q+4|0;o=r+4|0;do{e=e+-1|0;m=+g[p+(e<<2)>>2];n=m+1.0;l=h*m;m=f*m;k=h*l-f*m;d=f*l+h*m;if((k!=k|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(q,l,m,h,f);k=+g[q>>2];d=+g[b>>2]}_n(r,h*n,f*n,k+1.0,d+0.0);h=+g[r>>2];f=+g[o>>2]}while((e|0)!=0);t=a+4|0;g[a>>2]=h;g[t>>2]=f;i=s;return}function ql(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;if((i|0)>=(j|0))ba();o=s+32|0;p=s+24|0;t=s+16|0;q=s+8|0;r=s;h=+g[b+4>>2]*3.141592653589793*.5;g[t>>2]=+g[b>>2]*3.141592653589793*.5;g[t+4>>2]=h;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];Lo(p,o);h=+g[p>>2];f=+g[p+4>>2];p=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}else b=0;do{n=+O(+(1.0-d*d));d=(1.0-n)/(n+1.0);g[p+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}b=q+4|0;o=r+4|0;do{e=e+-1|0;m=+g[p+(e<<2)>>2];n=m+1.0;l=h*m;m=f*m;k=h*l-f*m;d=f*l+h*m;if((k!=k|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(q,l,m,h,f);k=+g[q>>2];d=+g[b>>2]}_n(r,h*n,f*n,k+1.0,d+0.0);h=+g[r>>2];f=+g[o>>2]}while((e|0)!=0);t=a+4|0;g[a>>2]=h;g[t>>2]=f;i=s;return}function rl(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;if((i|0)>=(j|0))ba();w=z+48|0;r=z+40|0;s=z+32|0;t=z+24|0;u=z+16|0;x=z+8|0;y=z;v=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();l=(e|0)==0;if(!l){k=0;f=d;do{o=+O(+(1.0-f*f));f=(1.0-o)/(o+1.0);g[v+(k<<2)>>2]=f;k=k+1|0}while((k|0)!=(e|0));h=+g[b>>2];f=+g[b+4>>2];if(!l){k=r+4|0;l=t+4|0;b=s+4|0;p=u+4|0;q=0;do{if(!q)o=d;else o=+g[v+(q+-1<<2)>>2];n=h*f;m=h*h-f*f;n=n+n;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(r,h,f,h,f);m=+g[r>>2];n=+g[k>>2]}g[t>>2]=1.0-o*(o*m);g[l>>2]=0.0-o*(o*n);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];Al(s,w);_n(u,h,f,+g[s>>2]+1.0,+g[b>>2]+0.0);f=+g[v+(q<<2)>>2]+1.0;h=+g[u>>2]*2.0/f;f=+g[p>>2]*2.0/f;q=q+1|0}while((q|0)!=(e|0))}}else{h=+g[b>>2];f=+g[b+4>>2]}g[y>>2]=h;g[y+4>>2]=f;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];Bl(x,w);d=+g[x+4>>2]*2.0/3.141592653589793;g[a>>2]=+g[x>>2]*2.0/3.141592653589793;g[a+4>>2]=d;i=z;return}function sl(a,b,d,e,f,h){a=a|0;b=+b;d=+d;e=e|0;f=f|0;h=h|0;var l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0;ca=i;i=i+192|0;if((i|0)>=(j|0))ba();W=ca+176|0;A=ca+144|0;z=ca+128|0;t=ca+168|0;u=ca+160|0;x=ca+152|0;C=ca+136|0;E=ca+120|0;G=ca+112|0;H=ca+96|0;I=ca+88|0;J=ca+72|0;N=ca+64|0;L=ca+56|0;Q=ca+48|0;R=ca+40|0;S=ca+32|0;Y=ca+24|0;Z=ca+16|0;_=ca+8|0;aa=ca;d=b/d;Ga(Wa()|0);ol(d,7,ca+104|0,ca+80|0);r=+(a>>>0);ol(d,7,W,A);K=+P(+(+X(+(+g[A>>2]*-3.141592653589793/+g[W>>2]))),+(1.0/r));D=(K*K+1.0+ +P(+K,6.0)+ +P(+K,12.0)+ +P(+K,20.0)+ +P(+K,30.0)+ +P(+K,42.0))/((K+0.0+ +P(+K,4.0)+ +P(+K,9.0)+ +P(+K,16.0)+ +P(+K,25.0)+ +P(+K,36.0))*2.0+1.0);K=D*(D*(+O(+K)*4.0));V=~~+M(+(r*.5))>>>0;T=~~r>>>0&1;F=i;i=i+((1*(V<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();U=(V|0)==0;if(!U){m=0;do{g[F+(m<<2)>>2]=((+(m>>>0)+1.0)*2.0+-1.0)/r;m=m+1|0}while((m|0)!=(V|0));w=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!U){m=u+4|0;n=t+4|0;o=0;do{c[u>>2]=c[F+(o<<2)>>2];g[m>>2]=0.0;c[W>>2]=c[u>>2];c[W+4>>2]=c[u+4>>2];pl(t,W,K,7);da=c[n>>2]|0;c[w+(o<<3)>>2]=c[t>>2];c[w+(o<<3)+4>>2]=da;o=o+1|0}while((o|0)!=(V|0));m=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(U)x=m;else{n=x+4|0;o=0;do{_n(x,0.0,.9999999403953552,K*+g[w+(o<<3)>>2],K*+g[w+(o<<3)+4>>2]);da=c[n>>2]|0;c[m+(o<<3)>>2]=c[x>>2];c[m+(o<<3)+4>>2]=da;o=o+1|0}while((o|0)!=(V|0));x=m}}else y=6}else y=6;if((y|0)==6){m=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();x=m}g[z>>2]=0.0/b;g[z+4>>2]=1.0/b;c[W>>2]=c[z>>2];c[W+4>>2]=c[z+4>>2];rl(A,W,d,7);q=+g[A+4>>2];p=1.0-+g[A>>2];l=p*-0.0-q;d=q*0.0-p;if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(C,-0.0,-1.0,p,-q);l=+g[C>>2];d=+g[C+4>>2]}D=l/r;B=d/r;w=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();l=D*0.0-B;d=D+B*0.0;a:do if(!U){m=E+4|0;o=H+4|0;t=G+4|0;u=I+4|0;if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){n=0;while(1){s=+g[F+(n<<2)>>2];ao(E,0.0,1.0,D,B);r=-+g[m>>2];g[H>>2]=s-+g[E>>2];g[o>>2]=r;c[W>>2]=c[H>>2];c[W+4>>2]=c[H+4>>2];pl(G,W,K,7);r=+g[G>>2];s=+g[t>>2];q=r*0.0-s*.9999999403953552;p=r*.9999999403953552+s*0.0;if((q!=q|0.0!=0.0)&(p!=p|0.0!=0.0)){ao(I,0.0,.9999999403953552,r,s);q=+g[I>>2];p=+g[u>>2]}g[w+(n<<3)>>2]=q;g[w+(n<<3)+4>>2]=p;n=n+1|0;if((n|0)==(V|0))break a}}v=-d;m=0;do{g[H>>2]=+g[F+(m<<2)>>2]-l;g[o>>2]=v;c[W>>2]=c[H>>2];c[W+4>>2]=c[H+4>>2];pl(G,W,K,7);r=+g[G>>2];s=+g[t>>2];q=r*0.0-s*.9999999403953552;p=r*.9999999403953552+s*0.0;if((q!=q|0.0!=0.0)&(p!=p|0.0!=0.0)){ao(I,0.0,.9999999403953552,r,s);q=+g[I>>2];p=+g[u>>2]}g[w+(m<<3)>>2]=q;g[w+(m<<3)+4>>2]=p;m=m+1|0}while((m|0)!=(V|0))}while(0);if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(J,0.0,1.0,D,B);l=+g[J>>2];d=+g[J+4>>2]}g[L>>2]=l;g[L+4>>2]=d;c[W>>2]=c[L>>2];c[W+4>>2]=c[L+4>>2];ql(N,W,K,7);p=+g[N>>2];d=+g[N+4>>2];l=p*0.0-d*.9999999403953552;q=p*.9999999403953552+d*0.0;if((l!=l|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(Q,0.0,.9999999403953552,p,d);l=+g[Q>>2];q=+g[Q+4>>2]}if(U)m=0;else{m=S+4|0;n=R+4|0;o=0;t=0;while(1){N=c[w+(o<<3)>>2]|0;Q=c[w+(o<<3)+4>>2]|0;da=t|1;c[f+(t<<3)>>2]=N;c[f+(t<<3)+4>>2]=Q;c[S>>2]=N;c[m>>2]=Q;c[W>>2]=c[S>>2];c[W+4>>2]=c[S+4>>2];Ko(R,W);Q=c[n>>2]|0;c[f+(da<<3)>>2]=c[R>>2];c[f+(da<<3)+4>>2]=Q;o=o+1|0;if((o|0)==(V|0))break;else t=t+2|0}m=V<<1}u=(T|0)!=0;if(u){g[f+(m<<3)>>2]=l;g[f+(m<<3)+4>>2]=q;m=m|1}if((m|0)!=(a|0))Ha(41413,41419,383,41442);if(U)if(!(V&2147483647))$=0;else Ha(41454,41419,390,41442);else{m=Z+4|0;n=Y+4|0;o=0;t=0;while(1){U=c[x+(o<<3)>>2]|0;$=c[x+(o<<3)+4>>2]|0;da=t|1;c[e+(t<<3)>>2]=U;c[e+(t<<3)+4>>2]=$;c[Z>>2]=U;c[m>>2]=$;c[W>>2]=c[Z>>2];c[W+4>>2]=c[Z+4>>2];Ko(Y,W);$=c[n>>2]|0;c[e+(da<<3)>>2]=c[Y>>2];c[e+(da<<3)+4>>2]=$;o=o+1|0;if((o|0)==(V|0))break;else t=t+2|0}$=V<<1}if(u)d=1.0;else d=1.0/+O(+(b*b+1.0));t=h+4|0;g[h>>2]=d;g[t>>2]=0.0;if(!a)l=0.0;else{n=_+4|0;l=0.0;m=0;do{p=+g[f+(m<<3)>>2];q=+g[f+(m<<3)+4>>2];r=p*d-q*l;s=q*d+p*l;if((r!=r|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(_,d,l,p,q);d=+g[_>>2];l=+g[n>>2]}else{d=r;l=s}g[h>>2]=d;g[t>>2]=l;m=m+1|0}while((m|0)!=(a|0))}if(!$){i=ca;return}o=aa+4|0;n=0;while(1){_n(aa,d,l,+g[e+(n<<3)>>2],+g[e+(n<<3)+4>>2]);da=c[aa>>2]|0;m=c[o>>2]|0;c[h>>2]=da;c[t>>2]=m;n=n+1|0;d=(c[k>>2]=da,+g[k>>2]);if((n|0)==($|0))break;else l=(c[k>>2]=m,+g[k>>2])}i=ca;return}function tl(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.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,O=0;O=i;i=i+64|0;if((i|0)>=(j|0))ba();E=O+48|0;F=O+40|0;G=O+32|0;J=O+24|0;K=O+16|0;L=O+8|0;M=O;if(!b){Qp(41461,62,1,c[2348]|0)|0;kb(1)}if(d<=0.0){Qp(41524,85,1,c[2348]|0)|0;kb(1)}H=Xp(80)|0;I=H+4|0;c[I>>2]=b;g[H+8>>2]=d;o=+(b>>>0);g[H+12>>2]=1.0/o;o=2.5132741603225375/o;D=H+28|0;g[D>>2]=o;B=~~+Z(+(+N(+(e/o))));C=H+24|0;B=B>>>0<2?2:B;c[C>>2]=B;g[H+32>>2]=o*+(B>>>0);B=b<<3;p=Xp(B)|0;c[H>>2]=p;fq(p|0,a|0,B|0)|0;B=H+16|0;c[B>>2]=qk(b)|0;p=H+60|0;c[p>>2]=gk(c[I>>2]|0)|0;a=c[C>>2]|0;f=a<<2;q=H+20|0;c[q>>2]=Xp(f)|0;b=Xp(f)|0;r=H+36|0;c[r>>2]=b;s=H+44|0;c[s>>2]=Xp(f)|0;t=H+48|0;c[t>>2]=Xp(f)|0;c[H+40>>2]=Xp(f)|0;f=c[I>>2]|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!a){L=c[B>>2]|0;rk(L);L=c[p>>2]|0;hk(L);L=c[I>>2]|0;M=H+76|0;c[M>>2]=L;M=H+72|0;c[M>>2]=0;M=H+52|0;c[M>>2]=0;M=H+56|0;c[M>>2]=0;M=H+64|0;g[M>>2]=0.0;M=c[s>>2]|0;L=c[C>>2]|0;L=L<<2;eq(M|0,0,L|0)|0;L=c[t>>2]|0;M=c[C>>2]|0;M=M<<2;eq(L|0,0,M|0)|0;i=O;return H|0}v=G+4|0;w=F+4|0;x=J+4|0;y=L+4|0;z=K+4|0;A=M+4|0;h=f;f=0;while(1){g[b+(f<<2)>>2]=(+(f>>>0)-+((a+-1|0)>>>0)*.5)*+g[D>>2];if(!h)a=0;else{b=0;do{a=c[H>>2]|0;h=c[a+(b<<3)+4>>2]|0;c[G>>2]=c[a+(b<<3)>>2];c[v>>2]=h;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);n=+g[F>>2];o=+g[w>>2];l=+g[(c[r>>2]|0)+(f<<2)>>2];k=l*-0.0;l=-l;m=+(b>>>0);e=m*k-k;d=m*l+k*0.0;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(J,k,l,m,0.0);e=+g[J>>2];d=+g[x>>2]}g[L>>2]=e;g[y>>2]=d;c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];Io(K,E);k=+g[K>>2];l=+g[z>>2];e=n*k-o*l;d=o*k+n*l;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(M,n,o,k,l);e=+g[M>>2];d=+g[A>>2]}g[u+(b<<3)>>2]=e;g[u+(b<<3)+4>>2]=d;b=b+1|0;a=c[I>>2]|0}while(b>>>0>>0)}a=Gl(u,a)|0;c[(c[q>>2]|0)+(f<<2)>>2]=a;f=f+1|0;a=c[C>>2]|0;if(f>>>0>=a>>>0)break;b=c[r>>2]|0;h=c[I>>2]|0}L=c[B>>2]|0;rk(L);L=c[p>>2]|0;hk(L);L=c[I>>2]|0;M=H+76|0;c[M>>2]=L;M=H+72|0;c[M>>2]=0;M=H+52|0;c[M>>2]=0;M=H+56|0;c[M>>2]=0;M=H+64|0;g[M>>2]=0.0;M=c[s>>2]|0;L=c[C>>2]|0;L=L<<2;eq(M|0,0,L|0)|0;L=c[t>>2]|0;M=c[C>>2]|0;M=M<<2;eq(L|0,0,M|0)|0;i=O;return H|0}function ul(a){a=a|0;var b=0;rk(c[a+16>>2]|0);hk(c[a+60>>2]|0);c[a+76>>2]=c[a+4>>2];c[a+72>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;g[a+64>>2]=0.0;b=a+24|0;eq(c[a+44>>2]|0,0,c[b>>2]<<2|0)|0;eq(c[a+48>>2]|0,0,c[b>>2]<<2|0)|0;return}function vl(a){a=a|0;var b=0,d=0,e=0;uk(c[a+16>>2]|0);b=a+24|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Hl(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+36>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);ik(c[a+60>>2]|0);Yp(c[a>>2]|0);Yp(a);return}function wl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0,l=0.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.0,E=0.0,F=0.0;C=i;i=i+48|0;if((i|0)>=(j|0))ba();v=C+40|0;x=C+32|0;y=C+16|0;w=C;u=C+24|0;B=C+8|0;k=a+16|0;z=c[k>>2]|0;A=c[b>>2]|0;b=c[b+4>>2]|0;c[u>>2]=A;c[u+4>>2]=b;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];tk(z,v);c[B>>2]=A;c[B+4>>2]=b;c[v>>2]=c[B>>2];c[v+4>>2]=c[B+4>>2];xl(a,v);B=a+76|0;b=c[B>>2]|0;if(b|0){c[B>>2]=b+-1;d=0;i=C;return d|0}A=a+44|0;z=a+48|0;t=a+24|0;gq(c[A>>2]|0,c[z>>2]|0,c[t>>2]<<2|0)|0;u=a+40|0;gq(c[z>>2]|0,c[u>>2]|0,c[t>>2]<<2|0)|0;sk(c[k>>2]|0,x);if(!(c[t>>2]|0)){b=a+52|0;q=c[u>>2]|0;p=0}else{k=a+20|0;m=y+4|0;n=w+4|0;o=a+12|0;r=a+68|0;b=a+52|0;s=0;l=0.0;while(1){Il(c[(c[k>>2]|0)+(s<<2)>>2]|0,c[x>>2]|0,y);q=c[m>>2]|0;c[w>>2]=c[y>>2];c[n>>2]=q;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];h=+wo(v);h=h*+g[o>>2]/+O(+(+g[r>>2]));q=c[u>>2]|0;g[q+(s<<2)>>2]=h;if(h>l)c[b>>2]=s;else h=l;s=s+1|0;p=c[t>>2]|0;if(s>>>0>=p>>>0)break;else l=h}}k=c[b>>2]|0;l=+g[q+(k<<2)>>2];o=a+72|0;switch(c[o>>2]|0){case 0:{if(!(l>+g[a+8>>2])){d=0;i=C;return d|0}c[a+56>>2]=k;c[o>>2]=1;d=0;i=C;return d|0}case 1:{m=a+56|0;n=c[m>>2]|0;b=c[z>>2]|0;h=+g[b+(n<<2)>>2];if(l>h){c[m>>2]=k;d=0;i=C;return d|0}if((p|0)==1){g[e>>2]=0.0;h=0.0}else{D=+g[(c[A>>2]|0)+(n<<2)>>2];F=+g[((n|0)==0?b+4|0:b+(n+-1<<2)|0)>>2];E=+g[b+(((n|0)==(p+-1|0)?-1:1)+n<<2)>>2];l=+g[q+(n<<2)>>2];h=h*2.0;g[e>>2]=+g[(c[a+36>>2]|0)+(n<<2)>>2]-(E-F)*(+g[a+28>>2]*.5)/(F+E-h);h=(l-D)*.5/(D+l-h);h=h<-.49900001287460327?-.49900001287460327:h;h=h>.49900001287460327?.49900001287460327:h}g[d>>2]=h;g[f>>2]=+O(+(+g[a+68>>2]));c[o>>2]=0;c[B>>2]=(c[a+4>>2]|0)>>>2;d=1;i=C;return d|0}default:{Qp(41610,69,1,c[2348]|0)|0;kb(1)}}return 0}function xl(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,k=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();m=n+24|0;p=n+16|0;q=n+8|0;k=n;l=+g[b>>2];e=+g[b+4>>2];g[q>>2]=l;g[q+4>>2]=e;c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];Ko(p,m);f=+g[p>>2];h=+g[p+4>>2];d=l*f-e*h;o=e*f+l*h;if((d!=d|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(k,l,e,f,h);d=+g[k>>2]}q=a+60|0;kk(c[q>>2]|0,m);jk(c[q>>2]|0,d);q=a+64|0;o=d+ +g[q>>2]-+g[m>>2];o=o<1.1920928955078125e-07?1.1920928955078125e-07:o;g[q>>2]=o;g[a+68>>2]=+g[a+12>>2]*o;i=n;return}function yl(a){a=a|0;if(!a)return;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function zl(a){a=a|0;gq(a|0,45180,40)|0;return}function Al(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,l=0,m=0,n=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();m=d+8|0;n=d;l=c[b>>2]|0;b=c[b+4>>2]|0;c[n>>2]=l;c[n+4>>2]=b;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];f=+wo(m);e=(c[k>>2]=l,+g[k>>2]);h=+O(+((f+e)*.5));e=+O(+((f-e)*.5));b=(c[k>>2]=b,+g[k>>2])>0.0;f=e*0.0;g[a>>2]=h+(b?f:-f);g[a+4>>2]=b?e:-e;i=d;return}function Bl(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=i;i=i+64|0;if((i|0)>=(j|0))ba();m=r+48|0;n=r+8|0;o=r;k=r+40|0;p=r+32|0;l=r+24|0;q=r+16|0;h=+g[b>>2];f=+g[b+4>>2];d=h*f;e=h*h-f*f;d=d+d;b=(e!=e|0.0!=0.0)&(d!=d|0.0!=0.0);if(h>0.0^f>0.0){if(b){ao(l,h,f,h,f);e=+g[l>>2];d=+g[l+4>>2]}s=e+-1.0;g[n>>2]=s;g[n+4>>2]=d;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+wo(m);t=+O(+((s+e)*.5));s=+O(+((e-s)*.5));p=d>0.0;e=s*0.0;e=h-(t+(p?e:-e));f=f-(p?s:-s);g[n>>2]=e;g[n+4>>2]=f;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];h=+Y(+(+wo(m)));g[o>>2]=e;g[o+4>>2]=f;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];f=+Bo(m);h=h+f*0.0;e=f-h*0.0;d=f*-0.0-h;if((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(q,-0.0,-1.0,h,f);e=+g[q>>2];d=+g[q+4>>2]}g[a>>2]=e;g[a+4>>2]=d;i=r;return}else{if(b){ao(k,h,f,h,f);e=+g[k>>2];d=+g[k+4>>2]}t=e+-1.0;g[n>>2]=t;g[n+4>>2]=d;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+wo(m);s=+O(+((t+e)*.5));t=+O(+((e-t)*.5));q=d>0.0;e=t*0.0;e=h+(s+(q?e:-e));f=f+(q?t:-t);g[n>>2]=e;g[n+4>>2]=f;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];h=+Y(+(+wo(m)));g[o>>2]=e;g[o+4>>2]=f;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];f=+Bo(m);h=h+f*0.0;e=f-h*0.0;d=f*-0.0-h;if((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(p,-0.0,-1.0,h,f);e=+g[p>>2];d=+g[p+4>>2]}g[a>>2]=e;g[a+4>>2]=d;i=r;return}}function Cl(a){a=a|0;var b=0;a:do if(a>>>0>3){b=2;while(1){if(!((a>>>0)%(b>>>0)|0)){a=0;break a}b=b+1|0;if(b>>>0>=a>>>0){a=1;break}}}else a=1;while(0);return a|0}function Dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;g=a;e=0;do{if(g>>>0<2){f=0;break}else f=2;do{if(!((g>>>0)%(f>>>0)|0)){h=4;break}f=f+1|0}while(f>>>0<=g>>>0);if((h|0)==4){h=0;c[b+(e<<2)>>2]=f;g=(g>>>0)/(f>>>0)|0;e=e+1|0}f=g>>>0>1}while(f&e>>>0<40);if(f&(e|0)==40){l=c[2348]|0;c[k>>2]=a;c[k+4>>2]=40;Kp(l,41680,k)|0;kb(1)}else{c[d>>2]=e;i=l;return}}function El(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+160|0;if((i|0)>=(j|0))ba();m=o;l=a+-1|0;b=l;e=0;while(1){if(b>>>0<2){h=e;break}else d=2;while(1){if(!((b>>>0)%(d>>>0)|0)){n=4;break}d=d+1|0;if(d>>>0>b>>>0){d=e;break}}if((n|0)==4){n=0;b=(b>>>0)/(d>>>0)|0;c[m+(e<<2)>>2]=d;if(!e)d=1;else d=((c[m+(e+-1<<2)>>2]|0)!=(d|0)&1)+e|0}if(b>>>0>1&d>>>0<40)e=d;else{h=d;break}}if(a>>>0<3|(h|0)==0){n=2;i=o;return n|0}else b=2;while(1){g=0;while(1){f=(l>>>0)/((c[m+(g<<2)>>2]|0)>>>0)|0;if(!f)break;else{d=1;e=0}do{d=((_(d,b)|0)>>>0)%(a>>>0)|0;e=e+1|0}while((e|0)!=(f|0));k=(d|0)==1;g=g+1|0;if(!(g>>>0>>0&(k^1))){n=12;break}}if((n|0)==12?(n=0,!k):0){n=15;break}b=b+1|0;if(b>>>0>=a>>>0){n=15;break}}if((n|0)==15){i=o;return b|0}return 0}function Fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!b){e=1;return e|0}else{d=1;e=0}do{d=((_(d,a)|0)>>>0)%(c>>>0)|0;e=e+1|0}while((e|0)!=(b|0));return d|0}function Gl(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<3;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function Hl(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function Il(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;s=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){n=0.0;o=0.0;b=d+4|0;g[d>>2]=n;g[b>>2]=o;i=t;return}p=r+4|0;q=0;f=0.0;e=0.0;do{n=+g[s+(q<<3)>>2];o=+g[s+(q<<3)+4>>2];l=+g[b+(q<<3)>>2];m=+g[b+(q<<3)+4>>2];h=n*l-o*m;k=o*l+n*m;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(r,n,o,l,m);h=+g[r>>2];k=+g[p>>2]}f=f+h;e=e+k;q=q+1|0}while((q|0)!=(a|0));b=d+4|0;g[d>>2]=f;g[b>>2]=e;i=t;return}function Jl(a){a=a|0;var b=0,d=0,e=0,f=0;e=Xp(16)|0;c[e>>2]=a;c[e+12>>2]=4;d=(~~+M(+(+O(+(+(a>>>0)))))>>>0)+1|0;c[e+4>>2]=d;f=e+8|0;b=(a>>>0)/(d>>>0)|0;while(1)if((_(d,b)|0)>>>0>a>>>0)break;else b=b+1|0;c[f>>2]=b;return e|0}function Kl(a){a=a|0;Yp(a);return}function Ll(a,b){a=a|0;b=b|0;c[a+12>>2]=b;return}function Ml(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;gq(e|0,d|0,c[b>>2]|0)|0;l=b+12|0;d=c[l>>2]|0;if(!d)return;g=c[b>>2]|0;m=b+4|0;i=c[m>>2]|0;n=b+8|0;j=c[n>>2]|0;k=g>>>1;if(k){d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);p=e+(h<<1|1)|0;o=a[p>>0]|0;h=e+(d<<1)|0;a[p>>0]=a[h>>0]|0;a[h>>0]=o;d=d+1|0}while((d|0)!=(k|0));d=c[l>>2]|0}if(d>>>0<=1)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+2|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);q=e+(d<<1)|0;o=a[q>>0]|0;p=e+(h<<1|1)|0;h=a[p>>0]|0;a[q>>0]=h&15|o&240;a[p>>0]=h&240|o&15;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=2)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+4|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);r=e+(d<<1)|0;p=a[r>>0]|0;q=e+(h<<1|1)|0;o=a[q>>0]|0;a[r>>0]=o&85|p&170;a[q>>0]=o&170|p&85;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=3)return;g=c[b>>2]|0;k=c[m>>2]|0;i=(c[n>>2]|0)+8|0;j=g>>>1;if(!j)return;d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);o=e+(d<<1)|0;q=a[o>>0]|0;r=e+(h<<1|1)|0;p=a[r>>0]|0;a[o>>0]=p&51|q&204;a[r>>0]=p&204|q&51;d=d+1|0}while((d|0)!=(j|0));return}function Nl(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;gq(e|0,d|0,c[b>>2]|0)|0;o=b+12|0;d=c[o>>2]|0;if(d>>>0>3){f=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+8|0;i=f>>>1;if(!i)f=11;else{d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,k)|0)+g|0;f=f+1|0;if((f|0)==(j|0)){f=0;g=((g+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=i>>>0);t=e+(d<<1)|0;s=a[t>>0]|0;l=e+(h<<1|1)|0;h=a[l>>0]|0;a[t>>0]=h&51|s&204;a[l>>0]=h&204|s&51;d=d+1|0;if((d|0)==(i|0))break;else h=f}d=c[o>>2]|0;f=10}}else f=10;if((f|0)==10)if(d>>>0>2)f=11;else f=19;if((f|0)==11){d=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+4|0;l=d>>>1;if(!l)f=20;else{i=0;g=0;f=(d>>>0)/3|0;while(1){d=g;do{h=(_(d,k)|0)+f|0;d=d+1|0;if((d|0)==(j|0)){d=0;f=((f+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=l>>>0);g=d;u=e+(i<<1)|0;t=a[u>>0]|0;d=e+(h<<1|1)|0;s=a[d>>0]|0;a[u>>0]=s&85|t&170;a[d>>0]=s&170|t&85;d=i+1|0;if((d|0)==(l|0))break;else i=d}d=c[o>>2]|0;f=19}}if((f|0)==19)if(d>>>0>1)f=20;else{m=d;f=28}if((f|0)==20?(n=c[b>>2]|0,p=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=n>>>1,r|0):0){d=0;f=0;g=(n>>>0)/3|0;do{do{h=(_(f,q)|0)+g|0;f=f+1|0;if((f|0)==(p|0)){f=0;g=((g+1|0)>>>0)%(q>>>0)|0}}while(h>>>0>=r>>>0);n=e+(d<<1)|0;t=a[n>>0]|0;u=e+(h<<1|1)|0;s=a[u>>0]|0;a[n>>0]=s&15|t&240;a[u>>0]=s&240|t&15;d=d+1|0}while((d|0)!=(r|0));m=c[o>>2]|0;f=28}if((f|0)==28?(m|0)==0:0)return;f=c[b>>2]|0;k=c[b+4>>2]|0;i=c[b+8>>2]|0;j=f>>>1;if(!j)return;d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);s=e+(h<<1|1)|0;t=a[s>>0]|0;u=e+(d<<1)|0;a[s>>0]=a[u>>0]|0;a[u>>0]=t;d=d+1|0;if((d|0)==(j|0))break;else h=f}return}function Ol(b,e,f){b=b|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;gq(f|0,e|0,c[b>>2]<<3|0)|0;p=b+12|0;e=c[p>>2]|0;if(e>>>0>3){g=c[b>>2]|0;l=c[b+4>>2]|0;j=(c[b+8>>2]|0)+8|0;k=g>>>1;if(!k)g=11;else{e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=i<<4;m=e<<4;v=f+(t|10)|0;u=a[v>>0]|0;i=f+(m|2)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;i=f+(t|11)|0;u=a[i>>0]|0;v=f+(m|3)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=u;v=f+(t|14)|0;u=a[v>>0]|0;i=f+(m|6)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;t=f+(t|15)|0;i=a[t>>0]|0;m=f+(m|7)|0;a[t>>0]=a[m>>0]|0;a[m>>0]=i;e=e+1|0;if((e|0)==(k|0))break;else i=g}e=c[p>>2]|0;g=10}}else g=10;if((g|0)==10)if(e>>>0>2)g=11;else g=19;if((g|0)==11){e=c[b>>2]|0;k=c[b+4>>2]|0;l=(c[b+8>>2]|0)+4|0;m=e>>>1;if(!m)g=20;else{j=0;h=0;g=(e>>>0)/3|0;while(1){e=h;do{i=(_(e,l)|0)+g|0;e=e+1|0;if((e|0)==(k|0)){e=0;g=((g+1|0)>>>0)%(l>>>0)|0}}while(i>>>0>=m>>>0);h=e;u=i<<4;e=j<<4;i=f+(u|9)|0;t=a[i>>0]|0;v=f+(e|1)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;v=f+(u|11)|0;t=a[v>>0]|0;i=f+(e|3)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=t;i=f+(u|13)|0;t=a[i>>0]|0;v=f+(e|5)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;u=f+(u|15)|0;v=a[u>>0]|0;e=f+(e|7)|0;a[u>>0]=a[e>>0]|0;a[e>>0]=v;e=j+1|0;if((e|0)==(m|0))break;else j=e}e=c[p>>2]|0;g=19}}if((g|0)==19)if(e>>>0>1)g=20;else{n=e;g=28}if((g|0)==20?(o=c[b>>2]|0,s=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=o>>>1,r|0):0){e=0;g=0;h=(o>>>0)/3|0;do{do{i=(_(g,q)|0)+h|0;g=g+1|0;if((g|0)==(s|0)){g=0;h=((h+1|0)>>>0)%(q>>>0)|0}}while(i>>>0>=r>>>0);t=i<<4;v=e<<4;n=f+(t|12)|0;o=a[n>>0]|0;u=f+(v|4)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;u=f+(t|13)|0;o=a[u>>0]|0;n=f+(v|5)|0;a[u>>0]=a[n>>0]|0;a[n>>0]=o;n=f+(t|14)|0;o=a[n>>0]|0;u=f+(v|6)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;t=f+(t|15)|0;u=a[t>>0]|0;v=f+(v|7)|0;a[t>>0]=a[v>>0]|0;a[v>>0]=u;e=e+1|0}while((e|0)!=(r|0));n=c[p>>2]|0;g=28}if((g|0)==28?(n|0)==0:0)return;g=c[b>>2]|0;l=c[b+4>>2]|0;j=c[b+8>>2]|0;k=g>>>1;if(!k)return;e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=f+(i<<4|8)|0;u=t;b=u;b=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;u=u+4|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=f+(e<<4)|0;s=v;q=s;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;s=s+4|0;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;r=t;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;t=t+4|0;a[t>>0]=s;a[t+1>>0]=s>>8;a[t+2>>0]=s>>16;a[t+3>>0]=s>>24;t=v;a[t>>0]=b;a[t+1>>0]=b>>8;a[t+2>>0]=b>>16;a[t+3>>0]=b>>24;v=v+4|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;e=e+1|0;if((e|0)==(k|0))break;else i=g}return}function Pl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0;h=i;i=i+96|0;if((i|0)>=(j|0))ba();g=h;f=h+80|0;wm(e,41739);if(!b){Ql(e,0,41748,h+72|0);g=0;i=h;return g|0}c[f>>2]=b;c[f+4>>2]=0;c[g>>2]=7;c[g+4>>2]=f;a[g+8>>0]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=1;c[g+28>>2]=0;c[g+36>>2]=0;b=g+40|0;if(Zl(b)|0){g=0;i=h;return g|0}c[g+52>>2]=d;k=g+60|0;c[k>>2]=-1;f=Sl(g,d,e)|0;if((c[k>>2]|0)==256){k=g+64|0;Yl(c[k>>2]|0);c[k>>2]=0;c[k+4>>2]=0}_l(b);k=f;i=h;return k|0}function Ql(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+368|0;if((i|0)>=(j|0))ba();o=p+16|0;m=p+8|0;l=p;h=p+24|0;g=p+200|0;n=p+40|0;if(!b){i=p;return}c[h>>2]=f;Qo(g,160,e,h)|0;a[g+159>>0]=0;do if(d){k=am(d+40|0)|0;e=c[d+24>>2]|0;f=c[d+28>>2]|0;h=c[d+36>>2]|0;if(k|0?a[k>>0]|0:0){if((c[d+44>>2]|0)>>>0>=21)break;c[l>>2]=g;c[l+4>>2]=k;pp(n,160,41764,l)|0;a[n+159>>0]=0;g=n;break}if((c[d+20>>2]|0)!=-2){c[m>>2]=g;pp(n,160,41777,m)|0;a[n+159>>0]=0;g=n}}else{f=-1;e=-1;h=0}while(0);c[o>>2]=g;xm(b,e,f,h,41797,o);i=p;return}function Rl(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;b=a[(c[b>>2]|0)+e>>0]|0;if(!(b<<24>>24)){e=-1;return e|0}c[d>>2]=e+1;e=b&255;return e|0}function Sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;c[a+56>>2]=0;Tl(a,d);a:do if(!(b&4)){switch(c[a+60>>2]|0){case 123:case 91:{g=4;break a}default:{}}Ql(d,a,42071,e);e=0}else g=4;while(0);do if((g|0)==4){e=Wl(a,b,d)|0;if(e){if((b&2|0)==0?(Tl(a,d),c[a+60>>2]|0):0){Ql(d,a,42317,f);d=e+4|0;b=c[d>>2]|0;if((b|0)==-1){e=0;break}g=b+-1|0;c[d>>2]=g;if(g|0){e=0;break}km(e);e=0;break}if(d)c[d+8>>2]=c[a+36>>2]}else e=0}while(0);i=h;return e|0}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=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,D=0;B=i;i=i+112|0;if((i|0)>=(j|0))ba();r=B+104|0;k=B+96|0;g=B+88|0;v=B+80|0;u=B+72|0;x=B+64|0;t=B+56|0;w=B+48|0;n=B+40|0;m=B+32|0;p=B+24|0;o=B+16|0;l=B+8|0;z=B+108|0;q=B;y=b+40|0;$l(y);A=b+60|0;if((c[A>>2]|0)==256){s=b+64|0;Yl(c[s>>2]|0);c[s>>2]=0;c[s+4>>2]=0}a:while(1){f=Ul(b,d)|0;switch(f|0){case 9:case 10:case 13:case 32:break;case -1:{s=5;break a}case -2:{s=6;break a}default:{s=7;break a}}}if((s|0)==5){c[A>>2]=0;i=B;return}else if((s|0)==6){c[A>>2]=-1;i=B;return}else if((s|0)==7){bm(y,f&255)|0;D=f|32;if((f|0)==44|((f|0)==58|((D|0)==125|(D|0)==123))){c[A>>2]=f;i=B;return}if((f|0)==34){q=b+64|0;c[q>>2]=0;c[A>>2]=-1;f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;b:while(1){switch(f|0){case 34:{s=41;break b}case -2:break b;case -1:{s=13;break b}default:{}}if(f>>>0<32){e=f;s=15;break}g=Ul(b,d)|0;if(g>>>0<4294967294)bm(y,g&255)|0;if((f|0)!=92){f=g;continue}if((g|0)!=117){if((g|4|0)!=102)switch(g|0){case 34:case 47:case 92:case 110:case 114:case 116:break;default:{s=40;break b}}f=Ul(b,d)|0;if(f>>>0>=4294967294)continue;bm(y,f&255)|0;continue}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0>=4294967294)continue;bm(y,f&255)|0}c:do if((s|0)==13)Ql(d,b,41827,l);else if((s|0)==15){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0;if((e|0)==10){Ql(d,b,41850,o);break}else{c[p>>2]=e;Ql(d,b,41869,p);break}}else if((s|0)==32)Ql(d,b,41892,m);else if((s|0)==40)Ql(d,b,41892,n);else if((s|0)==41?(e=Xl((c[b+44>>2]|0)+1|0)|0,e|0):0){c[q>>2]=e;g=(am(y)|0)+1|0;f=a[g>>0]|0;d:do if(f<<24>>24!=34){e:while(1){k=g+1|0;do if(f<<24>>24==92){f=a[k>>0]|0;if(f<<24>>24==117){f=Vl(k)|0;if((f|0)<0){e=g;s=47;break e}l=g+6|0;switch(f&-1024|0){case 56320:{e=f;s=57;break e}case 55296:{if((a[l>>0]|0)!=92){e=f;s=56;break e}k=g+7|0;if((a[k>>0]|0)!=117){e=f;s=56;break e}k=Vl(k)|0;if((k|0)<0){e=l;s=52;break e}if((k&-1024|0)!=56320){e=k;s=54;break e}g=g+12|0;f=(f<<10)+-56613888+k|0;break}default:g=l}em(f,e,z)|0;e=e+(c[z>>2]|0)|0;break}else{switch(f<<24>>24|0){case 47:case 92:case 34:{a[e>>0]=f;break}case 98:{a[e>>0]=8;break}case 102:{a[e>>0]=12;break}case 110:{a[e>>0]=10;break}case 114:{a[e>>0]=13;break}case 116:{a[e>>0]=9;break}default:{}}g=g+2|0;e=e+1|0;break}}else{a[e>>0]=f;g=k;e=e+1|0}while(0);f=a[g>>0]|0;if(f<<24>>24==34)break d}if((s|0)==47){c[w>>2]=e;Ql(d,b,41907,w)}else if((s|0)==52){c[t>>2]=e;Ql(d,b,41907,t)}else if((s|0)==54){c[x>>2]=f;c[x+4>>2]=e;Ql(d,b,41937,x)}else if((s|0)==56){c[u>>2]=e;Ql(d,b,41968,u)}else if((s|0)==57){c[v>>2]=e;Ql(d,b,41968,v)}break c}while(0);a[e>>0]=0;c[q+4>>2]=e-(c[q>>2]|0);c[A>>2]=256;i=B;return}while(0);Yl(c[q>>2]|0);c[q>>2]=0;c[q+4>>2]=0;i=B;return}e=(f|0)==45;if(!(e|(f+-48|0)>>>0<10)){if(((f&-33)+-65|0)>>>0>=26){f=b+16|0;e=a[(c[f>>2]|0)+(b+8)>>0]|0;if(e<<24>>24){g=b+36|0;do{bm(y,e)|0;D=(c[f>>2]|0)+1|0;c[f>>2]=D;c[g>>2]=(c[g>>2]|0)+1;e=a[b+8+D>>0]|0}while(e<<24>>24!=0)}c[A>>2]=-1;i=B;return}do{f=Ul(b,d)|0;e=f>>>0<4294967294;if(e)bm(y,f&255)|0}while(((f&-33)+-65|0)>>>0<26);if(e){if((f|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((f|0)!=10){if(fm(f&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}e=am(y)|0;if(!(dp(e,42055)|0)){c[A>>2]=259;i=B;return}if(!(dp(e,42060)|0)){c[A>>2]=260;i=B;return}if(!(dp(e,42066)|0)){c[A>>2]=261;i=B;return}else{c[A>>2]=-1;i=B;return}}c[A>>2]=-1;if(e){e=Ul(b,d)|0;if(e>>>0<4294967294){bm(y,e&255)|0;s=87}else s=96}else{e=f;s=87}if((s|0)==87)if((e|0)==48){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0<10){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}else s=108}else s=96;f:do if((s|0)==96){if((e+-48|0)>>>0<10)while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10){s=108;break f}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}}while(0);g:do if((s|0)==108){h:do if(!(c[b+52>>2]&8)){switch(e|0){case 46:{s=124;break h}case 101:case 69:break h;default:{}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}e=am(y)|0;D=eo()|0;c[D>>2]=0;e=to(e,z,10)|0;f=C;if((c[D>>2]|0)!=34){c[A>>2]=257;D=b+64|0;c[D>>2]=e;c[D+4>>2]=f;break g}if((f|0)<0){Ql(d,b,41993,g);break g}else{Ql(d,b,42018,k);break g}}else if((e|0)==46)s=124;while(0);i:do if((s|0)==124){e=Ul(b,d)|0;if((e+-48|0)>>>0<10){bm(y,e&255)|0;while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10)break i}}if((e|1|0)==-1)break g;D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1;break g}while(0);j:do if((e|32|0)==101){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;switch(e|0){case 43:case 45:{e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;break}default:{}}if((e+-48|0)>>>0<10)while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10)break j}if(e>>>0>=4294967294)break g;if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0;break g}while(0);if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}if(!(dm(y,q)|0)){c[A>>2]=258;h[b+64>>3]=+h[q>>3];break}else{Ql(d,b,42034,r);break}}while(0);i=B;return}}function Ul(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();n=o;l=b+20|0;e=c[l>>2]|0;if(e|0){b=e;i=o;return b|0}m=b+16|0;e=c[m>>2]|0;do if(!(a[b+8+e>>0]|0)){k=b+4|0;g=rb[c[b>>2]&7](c[k>>2]|0)|0;if((g|0)==-1){c[l>>2]=-1;b=-1;i=o;return b|0}e=g&255;h=b+8|0;a[h>>0]=e;c[m>>2]=0;if((g&-128|0)!=128){a[b+9>>0]=0;e=0;break}e=fm(e)|0;if(e|0){if(e>>>0>1){f=1;do{a[b+8+f>>0]=rb[c[b>>2]&7](c[k>>2]|0)|0;f=f+1|0}while((f|0)!=(e|0))}if(gm(h,e,0)|0){a[b+8+e>>0]=0;e=c[m>>2]|0;break}}c[l>>2]=-2;c[n>>2]=g;Ql(d,b,41800,n);b=-2;i=o;return b|0}while(0);c[m>>2]=e+1;e=a[b+8+e>>0]|0;f=e<<24>>24;n=b+36|0;c[n>>2]=(c[n>>2]|0)+1;if(e<<24>>24==10){n=b+24|0;c[n>>2]=(c[n>>2]|0)+1;n=b+28|0;c[b+32>>2]=c[n>>2];c[n>>2]=0;b=f;i=o;return b|0}if(!(fm(e)|0)){b=f;i=o;return b|0}b=b+28|0;c[b>>2]=(c[b>>2]|0)+1;b=f;i=o;return b|0}function Vl(b){b=b|0;var c=0,d=0,e=0,f=0;c=a[b+1>>0]|0;d=c<<24>>24;do if((c+-48&255)>=10){if((c+-97&255)<26){c=d+-87|0;break}if((c+-65&255)<26){c=d+-55|0;break}else{b=-1;return b|0}}else c=d+-48|0;while(0);d=a[b+2>>0]|0;e=c<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);d=a[b+3>>0]|0;f=c+e<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);e=a[b+4>>0]|0;d=c+f<<4;c=e<<24>>24;do if((e+-48&255)>=10){if((e+-97&255)<26){c=c+-87|0;break}if((e+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);b=c+d|0;return b|0}function Wl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=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;w=i;i=i+80|0;if((i|0)>=(j|0))ba();f=w+72|0;e=w+64|0;m=w+56|0;p=w+48|0;r=w+40|0;n=w+32|0;q=w+24|0;o=w+16|0;l=w+8|0;v=a+56|0;t=(c[v>>2]|0)+1|0;c[v>>2]=t;if(t>>>0>2048){Ql(d,a,42091,w);a=0;i=w;return a|0}s=a+60|0;a:do switch(c[s>>2]|0){case 256:{g=a+64|0;e=c[g>>2]|0;k=g+4|0;f=c[k>>2]|0;if((b&16|0)==0?No(e,0,f)|0:0){Ql(d,a,42121,l);a=0;i=w;return a|0}e=nm(e,f)|0;if(!e){a=0;i=w;return a|0}else{c[g>>2]=0;c[k>>2]=0;break a}}case 257:{e=a+64|0;e=pm(c[e>>2]|0,c[e+4>>2]|0)|0;u=72;break}case 258:{e=rm(+h[a+64>>3])|0;u=72;break}case 259:{e=tm()|0;u=72;break}case 260:{e=um()|0;u=72;break}case 261:{e=vm()|0;u=72;break}case 123:{t=hm()|0;if(!t){a=0;i=w;return a|0}Tl(a,d);b:do switch(c[s>>2]|0){case 125:{e=t;break a}case 256:{l=a+64|0;m=l+4|0;c:do if(b&1){while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;u=74;break}if(No(e,0,f)|0){u=33;break c}if(im(t,e)|0){u=35;break}Tl(a,d);if((c[s>>2]|0)!=58){u=37;break c}Tl(a,d);g=Wl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(jm(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)km(g);Yl(e);Tl(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Tl(a,d);if((c[s>>2]|0)!=256){u=30;break b}}if((u|0)==35){Yl(e);Ql(d,a,42226,n);break b}else if((u|0)==74){i=w;return e|0}}else{while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;break}if(No(e,0,f)|0){u=33;break c}Tl(a,d);if((c[s>>2]|0)!=58){u=37;break c}Tl(a,d);g=Wl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(jm(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)km(g);Yl(e);Tl(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Tl(a,d);if((c[s>>2]|0)!=256){u=30;break b}}i=w;return e|0}while(0);if((u|0)==33){Yl(e);Ql(d,a,42189,q);break b}else if((u|0)==37){Yl(e);Ql(d,a,42247,r);break b}else if((u|0)==39){Yl(e);break b}else if((u|0)==43){Yl(e);e=g+4|0;f=c[e>>2]|0;if((f|0)==-1)break b;a=f+-1|0;c[e>>2]=a;if(a|0)break b;km(g);break b}else if((u|0)==50){if((e|0)==125){e=t;u=72;break a}Ql(d,a,42260,p);break b}break}default:u=30}while(0);if((u|0)==30)Ql(d,a,42166,o);e=t+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}km(t);a=0;i=w;return a|0}case 91:{l=lm()|0;if(!l){a=0;i=w;return a|0}Tl(a,d);d:do switch(c[s>>2]|0){case 93:{e=l;break a}case 0:{u=66;break}default:while(1){k=Wl(a,b,d)|0;if(!k)break d;g=k+4|0;e=c[g>>2]|0;if((e|0)!=-1)c[g>>2]=e+1;e=(mm(l,k)|0)==0;f=c[g>>2]|0;if((f|0)!=-1?(t=f+-1|0,c[g>>2]=t,(t|0)==0):0)km(k);if(!e)break d;Tl(a,d);switch(c[s>>2]|0){case 93:{e=l;u=72;break a}case 44:break;default:{u=66;break d}}Tl(a,d);if(!(c[s>>2]|0)){u=66;break d}}}while(0);if((u|0)==66)Ql(d,a,42273,m);e=l+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}km(l);a=0;i=w;return a|0}case -1:{Ql(d,a,42286,e);a=0;i=w;return a|0}default:{Ql(d,a,42300,f);a=0;i=w;return a|0}}while(0);if((u|0)==72)if(!e){a=0;i=w;return a|0}c[v>>2]=(c[v>>2]|0)+-1;a=e;i=w;return a|0}function Xl(a){a=a|0;if(!a){a=0;return a|0}a=rb[c[2340]&7](a)|0;return a|0}function Yl(a){a=a|0;if(!a)return;qb[c[2341]&31](a);return}function Zl(b){b=b|0;var d=0;c[b+8>>2]=16;c[b+4>>2]=0;d=Xl(16)|0;c[b>>2]=d;if(!d){b=-1;return b|0}a[d>>0]=0;b=0;return b|0}function _l(a){a=a|0;var b=0;b=c[a>>2]|0;if(b|0)Yl(b);c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=0;return}function $l(b){b=b|0;c[b+4>>2]=0;a[c[b>>2]>>0]=0;return}function am(a){a=a|0;return c[a>>2]|0}function bm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=b+8|0;f=c[g>>2]|0;h=b+4|0;e=c[h>>2]|0;do if((f-e|0)>>>0<=1){if((f|0)<0|e>>>0>4294967293){d=-1;return d|0}f=f<<1;e=e+2|0;e=f>>>0>e>>>0?f:e;f=Xl(e)|0;if(!f){d=-1;return d|0}else{fq(f|0,c[b>>2]|0,c[h>>2]|0)|0;Yl(c[b>>2]|0);c[b>>2]=f;c[g>>2]=e;g=b;e=c[h>>2]|0;break}}else{g=b;f=c[b>>2]|0}while(0);a[f+e>>0]=d;d=(c[h>>2]|0)+1|0;c[h>>2]=d;a[(c[g>>2]|0)+d>>0]=0;d=0;return d|0}function cm(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;if(!e){b=0;return b|0}e=e+-1|0;c[d>>2]=e;e=(c[b>>2]|0)+e|0;b=a[e>>0]|0;a[e>>0]=0;return b|0}function dm(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;f=a[c[(op()|0)>>2]>>0]|0;if(f<<24>>24!=46?(g=Bp(c[b>>2]|0,46)|0,g|0):0)a[g>>0]=f;g=eo()|0;c[g>>2]=0;e=+Tp(c[b>>2]|0,k);if(e==s|e==-s?(c[g>>2]|0)==34:0){d=-1;i=l;return d|0}h[d>>3]=e;d=0;i=l;return d|0}function em(b,d,e){b=b|0;d=d|0;e=e|0;if((b|0)<0){e=-1;return e|0}if((b|0)<128){a[d>>0]=b;c[e>>2]=1;e=0;return e|0}if((b|0)<2048){a[d>>0]=b>>>6&31|192;a[d+1>>0]=b&63|128;c[e>>2]=2;e=0;return e|0}if((b|0)<65536){a[d>>0]=b>>>12&15|224;a[d+1>>0]=b>>>6&63|128;a[d+2>>0]=b&63|128;c[e>>2]=3;e=0;return e|0}if((b|0)>=1114112){e=-1;return e|0}a[d>>0]=b>>>18&7|240;a[d+1>>0]=b>>>12&63|128;a[d+2>>0]=b>>>6&63|128;a[d+3>>0]=b&63|128;c[e>>2]=4;e=0;return e|0}function fm(a){a=a|0;if(a<<24>>24>-1){a=1;return a|0}if((a&255)<192|(a&-2)<<24>>24==-64){a=0;return a|0}if((a+62&255)<30){a=2;return a|0}if((a&-16)<<24>>24==-32){a=3;return a|0}else return ((a+16&255)<5?4:0)|0;return 0}function gm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=a[b>>0]|0;j=(d|0)==2;a:do if(j){i=1;f=f&31}else switch(d|0){case 3:{i=1;f=f&15;break a}case 4:{i=1;f=f&7;break a}default:{k=0;return k|0}}while(0);do{h=a[b+i>>0]|0;if(h<<24>>24>-1|(h&255)>191){f=0;k=13;break}g=f<<6;f=h&63|g;i=i+1|0}while(i>>>0>>0);if((k|0)==13)return f|0;if(j&(f|0)<128|((f|0)>1114111|(g&-2048|0)==55296)){k=0;return k|0}if((d|0)==3&(f|0)<2048){k=0;return k|0}if((d|0)==4&(f|0)<65536){k=0;return k|0}if(!e){k=1;return k|0}c[e>>2]=f;k=1;return k|0}function hm(){var a=0;a=Xl(40)|0;if(!a){a=0;return a|0}if(!(c[11305]|0))Dm(0);c[a>>2]=0;c[a+4>>2]=1;if(!(ym(a+8|0)|0)){c[a+36>>2]=0;return a|0}else{Yl(a);a=0;return a|0}return 0}function im(a,b){a=a|0;b=b|0;if(!((a|0)!=0&(b|0)!=0)){b=0;return b|0}if(c[a>>2]|0){b=0;return b|0}b=Cm(a+8|0,b)|0;return b|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;if(!d){d=-1;return d|0}if((a|0)!=0&(b|0)!=0?!((a|0)==(d|0)|(c[a>>2]|0)!=0):0){if(!(Am(a+8|0,b,d)|0)){d=0;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}km(d);d=-1;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}km(d);d=-1;return d|0}function km(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;switch(c[a>>2]|0){case 0:{zm(a+8|0);Yl(a);return}case 1:{h=a+12|0;b=c[h>>2]|0;i=a+16|0;if(b|0){e=0;do{d=c[(c[i>>2]|0)+(e<<2)>>2]|0;if(((d|0)!=0?(f=d+4|0,g=c[f>>2]|0,(g|0)!=-1):0)?(j=g+-1|0,c[f>>2]=j,(j|0)==0):0){km(d);b=c[h>>2]|0}e=e+1|0}while(e>>>0>>0)}Yl(c[i>>2]|0);Yl(a);return}case 2:{Yl(c[a+8>>2]|0);Yl(a);return}case 3:{Yl(a);return}case 4:{Yl(a);return}default:return}}function lm(){var a=0,b=0;a=Xl(24)|0;if(!a){a=0;return a|0}c[a>>2]=1;c[a+4>>2]=1;c[a+12>>2]=0;c[a+8>>2]=8;b=Xl(32)|0;c[a+16>>2]=b;if(!b){Yl(a);b=0;return b|0}else{c[a+20>>2]=0;b=a;return b|0}return 0}function mm(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;if(!b){b=-1;return b|0}if(a|0?!((a|0)==(b|0)|(c[a>>2]|0)!=1):0){g=a+12|0;h=a+8|0;d=c[h>>2]|0;e=a+16|0;f=c[e>>2]|0;if(((c[g>>2]|0)+1|0)>>>0>d>>>0){k=d+1|0;a=d<<1;a=k>>>0>a>>>0?k:a;d=Xl(a<<2)|0;if(d|0){c[h>>2]=a;c[e>>2]=d;fq(d|0,f|0,c[g>>2]<<2|0)|0;Yl(f);i=c[e>>2]|0;j=10}}else{i=f;j=10}if((j|0)==10?i|0:0){k=c[g>>2]|0;c[i+(k<<2)>>2]=b;c[g>>2]=k+1;k=0;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}km(b);k=-1;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}km(b);k=-1;return k|0}function nm(a,b){a=a|0;b=b|0;var d=0;if(!a){a=0;return a|0}d=Xl(16)|0;if(!d){a=0;return a|0}c[d>>2]=2;c[d+4>>2]=1;c[d+8>>2]=a;c[d+12>>2]=b;a=d;return a|0}function om(a){a=a|0;if((a|0)!=0?(c[a>>2]|0)==2:0)a=c[a+8>>2]|0;else a=0;return a|0}function pm(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xl(16)|0;if(!d){d=0;return d|0}c[d>>2]=3;c[d+4>>2]=1;e=d+8|0;c[e>>2]=a;c[e+4>>2]=b;return d|0}function qm(a){a=a|0;var b=0;if((a|0)!=0?(c[a>>2]|0)==3:0){b=a+8|0;a=c[b+4>>2]|0;b=c[b>>2]|0}else{a=0;b=0}C=a;return b|0}function rm(a){a=+a;var b=0,d=0.0;d=+N(+a);h[k>>3]=d;b=c[k+4>>2]|0;if(b>>>0>2146435071|(b|0)==2146435071&(c[k>>2]|0)>>>0>4294967295){b=0;return b|0}b=Xl(16)|0;if(!b){b=0;return b|0}c[b>>2]=4;c[b+4>>2]=1;h[b+8>>3]=a;return b|0}function sm(a){a=a|0;var b=0.0;if(!a){b=0.0;return +b}switch(c[a>>2]|0){case 3:{a=a+8|0;b=+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0);return +b}case 4:{b=+h[a+8>>3];return +b}default:{b=0.0;return +b}}return 0.0}function tm(){return 9368}function um(){return 9376}function vm(){return 9384}function wm(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b)return;a[b+92>>0]=0;c[b>>2]=-1;c[b+4>>2]=-1;c[b+8>>2]=0;if(!d){a[b+12>>0]=0;return}e=np(d)|0;if(e>>>0<80){Lp(b+12|0,d,e+1|0)|0;return}else{f=b+12|0;a[f>>0]=a[42338]|0;a[f+1>>0]=a[42339]|0;a[f+2>>0]=a[42340]|0;Lp(b+15|0,d+(e+-76)|0,77)|0;return}}function xm(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 k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=h;if(!b){i=l;return}h=b+92|0;if(a[h>>0]|0){i=l;return}c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;Qo(h,160,g,k)|0;a[b+251>>0]=0;i=l;return}function ym(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=0;b=a+8|0;c[b>>2]=3;d=Xl(64)|0;c[a+4>>2]=d;if(!d){e=-1;return e|0}e=a+12|0;c[a+16>>2]=e;c[e>>2]=e;f=a+20|0;c[a+24>>2]=f;c[f>>2]=f;b=1<>2];a=0;do{c[d+(a<<3)+4>>2]=e;c[d+(a<<3)>>2]=e;a=a+1|0}while(a>>>0>>0);b=0;return b|0}function zm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+12|0;b=c[a+16>>2]|0;if((b|0)==(f|0)){a=a+4|0;a=c[a>>2]|0;Yl(a);return}do{e=b;b=c[b+4>>2]|0;d=c[e+20>>2]|0;if((d|0?(h=d+4|0,g=c[h>>2]|0,(g|0)!=-1):0)?(i=g+-1|0,c[h>>2]=i,(i|0)==0):0)km(d);Yl(e)}while((b|0)!=(f|0));i=a+4|0;i=c[i>>2]|0;Yl(i);return}function Am(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;g=a+8|0;e=c[g>>2]|0;if((c[a>>2]|0)>>>0>=1<>>0){e=e+1|0;h=1<>2]|0);c[i>>2]=f;c[g>>2]=e;n=a+12|0;g=0;do{c[f+(g<<3)+4>>2]=n;c[f+(g<<3)>>2]=n;g=g+1|0}while(g>>>0>>0);m=a+16|0;g=c[m>>2]|0;c[m>>2]=n;c[n>>2]=n;if((g|0)!=(n|0)){m=h+-1|0;f=c[i>>2]|0;do{h=g+4|0;l=g;g=c[h>>2]|0;i=c[l+16>>2]&m;j=f+(i<<3)|0;k=c[j>>2]|0;if((k|0)==(n|0)?(o=f+(i<<3)+4|0,(n|0)==(c[o>>2]|0)):0){c[h>>2]=n;c[l>>2]=c[n>>2];c[(c[n>>2]|0)+4>>2]=l;c[n>>2]=l;c[o>>2]=l}else{c[h>>2]=k;c[l>>2]=c[k>>2];c[(c[k>>2]|0)+4>>2]=l;c[k>>2]=l}c[j>>2]=l}while((g|0)!=(n|0))}}else{n=a+12|0;f=c[a+4>>2]|0}g=np(b)|0;g=Bm(b,g,c[11305]|0)|0;j=(1<>2]|0;j=f+(j<<3)+4|0;if(!((e|0)==(n|0)?(n|0)==(c[j>>2]|0):0))p=15;a:do if((p|0)==15){while(1){if((c[e+16>>2]|0)==(g|0)?(dp(e+24|0,b)|0)==0:0)break;if((e|0)==(c[j>>2]|0))break a;e=c[e+4>>2]|0;p=15}if(e|0){e=e+20|0;f=c[e>>2]|0;if((f|0?(q=f+4|0,r=c[q>>2]|0,(r|0)!=-1):0)?(a=r+-1|0,c[q>>2]=a,(a|0)==0):0)km(f);c[e>>2]=d;a=0;return a|0}}while(0);e=np(b)|0;if(e>>>0>4294967270){a=-1;return a|0}i=Xl(e+25|0)|0;if(!i){a=-1;return a|0}c[i+16>>2]=g;Lp(i+24|0,b,e+1|0)|0;c[i+20>>2]=d;e=i+4|0;c[e>>2]=i;c[i>>2]=i;f=i+8|0;g=i+12|0;c[g>>2]=f;c[f>>2]=f;h=c[k>>2]|0;if((h|0)==(n|0)?(n|0)==(c[j>>2]|0):0){c[e>>2]=n;c[i>>2]=c[n>>2];c[(c[a+12>>2]|0)+4>>2]=i;c[n>>2]=i;c[j>>2]=i}else{c[e>>2]=h;c[i>>2]=c[h>>2];c[(c[h>>2]|0)+4>>2]=i;c[h>>2]=i}c[k>>2]=i;d=a+20|0;c[g>>2]=d;c[f>>2]=c[d>>2];c[(c[d>>2]|0)+4>>2]=f;c[d>>2]=f;c[a>>2]=(c[a>>2]|0)+1;a=0;return a|0} -function Bm(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,i=0,j=0;i=b+-559038737+f|0;f=a;a:do if(f&3)if(!(f&1)){if(b>>>0>12){g=i;h=i;f=i;do{h=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;g=(f<<4|f>>>28)^((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;break a}case 11:{f=((d[a+10>>0]|0)<<16)+f|0;j=24;break}case 10:{j=24;break}case 9:{f=(d[a+8>>0]|0)+f|0;j=26;break}case 8:{j=26;break}case 7:{b=((d[a+6>>0]|0)<<16)+h|0;j=28;break}case 6:{b=h;j=28;break}case 5:{b=(d[a+4>>0]|0)+h|0;j=30;break}case 4:{b=h;j=30;break}case 3:{g=((d[a+2>>0]|0)<<16)+g|0;j=32;break}case 2:{j=32;break}case 1:{g=(d[a>>0]|0)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==24){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=(e[a+8>>1]|0)+f|0;break}else if((j|0)==26){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;break}else if((j|0)==28){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=(e[a+4>>1]|0)+b|0;break}else if((j|0)==30){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;break}else if((j|0)==32){g=(e[a>>1]|0)+g|0;b=h;break}}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(d[a+4>>0]|0)+h+((d[a+5>>0]|0)<<8)+((d[a+6>>0]|0)<<16)+((d[a+7>>0]|0)<<24)|0;f=(d[a+8>>0]|0)+f+((d[a+9>>0]|0)<<8)+((d[a+10>>0]|0)<<16)+((d[a+11>>0]|0)<<24)|0;g=(f<<4|f>>>28)^(d[a>>0]|0)+g+((d[a+1>>0]|0)<<8)+((d[a+2>>0]|0)<<16)+((d[a+3>>0]|0)<<24)-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{f=((d[a+11>>0]|0)<<24)+f|0;j=37;break}case 11:{j=37;break}case 10:{j=38;break}case 9:{j=39;break}case 8:{j=40;break}case 7:{b=h;j=41;break}case 6:{b=h;j=42;break}case 5:{b=h;j=43;break}case 4:{b=h;j=44;break}case 3:{b=h;j=45;break}case 2:{b=h;j=46;break}case 1:{b=h;break}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==37){f=((d[a+10>>0]|0)<<16)+f|0;j=38}if((j|0)==38){f=((d[a+9>>0]|0)<<8)+f|0;j=39}if((j|0)==39){f=(d[a+8>>0]|0)+f|0;j=40}if((j|0)==40){b=((d[a+7>>0]|0)<<24)+h|0;j=41}if((j|0)==41){b=((d[a+6>>0]|0)<<16)+b|0;j=42}if((j|0)==42){b=((d[a+5>>0]|0)<<8)+b|0;j=43}if((j|0)==43){b=(d[a+4>>0]|0)+b|0;j=44}if((j|0)==44){g=((d[a+3>>0]|0)<<24)+g|0;j=45}if((j|0)==45){g=((d[a+2>>0]|0)<<16)+g|0;j=46}if((j|0)==46)g=((d[a+1>>0]|0)<<8)+g|0;g=(d[a>>0]|0)+g|0;break}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;g=(f<<4|f>>>28)^(c[a>>2]|0)+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}do switch(b|0){case 12:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;break a}case 11:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&16777215)+f|0;break a}case 10:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&65535)+f|0;break a}case 9:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&255)+f|0;break a}case 8:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;break a}case 7:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&16777215)+h|0;break a}case 6:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&65535)+h|0;break a}case 5:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&255)+h|0;break a}case 4:{g=(c[a>>2]|0)+g|0;b=h;break a}case 3:{g=(c[a>>2]&16777215)+g|0;b=h;break a}case 2:{g=(c[a>>2]&65535)+g|0;b=h;break a}case 1:{g=(c[a>>2]&255)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}while(0)}while(0);i=(f^b)-(b<<14|b>>>18)|0;j=(i^g)-(i<<11|i>>>21)|0;h=(j^b)-(j<<25|j>>>7)|0;i=(h^i)-(h<<16|h>>>16)|0;j=(i^j)-(i<<4|i>>>28)|0;j=(j^h)-(j<<14|j>>>18)|0;j=(j^i)-(j<<24|j>>>8)|0;return j|0}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=np(b)|0;f=Bm(b,f,c[11305]|0)|0;e=(1<>2])+-1&f;h=c[a+4>>2]|0;d=c[h+(e<<3)>>2]|0;e=h+(e<<3)+4|0;if((d|0)==(a+12|0)?(d|0)==(c[e>>2]|0):0){h=0;return h|0}while(1){if((c[d+16>>2]|0)==(f|0)?(dp(d+24|0,b)|0)==0:0)break;if((d|0)==(c[e>>2]|0)){d=0;g=9;break}d=c[d+4>>2]|0}if((g|0)==9)return d|0;if(!d){h=0;return h|0}h=c[d+20>>2]|0;return h|0}function Dm(b){b=b|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=g+8|0;if(c[11305]|0){i=g;return}h=a[45768]|0;a[45768]=1;if(h<<24>>24){do Ba()|0;while(!(c[11305]|0));i=g;return}if(!b){b=fp(42342,0,f)|0;if((b|0)!=-1?(h=(Wp(b,e,4)|0)==4,ep(b)|0,h):0)b=((d[e+1>>0]|0|(d[e>>0]|0)<<8)<<8|(d[e+2>>0]|0))<<8|(d[e+3>>0]|0);else{hb(f|0,0)|0;b=c[f+4>>2]^c[f>>2];b=b^(Dp()|0)}b=(b|0)==0?1:b}c[11305]=b;i=g;return}function Em(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)!=8){a=0;return a|0}a=Xp(28)|0;c[a+20>>2]=g;g=255-g|0;c[a+8>>2]=g;c[a+12>>2]=f;c[a+4>>2]=g-f;c[a>>2]=Fm(b&65535,d&255,e&255,f)|0;c[a+16>>2]=Xp(g)|0;c[a+24>>2]=Xp(f)|0;return a|0}function Fm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;if((i|0)>=(j|0))ba();s=t+32|0;r=t+24|0;m=t+16|0;n=t+8|0;o=t;p=Zp(1,156)|0;q=Xp(512)|0;k=Xp(256)|0;a[q>>0]=1;a[k>>0]=0;b=b&65535;g=1;h=1;do{l=g<<1&65534;g=(l>>>0>255?b:0)^l;a[q+h>>0]=g;if(h>>>0<256)a[k+g>>0]=h;h=h+1|0}while((h|0)!=512);g=k;c[p+16>>2]=q;c[p+20>>2]=g;c[p>>2]=255;c[p+8>>2]=f;c[p+4>>2]=255-f;a[p+12>>0]=d;a[p+13>>0]=e;k=Xp(f)|0;c[p+32>>2]=k;l=p+24|0;h=e&255;c[r>>2]=q;c[r+4>>2]=g;if(f|0){b=d&255;g=0;do{a[k+g>>0]=a[q+(((_(g+b|0,h)|0)>>>0)%255|0)>>0]|0;g=g+1|0}while((g|0)!=(f|0))};c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];Gm(m,s,f,k);r=m;s=c[r+4>>2]|0;f=l;c[f>>2]=c[r>>2];c[f+4>>2]=s;Hm(n,254);f=n;s=c[f+4>>2]|0;r=p+40|0;c[r>>2]=c[f>>2];c[r+4>>2]=s;Hm(o,254);r=o;s=c[r+4>>2]|0;f=p+48|0;c[f>>2]=c[r>>2];c[f+4>>2]=s;i=t;return p|0}function Gm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;C=i;i=i+16|0;if((i|0)>=(j|0))ba();w=C;x=f+1|0;y=Xp(x)|0;z=y;A=Zp(x,1)|0;c[w>>2]=A;B=Zp(x,1)|0;c[w+8>>2]=B;a[A>>0]=a[g>>0]|0;a[A+1>>0]=1;c[w+4>>2]=1;if(f>>>0<=1){g=A;fq(y|0,g|0,x|0)|0;Yp(A);Yp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}v=c[e>>2]|0;q=c[e+4>>2]|0;r=q+1|0;s=A;t=1;u=0;while(1){m=a[g+t>>0]|0;o=u;u=u&1^1;p=t;t=t+1|0;c[w+(u<<3)+4>>2]=t;e=c[w+(u<<3)>>2]|0;o=c[w+(o<<3)+4>>2]|0;eq(e|0,0,p+2|0)|0;n=o>>>0>t>>>0?t:o;k=q+(m&255)|0;if(!(m<<24>>24)){h=0;do h=h+1|0;while(h>>>0<=n>>>0)}else{m=0;do{l=e+m|0;h=a[s+m>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[k>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0];m=m+1|0}while(m>>>0<=n>>>0)}k=o>>>0>p>>>0?p:o;m=0;do{h=m;m=m+1|0;l=e+m|0;h=a[s+h>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[r>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0]}while(m>>>0<=k>>>0);if((t|0)==(f|0))break;else s=e}fq(y|0,e|0,x|0)|0;Yp(A);Yp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}function Hm(a,b){a=a|0;b=b|0;c[a>>2]=Xp(b+1|0)|0;c[a+4>>2]=b;return}function Im(a){a=a|0;Jm(c[a>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+24>>2]|0);Yp(a);return}function Jm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();g=h;f=c[b+20>>2]|0;Yp(c[b+16>>2]|0);Yp(f);f=b+24|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);Yp(c[b+32>>2]|0);f=b+40|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);f=b+48|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);if(!(a[b+152>>0]|0)){Yp(b);i=h;return}Yp(c[b+56>>2]|0);Yp(c[b+60>>2]|0);d=b+64|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+72|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+80|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+88|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);Yp(c[b+96>>2]|0);Yp(c[b+100>>2]|0);Yp(c[b+104>>2]|0);d=b+112|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+120|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+128|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+8|0;e=b+36|0;if(c[d>>2]|0){f=0;do{Yp(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);d=b+108|0;e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=256);Yp(c[d>>2]|0);f=b+136|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);f=b+144|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);Yp(b);i=h;return}function Km(a){a=a|0;Yp(c[a>>2]|0);return}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+4|0;f=a+16|0;Mm(c[a>>2]|0,b,c[e>>2]|0,c[f>>2]|0)|0;fq(d|0,(c[f>>2]|0)+(c[e>>2]|0)|0,c[a+12>>2]|0)|0;return}function Mm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();p=s+24|0;o=s+16|0;n=s+8|0;m=s;k=b+4|0;g=c[k>>2]|0;if(g>>>0>>0){b=-1;i=s;return b|0}r=g-e|0;l=(e|0)==0;q=b+44|0;if(!l){g=b+40|0;h=0;do{a[(c[g>>2]|0)+((c[q>>2]|0)-(h+r))>>0]=a[d+h>>0]|0;h=h+1|0}while((h|0)!=(e|0))}h=b+40|0;eq((c[h>>2]|0)+(1-r+(c[q>>2]|0))|0,0,r|0)|0;eq(c[h>>2]|0,0,(c[q>>2]|0)+1-(c[k>>2]|0)|0)|0;g=b+16|0;d=b+24|0;k=b+48|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];Nm(m,n,o,p);if(!l){g=0;do{a[f+g>>0]=a[(c[h>>2]|0)+((c[q>>2]|0)-(g+r))>>0]|0;g=g+1|0}while((g|0)!=(e|0))}d=b+8|0;g=c[d>>2]|0;if(g|0){h=0;do{r=h;h=h+1|0;a[f+(r+e)>>0]=a[(c[k>>2]|0)+(g-h)>>0]|0;g=c[d>>2]|0}while(h>>>0>>0)}b=c[b>>2]|0;i=s;return b|0}function Nm(b,e,f,g){b=b|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;h=c[e+4>>2]|0;if((c[g+4>>2]|0)>>>0>>0)return;n=c[g>>2]|0;fq(n|0,c[e>>2]|0,h+1|0)|0;if(!h)return;l=c[b+4>>2]|0;m=c[f>>2]|0;j=c[f+4>>2]|0;k=(d[l+(d[m+j>>0]|0)>>0]|0)^255;i=c[b>>2]|0;while(1){if(h>>>0>>0){g=11;break}g=a[n+h>>0]|0;if(g<<24>>24){b=h-j|0;g=k+(d[l+(g&255)>>0]|0)|0;g=(g>>>0>255&1)+g&255;f=0;do{e=a[m+f>>0]|0;if(e<<24>>24){o=n+(b+f)|0;a[o>>0]=a[i+((d[l+(e&255)>>0]|0)+g)>>0]^a[o>>0]}f=f+1|0}while(f>>>0<=j>>>0)}h=h+-1|0;if(!h){g=11;break}}if((g|0)==11)return}function Om(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=b+20|0;g=b+24|0;i=0;do{a[(c[g>>2]|0)+i>>0]=(c[e+(i<<2)>>2]|0)-(c[h>>2]|0);i=i+1|0}while((i|0)!=(f|0))}else g=b+24|0;Pm(c[b>>2]|0,d,c[b+8>>2]|0,c[g>>2]|0,f,d)|0;return}function Pm(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+64|0;if((i|0)>=(j|0))ba();I=N+56|0;G=N+48|0;F=N+24|0;x=N+16|0;J=N;u=N+40|0;t=N+32|0;s=N+8|0;if(!h){k=Qm(b,e,f,k)|0;i=N;return k|0}n=c[b>>2]|0;if(n>>>0>>0){k=-1;i=N;return k|0}L=b+8|0;M=c[L>>2]|0;if(M>>>0>>0){k=-1;i=N;return k|0}l=f-M|0;p=n-f|0;if(!(a[b+152>>0]|0))Rm(b);if(f|0){m=b+64|0;o=0;do{K=o;o=o+1|0;a[(c[m>>2]|0)+K>>0]=a[e+(f-o)>>0]|0}while((o|0)!=(f|0))}if((n|0)!=(f|0)){m=b+64|0;n=0;do{a[(c[m>>2]|0)+(n+f)>>0]=0;n=n+1|0}while((n|0)!=(p|0))}m=p^255;K=b+104|0;n=0;do{a[(c[K>>2]|0)+n>>0]=(c[b>>2]|0)+m-(d[g+n>>0]|0);n=n+1|0}while((n|0)!=(h|0));w=b+16|0;E=b+13|0;o=c[K>>2]|0;B=b+96|0;p=c[B>>2]|0;n=c[w>>2]|0;C=b+20|0;e=c[C>>2]|0;g=d[E>>0]|0;q=e+1|0;r=0;do{m=a[n+(((_(d[e+(d[n+(d[o+r>>0]|0)>>0]|0)>>0]|0,g)|0)>>>0)%255|0)>>0]|0;if(!(m<<24>>24))m=0;else m=a[n+((d[q>>0]|0)+255-(d[e+(m&255)>>0]|0)&65535)>>0]|0;a[p+r>>0]=m;r=r+1|0}while((r|0)!=(h|0));q=b+88|0;D=c[B>>2]|0;H=c[w>>2]|0;m=c[C>>2]|0;g=b+92|0;n=c[g>>2]|0;c[F>>2]=c[q>>2];c[F+4>>2]=n;c[x>>2]=H;c[x+4>>2]=m;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];Zm(s,G,h,D,I,b+136|0);D=s;m=c[D+4>>2]|0;H=q;c[H>>2]=c[D>>2];c[H+4>>2]=m;H=b+64|0;m=c[b+36>>2]|0;D=b+56|0;n=c[D>>2]|0;e=c[L>>2]|0;z=c[w>>2]|0;A=c[C>>2]|0;y=c[b+68>>2]|0;c[F>>2]=c[H>>2];c[F+4>>2]=y;c[x>>2]=z;c[x+4>>2]=A;eq(n|0,0,e|0)|0;if(e){o=1;p=0;do{A=c[m+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];A=Tm(G,I,A)|0;o=o&A<<24>>24==0;a[n+p>>0]=A;p=p+1|0}while((p|0)!=(e|0));if(!o){m=c[D>>2]|0;n=b+60|0;z=c[n>>2]|0;A=c[g>>2]|0;c[J>>2]=c[q>>2];c[J+4>>2]=A;A=(c[L>>2]|0)+-1|0;c[u+4>>2]=A;c[u>>2]=m;c[t+4>>2]=A;c[t>>2]=z;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[J>>2];c[F+4>>2]=c[J+4>>2];c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];c[I>>2]=c[t>>2];c[I+4>>2]=c[t+4>>2];Xm(x,F,G,I);z=c[L>>2]|0;A=Xp(z)|0;m=c[D>>2]|0;fq(A|0,m|0,z|0)|0;if(z>>>0>h>>>0?(a[m>>0]=a[(c[n>>2]|0)+h>>0]|0,v=h+1|0,v>>>0<(c[L>>2]|0)>>>0):0){m=v;do{a[(c[D>>2]|0)+(m-h)>>0]=a[(c[n>>2]|0)+m>>0]|0;m=m+1|0}while(m>>>0<(c[L>>2]|0)>>>0)}y=b+72|0;z=b+76|0;c[z>>2]=Um(b,h)|0;n=b+80|0;e=0;do{a[(c[n>>2]|0)+e>>0]=a[(c[C>>2]|0)+(d[(c[y>>2]|0)+e>>0]|0)>>0]|0;e=e+1|0;m=c[z>>2]|0}while(e>>>0<=m>>>0);c[b+84>>2]=m;n=c[B>>2]|0;e=c[b+108>>2]|0;o=b+80|0;m=o;o=o+4|0;o=d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24;p=F;c[p>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[p+4>>2]=o;p=w;m=p;p=p+4|0;p=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;g=x;c[g>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[g+4>>2]=p;g=F+4|0;eq(n+h|0,0,o|0)|0;o=0;p=0;m=h;while(1){v=c[e+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];if(!((Vm(G,I,v)|0)<<24>>24)){a[n+m>>0]=o;m=m+1|0}p=p+1|0;if((p|0)==256)break;else o=o+1<<16>>16}if((m|0)!=((c[g>>2]|0)+h|0)){k=-1;i=N;return k|0}Hm(J,(c[z>>2]|0)+h|0);c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[q>>2];c[F+4>>2]=c[q+4>>2];c[G>>2]=c[y>>2];c[G+4>>2]=c[y+4>>2];c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];Xm(x,F,G,I);x=y;w=c[x>>2]|0;x=c[x+4>>2]|0;t=J;v=c[t+4>>2]|0;s=y;c[s>>2]=c[t>>2];c[s+4>>2]=v;s=c[B>>2]|0;t=c[K>>2]|0;u=b+16|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;q=d[C>>0]|d[C+1>>0]<<8|d[C+2>>0]<<16|d[C+3>>0]<<24;if(v|0){r=q+1|0;p=d[E>>0]|0;g=0;do{m=a[s+g>>0]|0;a:do if(m<<24>>24){n=a[u+((d[r>>0]|0)+255-(d[q+(m&255)>>0]|0)&65535)>>0]|0;m=0;o=0;while(1){e=o+1<<16>>16;if((a[u+(((_(d[q+(o&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==n<<24>>24)break;if((e&65535)<256){m=e&65535;o=e}else break a}a[t+g>>0]=a[q+m>>0]|0}while(0);g=g+1|0}while((g|0)!=(v|0))}fq(c[D>>2]|0,A|0,c[L>>2]|0)|0;Wm(b);if(c[z>>2]|0){m=b+100|0;n=0;do{b=(c[H>>2]|0)+(d[(c[K>>2]|0)+n>>0]|0)|0;a[b>>0]=a[(c[m>>2]|0)+n>>0]^a[b>>0];n=n+1|0}while(n>>>0<(c[z>>2]|0)>>>0)}b=y;c[b>>2]=w;c[b+4>>2]=x;if((M|0)!=(f|0)){m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0))}k=l;i=N;return k|0}}if((M|0)==(f|0)){k=l;i=N;return k|0}m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0));i=N;return l|0}function Qm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;A=i;i=i+32|0;if((i|0)>=(j|0))ba();t=A+24|0;u=A+16|0;r=A+8|0;s=A;m=c[b>>2]|0;if(m>>>0>>0){g=-1;i=A;return g|0}o=b+8|0;z=c[o>>2]|0;h=f-z|0;if(!(a[b+152>>0]|0))Rm(b);if(f|0){k=b+64|0;l=0;do{y=l;l=l+1|0;a[(c[k>>2]|0)+y>>0]=a[e+(f-l)>>0]|0}while((l|0)!=(f|0))}if((m|0)!=(f|0)){l=b+64|0;k=m-f|0;e=0;do{a[(c[l>>2]|0)+(e+f)>>0]=0;e=e+1|0}while((e|0)!=(k|0))}q=b+16|0;y=b+64|0;m=c[b+36>>2]|0;n=c[b+56>>2]|0;k=c[o>>2]|0;v=c[q>>2]|0;w=b+20|0;x=c[w>>2]|0;p=c[b+68>>2]|0;c[r>>2]=c[y>>2];c[r+4>>2]=p;c[s>>2]=v;c[s+4>>2]=x;eq(n|0,0,k|0)|0;if(k){e=1;l=0;do{x=c[m+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];x=Tm(u,t,x)|0;e=e&x<<24>>24==0;a[n+l>>0]=x;l=l+1|0}while((l|0)!=(k|0));if(!e){x=b+76|0;c[x>>2]=Um(b,0)|0;e=b+72|0;l=b+80|0;m=0;do{a[(c[l>>2]|0)+m>>0]=a[(c[w>>2]|0)+(d[(c[e>>2]|0)+m>>0]|0)>>0]|0;m=m+1|0;k=c[x>>2]|0}while(m>>>0<=k>>>0);c[b+84>>2]=k;p=b+96|0;m=c[p>>2]|0;n=c[b+108>>2]|0;e=b+80|0;k=e;e=e+4|0;e=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;l=r;c[l>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[l+4>>2]=e;l=q;k=l;l=l+4|0;l=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24;o=s;c[o>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[o+4>>2]=l;o=r+4|0;eq(m|0,0,e|0)|0;e=0;l=0;k=0;while(1){v=c[n+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];if(!((Vm(u,t,v)|0)<<24>>24)){a[m+k>>0]=e;k=k+1|0}l=l+1|0;if((l|0)==256)break;else e=e+1<<16>>16}if((k|0)!=(c[o>>2]|0)){g=-1;i=A;return g|0}u=c[p>>2]|0;v=b+104|0;r=c[v>>2]|0;s=c[x>>2]|0;t=b+16|0;t=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;n=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;if(s|0){o=n+1|0;p=d[b+13>>0]|0;q=0;do{k=a[u+q>>0]|0;a:do if(k<<24>>24){e=a[t+((d[o>>0]|0)+255-(d[n+(k&255)>>0]|0)&65535)>>0]|0;k=0;m=0;while(1){l=m+1<<16>>16;if((a[t+(((_(d[n+(m&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==e<<24>>24)break;if((l&65535)<256){k=l&65535;m=l}else break a}a[r+q>>0]=a[n+k>>0]|0}while(0);q=q+1|0}while((q|0)!=(s|0))}Wm(b);if(c[x>>2]|0){k=b+100|0;e=0;do{b=(c[y>>2]|0)+(d[(c[v>>2]|0)+e>>0]|0)|0;a[b>>0]=a[(c[k>>2]|0)+e>>0]^a[b>>0];e=e+1|0}while(e>>>0<(c[x>>2]|0)>>>0)}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}function Rm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+80|0;if((i|0)>=(j|0))ba();l=p+72|0;s=p+64|0;r=p+56|0;q=p+48|0;e=p+40|0;g=p+32|0;h=p+24|0;f=p+16|0;n=p+8|0;o=p;a[b+152>>0]=1;m=b+8|0;d=c[m>>2]|0;c[b+56>>2]=Zp(d,1)|0;c[b+60>>2]=Zp(d<<1,1)|0;Hm(s,(c[b>>2]|0)+-1|0);d=c[s+4>>2]|0;k=b+64|0;c[k>>2]=c[s>>2];c[k+4>>2]=d;Hm(r,c[m>>2]|0);k=c[r+4>>2]|0;d=b+72|0;c[d>>2]=c[r>>2];c[d+4>>2]=k;Hm(q,c[m>>2]|0);d=c[q+4>>2]|0;k=b+80|0;c[k>>2]=c[q>>2];c[k+4>>2]=d;Hm(e,c[m>>2]|0);k=c[e+4>>2]|0;d=b+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=k;d=c[m>>2]|0;c[b+96>>2]=Zp(d<<1,1)|0;c[b+100>>2]=Xp(d)|0;c[b+104>>2]=Xp(d)|0;Hm(g,d);d=c[g+4>>2]|0;k=b+112|0;c[k>>2]=c[g>>2];c[k+4>>2]=d;Hm(h,(c[m>>2]|0)+-1|0);k=c[h+4>>2]|0;d=b+120|0;c[d>>2]=c[h>>2];c[d+4>>2]=k;Hm(f,(c[m>>2]|0)+-1|0);d=c[f+4>>2]|0;k=b+128|0;c[k>>2]=c[f>>2];c[k+4>>2]=d;k=c[m>>2]|0;d=Xp(k<<2)|0;f=b+36|0;c[f>>2]=d;a:do if(!k){k=b+16|0;d=0}else{g=b+16|0;h=b+32|0;e=0;while(1){s=c[b>>2]|0;c[d+(e<<2)>>2]=Xp(s)|0;r=a[(c[h>>2]|0)+e>>0]|0;d=c[(c[f>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Sm(l,r,s+-1|0,d);e=e+1|0;d=c[m>>2]|0;if(e>>>0>=d>>>0){k=g;break a}d=c[f>>2]|0}}while(0);f=Xp(1024)|0;h=b+108|0;c[h>>2]=f;g=0;e=0;while(1){c[f+(e<<2)>>2]=Xp(d)|0;s=c[(c[h>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Sm(l,g&255,d+-1|0,s);e=e+1|0;if((e|0)==256)break;d=c[m>>2]|0;f=c[h>>2]|0;g=g+1<<16>>16}Hm(n,c[m>>2]|0);s=n;r=c[s+4>>2]|0;q=b+136|0;c[q>>2]=c[s>>2];c[q+4>>2]=r;Hm(o,c[m>>2]|0);q=o;r=c[q+4>>2]|0;s=b+144|0;c[s>>2]=c[q>>2];c[s+4>>2]=r;i=p;return}function Sm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0;b=c[b+4>>2]|0;h=d[b+(e&255)>>0]|0;if(!(e<<24>>24)){b=0;do{a[g+b>>0]=0;b=b+1|0}while(b>>>0<=f>>>0);return}e=0;b=a[b+1>>0]|0;while(1){a[g+e>>0]=b;b=(b&255)+h|0;e=e+1|0;if(e>>>0>f>>>0)break;else b=(b>>>0>255&1)+b&255}return}function Tm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;if(!(a[f>>0]|0)){f=a[c[e>>2]>>0]|0;return f|0}k=c[e>>2]|0;i=c[e+4>>2]|0;j=c[b+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[k+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(d[j+(b&255)>>0]|0))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Um(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;v=b+72|0;z=b+8|0;eq(c[v>>2]|0,0,(c[z>>2]|0)+1|0)|0;a[c[v>>2]>>0]=1;A=b+76|0;c[A>>2]=0;B=b+112|0;fq(c[B>>2]|0,c[v>>2]|0,(c[z>>2]|0)+1|0)|0;f=c[A>>2]|0;w=b+116|0;c[w>>2]=f;if(f>>>0>=((c[z>>2]|0)-e|0)>>>0){e=f;return e|0}y=b+56|0;s=b+16|0;r=b+20|0;b=f;h=f;p=1;q=f;o=1;g=0;while(1){m=c[y>>2]|0;f=a[m+q>>0]|0;if(!g)l=f;else{n=c[v>>2]|0;l=c[r>>2]|0;k=1;do{i=a[n+k>>0]|0;j=a[m+(q-k)>>0]|0;if(i<<24>>24==0|j<<24>>24==0)i=0;else i=a[(c[s>>2]|0)+((d[l+(j&255)>>0]|0)+(d[l+(i&255)>>0]|0))>>0]|0;f=i^f;k=k+1|0}while(k>>>0<=g>>>0);l=f}do if(!(l<<24>>24)){i=p+1|0;f=o}else{b=(h|0)>-1;if(g<<1>>>0>q>>>0){a:do if(b){k=l&255;l=o&255;if(!(o<<24>>24)){b=h;while(1)if((b|0)>0)b=b+-1|0;else break a}while(1){i=(c[v>>2]|0)+(h+p)|0;j=a[i>>0]|0;f=a[(c[B>>2]|0)+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(t=c[s>>2]|0,x=a[t+((d[b+k>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,x<<24>>24!=0):0)b=a[t+((d[b+(x&255)>>0]|0)+255-(d[b+l>>0]|0)&65535)>>0]|0;else b=0;a[i>>0]=b^j;if((h|0)>0)h=h+-1|0;else break}}while(0);h=c[w>>2]|0;i=h+p|0;b=c[A>>2]|0;b=i>>>0>b>>>0?i:b;c[A>>2]=b;i=p+1|0;f=o;break}b:do if(b){j=l&255;k=o&255;if(!(o<<24>>24)){b=h;while(1){a[(c[B>>2]|0)+(b+p)>>0]=0;if((b|0)>0)b=b+-1|0;else break b}}while(1){i=c[B>>2]|0;f=a[i+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(u=c[s>>2]|0,C=a[u+((d[b+j>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,C<<24>>24!=0):0)b=a[u+((d[b+(C&255)>>0]|0)+255-(d[b+k>>0]|0)&65535)>>0]|0;else b=0;a[i+(h+p)>>0]=b;if((h|0)>0)h=h+-1|0;else break}}while(0);b=p+-1|0;if((b|0)>-1){do{a[(c[B>>2]|0)+b>>0]=0;b=b+-1|0}while((b|0)>-1);f=0}else f=0;do{o=(c[v>>2]|0)+f|0;b=a[o>>0]|0;a[o>>0]=a[(c[B>>2]|0)+f>>0]^b;a[(c[B>>2]|0)+f>>0]=b;f=f+1|0;b=(c[w>>2]|0)+p|0}while(f>>>0<=b>>>0);h=c[A>>2]|0;c[A>>2]=b;c[w>>2]=h;i=1;f=l;g=q+1-g|0}while(0);q=q+1|0;if(q>>>0>=((c[z>>2]|0)-e|0)>>>0)break;else{p=i;o=f}}return b|0}function Vm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;if(!(a[f>>0]|0)){e=a[c[e>>2]>>0]|0;if(!(e<<24>>24)){f=0;return f|0}f=a[(c[b>>2]|0)+(e&255)>>0]|0;return f|0}j=c[e>>2]|0;i=c[e+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[j+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(b&255))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Wm(b){b=b|0;var e=0,f=0,g=0,h=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;x=i;i=i+64|0;if((i|0)>=(j|0))ba();o=x+56|0;n=x+48|0;e=x+40|0;r=x+32|0;s=x+24|0;u=x+16|0;t=x+8|0;m=x;g=(c[b+8>>2]|0)+-1|0;k=c[b+56>>2]|0;w=b+120|0;eq(c[w>>2]|0,0,(c[b+124>>2]|0)+1|0)|0;q=b+16|0;v=b+72|0;f=w;y=f;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;h=s;c[h>>2]=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;c[h+4>>2]=f;c[u>>2]=k;c[u+4>>2]=g;g=v;k=g;g=g+4|0;g=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;h=t;c[h>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[h+4>>2]=g;h=q;g=h;h=h+4|0;h=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;k=m;c[k>>2]=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;c[k+4>>2]=h;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Xm(r,e,n,o);r=b+76|0;s=b+128|0;c[b+132>>2]=(c[r>>2]|0)+-1;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Ym(e,n,o);e=c[r>>2]|0;if(!e){i=x;return}t=b+96|0;u=b+12|0;m=b+20|0;v=b+108|0;k=b+100|0;b=e;h=0;do{e=a[(c[t>>2]|0)+h>>0]|0;if(e<<24>>24){f=e&255;e=(_(d[(c[m>>2]|0)+f>>0]|0,(d[u>>0]|0)+-1|0)|0)%255|0;e=a[(c[q>>2]|0)+((e|0)<0?e+255|0:e)>>0]|0;f=c[(c[v>>2]|0)+(f<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[w>>2];c[o+4>>2]=c[w+4>>2];f=Tm(n,o,f)|0;g=c[(c[v>>2]|0)+((d[(c[t>>2]|0)+h>>0]|0)<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];g=Tm(n,o,g)|0;b=c[m>>2]|0;if(!(f<<24>>24==0|g<<24>>24==0)?(l=c[q>>2]|0,p=a[l+((d[b+(f&255)>>0]|0)+255-(d[b+(g&255)>>0]|0)&65535)>>0]|0,!(e<<24>>24==0|p<<24>>24==0)):0)b=a[l+((d[b+(p&255)>>0]|0)+(d[b+(e&255)>>0]|0))>>0]|0;else b=0;a[(c[k>>2]|0)+h>>0]=b;b=c[r>>2]|0}h=h+1|0}while(h>>>0>>0);i=x;return}function Xm(b,e,f,g){b=b|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;r=c[g>>2]|0;o=c[g+4>>2]|0;eq(r|0,0,o+1|0)|0;p=c[e+4>>2]|0;q=c[f+4>>2]|0;n=c[e>>2]|0;l=c[f>>2]|0;m=c[b+4>>2]|0;i=c[b>>2]|0;j=0;do{if(o>>>0>=j>>>0){f=o-j|0;f=q>>>0>f>>>0?f:q;b=n+j|0;k=0;do{h=r+(k+j)|0;g=a[b>>0]|0;e=a[l+k>>0]|0;if(g<<24>>24==0|e<<24>>24==0)g=0;else g=a[i+((d[m+(e&255)>>0]|0)+(d[m+(g&255)>>0]|0))>>0]|0;a[h>>0]=g^a[h>>0];k=k+1|0}while(k>>>0<=f>>>0)}j=j+1|0}while(j>>>0<=p>>>0);return}function Ym(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[e>>2]|0;f=c[e+4>>2]|0;eq(g|0,0,f+1|0)|0;b=c[d>>2]|0;e=0;do{d=e;e=e+1|0;a[g+d>>0]=e&1|0?a[b+e>>0]|0:0}while(e>>>0<=f>>>0);return}function Zm(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var 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;y=i;i=i+16|0;if((i|0)>=(j|0))ba();x=y;u=k;w=c[u>>2]|0;u=c[u+4>>2]|0;t=x;c[t>>2]=w;c[t+4>>2]=u;t=k+8|0;u=c[t+4>>2]|0;v=x+8|0;c[v>>2]=c[t>>2];c[v+4>>2]=u;a[w+1>>0]=1;a[w>>0]=a[g>>0]|0;c[x+4>>2]=1;if(f>>>0<=1){x=c[x>>2]|0;w=c[h>>2]|0;g=f+1|0;fq(w|0,x|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}w=c[e>>2]|0;r=c[e+4>>2]|0;s=r+1|0;t=c[x>>2]|0;u=1;v=0;while(1){n=a[g+u>>0]|0;p=v;v=v&1^1;q=u;u=u+1|0;c[x+(v<<3)+4>>2]=u;k=c[x+(v<<3)>>2]|0;p=c[x+(p<<3)+4>>2]|0;eq(k|0,0,q+2|0)|0;o=p>>>0>u>>>0?u:p;l=r+(n&255)|0;if(!(n<<24>>24)){e=0;do e=e+1|0;while(e>>>0<=o>>>0)}else{n=0;do{m=k+n|0;e=a[t+n>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[l>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0];n=n+1|0}while(n>>>0<=o>>>0)}l=p>>>0>q>>>0?q:p;n=0;do{e=n;n=n+1|0;m=k+n|0;e=a[t+e>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[s>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0]}while(n>>>0<=l>>>0);if((u|0)==(f|0))break;else t=k}x=c[h>>2]|0;g=f+1|0;fq(x|0,k|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}function _m(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=7;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(2,7,10340)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function $m(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Xp(68)|0;if(!(b>>>0<2|d>>>0>32)?(c[f+8>>2]=d,c[f+4>>2]=b,g=1<>2]=g,g=Xp(g<<2)|0,an(b,d,e,g),c[f>>2]=g,c[f+16>>2]=bn(0,0)|0,c[f+20>>2]=cn(0,0)|0,a[f+24>>0]=0,f|0):0){g=f;return g|0}Yp(f);g=0;return g|0}function an(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=1<>>0>1?i:1)<<2|0)|0;return}else j=0;do{g=0;h=1;b=0;while(1){k=((eb((e[d+(g<<1)>>1]|0)&j|0)|0)&1|0)!=0;b=(k?h:0)|b;g=g+1|0;if((g|0)==(a|0))break;else h=h<<1}c[f+(j<<2)>>2]=b;j=j+1|0}while(j>>>0>>0);return}function bn(a,b){a=a|0;b=b|0;var d=0;d=Zp(1,20)|0;if(!a)return d|0;c[d+8>>2]=a;c[d+16>>2]=b;return d|0}function cn(b,d){b=b|0;d=d|0;var e=0,f=0;e=Zp(1,20)|0;if(!(a[45769]|0)){f=0;do{a[45770+f>>0]=f<<7|f>>>7|f>>>5&2|f>>>3&4|f>>>1&8|f<<1&16|f<<3&32|f<<5&64;f=f+1|0}while((f|0)!=256);a[45769]=1}if(!b)return e|0;c[e+16>>2]=b;c[e+8>>2]=d;c[e+12>>2]=8;a[e>>0]=a[b>>0]|0;return e|0}function dn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function en(a){a=a|0;fn(a);Yp(a);return}function fn(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();d=e;Yp(c[b>>2]|0);gn(c[b+16>>2]|0);hn(c[b+20>>2]|0);if(!(a[b+24>>0]|0)){i=e;return}f=b+32|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];jn(d);kn(c[b+60>>2]|0);ln(c[b+64>>2]|0);Yp(c[b+28>>2]|0);i=e;return}function gn(a){a=a|0;Yp(a);return}function hn(a){a=a|0;Yp(a);return}function jn(a){a=a|0;Yp(c[a>>2]|0);Yp(c[a+4>>2]|0);Yp(c[a+20>>2]|0);return}function kn(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+32>>2]|0);Yp(a);return}function ln(a){a=a|0;Yp(c[a+4>>2]|0);Yp(c[a+8>>2]|0);Yp(a);return}function mn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function nn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function on(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((d>>>0)%((c[a+4>>2]|0)>>>0)|0|0){d=0;return d|0}d=pn(a,d,((d&7|0)!=0&1)+(d>>>3)|0,e,b)|0;return d|0}function pn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();h=m;k=b+24|0;l=b+4|0;if(!(a[k>>0]|0)){p=c[l>>2]|0;o=b+8|0;q=c[o>>2]|0;a[k>>0]=1;c[b+28>>2]=Zp(1<>2]|0);c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];c[n+12>>2]=c[h+12>>2];c[n+16>>2]=c[h+16>>2];c[n+20>>2]=c[h+20>>2];c[b+56>>2]=0;n=b+12|0;k=b+60|0;c[k>>2]=rn(q*5|0,q*15|0,65535/((p*255|0)>>>0)|0,(c[n>>2]|0)>>>1,1<<(c[o>>2]|0)+-1)|0;h=b+64|0;c[h>>2]=sn(c[n>>2]|0)|0}else{h=b+64|0;k=b+60|0}p=(d>>>0)/((c[l>>2]|0)>>>0)|0;q=b+16|0;tn(c[q>>2]|0,f,e);un(c[h>>2]|0);vn(c[k>>2]|0);wn(b,p,g);An(b,p,g);Hn(b,p,g);In(c[k>>2]|0,c[q>>2]|0);i=m;return e|0}function qn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=1<>2]<>2];h=m+(g<<2)|0;f=c[h>>2]|0;if(!f){c[h>>2]=d;c[l+(d<<2)>>2]=g;f=d;d=d+1|0}c[k+(j<<2)>>2]=f;j=j+1|0}while(j>>>0>>0);e=Zp(d,4)|0;Yp(m);c[a>>2]=k;c[a+4>>2]=l;c[a+8>>2]=(1<>2]=b;c[a+16>>2]=d;c[a+20>>2]=e;return}function rn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Zp(1,44)|0;c[g>>2]=a;c[g+4>>2]=b;a=b+a|0;c[g+8>>2]=a;c[g+12>>2]=e;c[g+16>>2]=f;b=Xp(a<<2)|0;c[g+20>>2]=b;if(!a)a=0;else{f=0;do{c[b+(f<<2)>>2]=Zp(e,1)|0;f=f+1|0}while(f>>>0>>0)}c[g+32>>2]=Xp(a)|0;c[g+36>>2]=d;return g|0}function sn(a){a=a|0;var b=0,d=0;b=Zp(1,24)|0;c[b+12>>2]=a;d=Zp(2,a)|0;c[b+4>>2]=d;a=Zp(2,a)|0;c[b+8>>2]=a;c[b+16>>2]=d;c[b+20>>2]=a;return b|0}function tn(b,d,e){b=b|0;d=d|0;e=e|0;c[b+8>>2]=d;c[b+16>>2]=e;a[b>>0]=0;c[b+4>>2]=0;c[b+12>>2]=0;return}function un(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=a+12|0;eq(c[d>>2]|0,0,c[e>>2]<<1|0)|0;b=a+8|0;eq(c[b>>2]|0,0,c[e>>2]<<1|0)|0;c[a>>2]=0;c[a+16>>2]=c[d>>2];c[a+20>>2]=c[b>>2];return}function vn(a){a=a|0;c[a+28>>2]=0;c[a+24>>2]=0;return}function wn(a,f,g){a=a|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;t=a+8|0;if(!((f|0)!=0&(c[t>>2]|0)!=1))return;u=(g|0)!=0;v=a+64|0;w=a+56|0;x=a+4|0;y=a+20|0;z=0;h=0;do{if(!u)h=(xn(c[y>>2]|0,c[x>>2]|0)|0)&255;i=c[v>>2]|0;q=c[i+16>>2]|0;r=c[i+20>>2]|0;p=z;z=z+1|0;s=1<>>1;i=c[(c[a>>2]|0)+(o<<2)>>2]|0;l=c[x>>2]|0;m=g+(_(l,p)|0)|0;if(!(c[w>>2]|0))if(!l)i=0;else{j=i;i=0;k=0;while(1){A=(d[m+k>>0]|0)-(0-(j&1)&255)|0;i=((A|0)<0?0-A|0:A)+(i&65535)|0;k=k+1|0;if((k|0)==(l|0))break;else j=j>>>1}i=i&65535}else i=yn(i,m,l)|0;b[r+(o<<1)>>1]=(e[q+(n<<1)>>1]|0)+(i&65535);o=o+1|0}while(o>>>0>>0);i=c[v>>2]|0}else{j=c[a>>2]|0;k=0;do{A=eb(c[j+(k<<2)>>2]^h|0)|0;b[r+(k<<1)>>1]=(e[q+(k>>>1<<1)>>1]|0)+A;k=k+1|0}while(k>>>0>>0)}zn(i)}while(z>>>0>>0?z>>>0<((c[t>>2]|0)+-1|0)>>>0:0);return}function xn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=b+12|0;g=c[k>>2]|0;j=a[b>>0]|0;if(g>>>0>>0){f=b+4|0;i=(c[f>>2]|0)+1|0;c[f>>2]=i;i=a[(c[b+16>>2]|0)+i>>0]|0;a[b>>0]=i;b=e-g|0;c[k>>2]=8;f=b;h=8;b=(j&255&(1<>2]=j;return (d[45770+((i&255&((1<>>j|b)>>0]|0)>>>(8-e|0)&255|0}function yn(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,f=0,g=0;if(!c){b=0;return b|0}else{e=a;a=0;f=0}while(1){g=(d[b+f>>0]|0)-(e&1|0?255:0)|0;a=(_(g,g)|0)+(a&65535)|0;f=f+1|0;if((f|0)==(c|0))break;else e=e>>>1}g=(a&65535)>>>3;return g|0}function zn(a){a=a|0;var b=0;b=c[a>>2]|0;c[a+16>>2]=c[a+4+(b<<2)>>2];b=b&1^1;c[a>>2]=b;c[a+20>>2]=c[a+4+(b<<2)>>2];return}function An(f,g,h){f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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;M=i;i=i+48|0;if((i|0)>=(j|0))ba();I=M+24|0;L=M;J=f+8|0;H=c[J>>2]|0;k=H+-1|0;K=1<>>0>=(E-H|0)>>>0){i=M;return}F=f+28|0;G=(h|0)==0;H=f+20|0;v=f+4|0;w=f+32|0;x=K<<1;y=f+64|0;z=f+60|0;A=K>>>1;B=K>>>0>>0;C=f+16|0;D=L+20|0;u=f+56|0;do{r=c[F>>2]|0;a:do if(G){g=(xn(c[H>>2]|0,c[v>>2]|0)|0)&255;f=1<>2];l=0;do{b[r+(l<<1)>>1]=eb(l^g|0)|0;l=l+1|0}while(l>>>0>>0)}else{g=c[v>>2]|0;if(c[u>>2]|0){f=0;while(1){b[r+(f<<1)>>1]=yn(f,h+(_(g,k)|0)|0,g)|0;f=f+1|0;g=c[v>>2]|0;if(f>>>0>=1<>>0)break a}}n=h+(_(g,k)|0)|0;o=(g|0)==0;p=1<>0]|0)-(0-(l&1)&255)|0;f=((t|0)<0?0-t|0:t)+(f&65535)|0;m=m+1|0;if((m|0)==(g|0))break;else l=l>>>1}f=f&65535}b[r+(q<<1)>>1]=f;q=q+1|0}while(q>>>0

>>0)}while(0);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];c[L+16>>2]=c[w+16>>2];c[L+20>>2]=c[w+20>>2];c[I>>2]=c[w>>2];c[I+4>>2]=c[w+4>>2];c[I+8>>2]=c[w+8>>2];c[I+12>>2]=c[w+12>>2];c[I+16>>2]=c[w+16>>2];c[I+20>>2]=c[w+20>>2];Bn(I,r);f=c[y>>2]|0;g=c[f+16>>2]|0;f=c[f+20>>2]|0;l=Cn(c[z>>2]|0)|0;if(B){m=c[L>>2]|0;n=c[D>>2]|0;p=0;r=K;s=0;while(1){o=p+A|0;q=0;t=0;while(1){R=q+p|0;O=o+q|0;P=c[n+(c[m+(R<<2)>>2]<<2)>>2]|0;Q=c[n+(c[m+(O<<2)>>2]<<2)>>2]|0;R=e[g+(R<<1)>>1]|0;T=R+P|0;O=e[g+(O<<1)>>1]|0;U=O+Q|0;N=t+s|0;S=(T&65535)>>>0>(U&65535)>>>0;b[f+(N<<1)>>1]=S?U:T;a[l+N>>0]=S&1;N=N|1;P=R+(P>>>16)|0;Q=O+(Q>>>16)|0;O=(P&65535)>>>0>(Q&65535)>>>0;b[f+(N<<1)>>1]=O?Q:P;a[l+N>>0]=O&1;q=q+1|0;if((q|0)==4)break;else t=t+2|0}r=r+8|0;if(r>>>0>=x>>>0)break;else{p=p+4|0;s=s+8|0}}}Dn(c[z>>2]|0,f,c[C>>2]|0);zn(c[y>>2]|0);k=k+1|0}while(k>>>0<(E-(c[J>>2]|0)|0)>>>0);i=M;return}function Bn(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0;f=c[a+16>>2]|0;if(f>>>0<=1)return;g=c[a+4>>2]|0;h=c[a+8>>2]|0;i=c[a+12>>2]|0;a=c[a+20>>2]|0;d=1;do{j=c[g+(d<<2)>>2]|0;c[a+(d<<2)>>2]=(e[b+(j>>>i<<1)>>1]|0)<<16|(e[b+((h&j)<<1)>>1]|0);d=d+1|0}while(d>>>0>>0);return}function Cn(a){a=a|0;return c[(c[a+20>>2]|0)+(c[a+24>>2]<<2)>>2]|0}function Dn(a,b,c){a=a|0;b=b|0;c=c|0;En(a,b,c,1);return}function En(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=a+24|0;m=(c[h>>2]|0)+1|0;o=c[a+8>>2]|0;c[h>>2]=(m|0)==(o|0)?0:m;h=a+40|0;m=(c[h>>2]|0)+1|0;c[h>>2]=m;l=a+28|0;n=(c[l>>2]|0)+1|0;c[l>>2]=n;if((m|0)!=(c[a+36>>2]|0)){if((n|0)!=(o|0))return;i=c[a+12>>2]|0;if(!i)h=0;else{h=0;l=-1;m=0;while(1){j=b[d+(m<<1)>>1]|0;k=(j&65535)<(l&65535);h=k?m:h;m=m+g|0;if(m>>>0>=i>>>0)break;else l=k?j:l}}Fn(a,h,c[a>>2]|0,f);return}c[h>>2]=0;m=c[a+12>>2]|0;if(!m)h=0;else{h=0;k=-1;l=0;while(1){i=b[d+(l<<1)>>1]|0;j=(i&65535)<(k&65535);h=j?l:h;l=l+g|0;if(l>>>0>=m>>>0)break;else k=j?i:k}i=e[d+(h<<1)>>1]|0;j=0;do{g=d+(j<<1)|0;b[g>>1]=(e[g>>1]|0)-i;j=j+1|0}while((j|0)!=(m|0))}if((n|0)!=(o|0))return;Fn(a,h,c[a>>2]|0,f);return}function Fn(b,d,e,f){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;m=c[b+16>>2]|0;g=c[b+24>>2]|0;n=c[b+8>>2]|0;g=((g|0)==0?n:g)+-1|0;if(!e){j=d;i=g}else{i=c[b+20>>2]|0;h=0;do{d=((a[(c[i+(g<<2)>>2]|0)+d>>0]|0?m:0)|d)>>>1;h=h+1|0;g=((g|0)==0?n:g)+-1|0}while((h|0)!=(e|0));j=d;i=g}l=b+28|0;d=c[l>>2]|0;if(d>>>0<=e>>>0){m=b+32|0;n=0;m=c[m>>2]|0;Gn(f,m,n);f=c[l>>2]|0;f=f-n|0;c[l>>2]=f;return}k=b+20|0;g=b+32|0;d=d-e|0;b=0;while(1){h=a[(c[(c[k>>2]|0)+(i<<2)>>2]|0)+j>>0]|0?m:0;a[(c[g>>2]|0)+b>>0]=(h|0)!=0&1;b=b+1|0;if((b|0)==(d|0))break;else{j=(h|j)>>>1;i=((i|0)==0?n:i)+-1|0}}n=c[g>>2]|0;Gn(f,n,d);f=c[l>>2]|0;f=f-d|0;c[l>>2]=f;return}function Gn(b,e,f){b=b|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;e=e+f+-1|0;m=c[b+8>>2]|0;n=b+12|0;j=c[n>>2]|0;o=b+4|0;k=c[o>>2]|0;do if(k){l=8-k|0;l=l>>>0>>0?l:f;g=a[b>>0]|0;if(!l){i=g;h=(g&255)>>>1}else{g=g&255;i=0;do{h=d[e>>0]|0|g&65535;g=h<<1;e=e+-1|0;i=i+1|0}while(i>>>0>>0);i=g&255;h=h&255}g=k+l|0;if((g|0)==8){a[m+j>>0]=h;f=f-l|0;j=j+1|0;break}a[b>>0]=i;b=g;c[o>>2]=b;return}while(0);k=f>>>3;if(k){i=e+(_(k,-8)|0)|0;g=j;h=0;while(1){a[m+g>>0]=(d[e+-1>>0]|0)<<6|(d[e>>0]|0)<<7|(d[e+-2>>0]|0)<<5|(d[e+-3>>0]|0)<<4|(d[e+-4>>0]|0)<<3|(d[e+-5>>0]|0)<<2|(d[e+-6>>0]|0)<<1|(d[e+-7>>0]|0);h=h+1|0;if((h|0)==(k|0))break;else{e=e+-8|0;g=g+1|0}}e=i;j=j+k|0}m=k<<3;i=f-m|0;if((f|0)==(m|0))e=0;else{g=e;e=0;h=0;while(1){e=(d[g>>0]|0|e&65534)<<1;h=h+1|0;if(h>>>0>=i>>>0)break;else g=g+-1|0}e=e&255}a[b>>0]=e;c[n>>2]=j;b=i;c[o>>2]=b;return}function Hn(f,g,h){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,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;v=f+8|0;i=c[v>>2]|0;D=1<>>0>=g>>>0)return;E=f+64|0;F=f+60|0;G=f+28|0;H=(h|0)==0;w=f+20|0;x=f+4|0;y=D<<1;z=D>>>1;A=D>>>0>>0;B=f+16|0;C=f+56|0;do{s=c[E>>2]|0;r=c[s+16>>2]|0;s=c[s+20>>2]|0;t=Cn(c[F>>2]|0)|0;u=c[G>>2]|0;a:do if(H){j=(xn(c[w>>2]|0,c[x>>2]|0)|0)&255;k=1<>2];l=0;do{b[u+(l<<1)>>1]=eb(l^j|0)|0;l=l+1|0}while(l>>>0>>0)}else{j=c[x>>2]|0;if(c[C>>2]|0){k=0;while(1){b[u+(k<<1)>>1]=yn(k,h+(_(j,i)|0)|0,j)|0;k=k+1|0;j=c[x>>2]|0;if(k>>>0>=1<>>0)break a}}n=h+(_(j,i)|0)|0;o=(j|0)==0;p=1<>0]|0)-(0-(l&1)&255)|0;k=((I|0)<0?0-I|0:I)+(k&65535)|0;m=m+1|0;if((m|0)==(j|0))break;else l=l>>>1}k=k&65535}b[u+(q<<1)>>1]=k;q=q+1|0}while(q>>>0

>>0)}while(0);j=c[f>>2]|0;k=1<>2]|0);l=k>>>1;if(A){m=0;n=D;o=0;while(1){p=(e[r+(m<<1)>>1]|0)+(e[u+(c[j+(o<<2)>>2]<<1)>>1]|0)|0;q=(e[r+(m+z<<1)>>1]|0)+(e[u+(c[j+(n<<2)>>2]<<1)>>1]|0)|0;I=(p&65535)>>>0<(q&65535)>>>0;b[s+(o<<1)>>1]=I?p:q;a[t+o>>0]=I&1^1;n=n+k|0;if(n>>>0>=y>>>0)break;else{m=m+l|0;o=o+k|0}}}En(c[F>>2]|0,s,c[B>>2]|0,k);zn(c[E>>2]|0);i=i+1|0}while((i|0)!=(g|0));return}function In(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[b+16>>2]|0;f=c[b+24>>2]|0;l=c[b+8>>2]|0;m=b+28|0;e=c[m>>2]|0;if(!e){k=b+32|0;l=0;k=c[k>>2]|0;Gn(d,k,l);d=c[m>>2]|0;d=d-l|0;c[m>>2]=d;return}k=b+20|0;b=b+32|0;h=0;i=0;g=((f|0)==0?l:f)+-1|0;while(1){f=a[(c[(c[k>>2]|0)+(g<<2)>>2]|0)+h>>0]|0?j:0;a[(c[b>>2]|0)+i>>0]=(f|0)!=0&1;i=i+1|0;if((i|0)==(e|0))break;else{h=(f|h)>>>1;g=((g|0)==0?l:g)+-1|0}}l=c[b>>2]|0;Gn(d,l,e);d=c[m>>2]|0;d=d-e|0;c[m>>2]=d;return}function Jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Kn(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=9;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(2,9,10344)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Ln(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Mn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Nn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function On(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Pn(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=3;c[b+8>>2]=9;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(3,9,10348)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Qn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Rn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Sn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Un(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=6;c[b+8>>2]=15;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(6,15,10354)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Vn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Wn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Xn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Yn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Zn(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+zp(+tp(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){g=~~m;k=0-g|0;d=+ip(d,k);l=+ip(e,k)}else{l=e;g=0}i=d*d+l*l;k=0-g|0;f=+ip((d*b+l*c)/i,k);e=+ip((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+yo(s,d);f=e*b;e=e*c;break}i=+N(+b);g=i==s;j=+N(+c);k=j==s;if((g|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+yo(g?1.0:0.0,b);c=+yo(k?1.0:0.0,c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){k=+N(+d)==s;n=+yo(k?1.0:0.0,d);k=+N(+l)==s;e=+yo(k?1.0:0.0,l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);h[a>>3]=f;h[a+8>>3]=e;return}function _n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+Ap(+up(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){h=~~m;k=0-h|0;d=+wp(d,k);l=+wp(e,k)}else{l=e;h=0}i=d*d+l*l;k=0-h|0;f=+wp((d*b+l*c)/i,k);e=+wp((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+Ao(s,d);f=e*b;e=e*c;break}i=+N(+b);h=i==s;j=+N(+c);k=j==s;if((h|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+Ao(+(h&1),b);c=+Ao(+(k&1),c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){n=+Ao(+(+N(+d)==s&1),d);e=+Ao(+(+N(+l)==s&1),l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);g[a>>2]=f;g[a+4>>2]=e;return}function $n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,g=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=b*d;k=c*e;l=b*e;m=c*d;n=j-k;o=m+l;if(!((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0))){i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}f=+N(+b)==s;g=+N(+c)==s;if(f|g){b=+yo(+(f&1),b);c=+yo(+(g&1),c);if(d!=d|0.0!=0.0)d=+yo(0.0,d);if(e!=e|0.0!=0.0){e=+yo(0.0,e);g=1}else g=1}else g=0;f=+N(+d)==s;i=+N(+e)==s;if(i|f){d=+yo(+(f&1),d);e=+yo(+(i&1),e);if(b!=b|0.0!=0.0)b=+yo(0.0,b);if(c!=c|0.0!=0.0)c=+yo(0.0,c)}else if(!g){i=+N(+j)==s;i=i|+N(+k)==s;i=+N(+l)==s|i;if(!(+N(+m)==s|i)){i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}if(b!=b|0.0!=0.0)b=+yo(0.0,b);if(c!=c|0.0!=0.0)c=+yo(0.0,c);if(d!=d|0.0!=0.0)d=+yo(0.0,d);if(e!=e|0.0!=0.0)e=+yo(0.0,e)}n=(d*b-e*c)*s;o=(d*c+e*b)*s;i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}function ao(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=b*d;k=c*e;l=b*e;m=c*d;n=j-k;o=m+l;if(!((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0))){i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}f=+N(+b)==s;h=+N(+c)==s;if(f|h){b=+Ao(+(f&1),b);c=+Ao(+(h&1),c);if(d!=d|0.0!=0.0)d=+Ao(0.0,d);if(e!=e|0.0!=0.0){e=+Ao(0.0,e);h=1}else h=1}else h=0;f=+N(+d)==s;i=+N(+e)==s;if(i|f){d=+Ao(+(f&1),d);e=+Ao(+(i&1),e);if(b!=b|0.0!=0.0)b=+Ao(0.0,b);if(c!=c|0.0!=0.0)c=+Ao(0.0,c)}else if(!h){i=+N(+j)==s;i=i|+N(+k)==s;i=+N(+l)==s|i;if(!(+N(+m)==s|i)){i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}if(b!=b|0.0!=0.0)b=+Ao(0.0,b);if(c!=c|0.0!=0.0)c=+Ao(0.0,c);if(d!=d|0.0!=0.0)d=+Ao(0.0,d);if(e!=e|0.0!=0.0)e=+Ao(0.0,e)}n=(d*b-e*c)*s;o=(d*c+e*b)*s;i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}function bo(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=c[a+60>>2];a=co(cb(6,d|0)|0)|0;i=b;return a|0}function co(a){a=a|0;if(a>>>0>4294963200){c[(eo()|0)>>2]=0-a;a=-1}return a|0}function eo(){var a=0;if(!(c[11306]|0))a=45268;else a=c[(Qa()|0)+64>>2]|0;return a|0}function fo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;if((i|0)>=(j|0))ba();o=r+16|0;n=r;e=r+32|0;p=a+28|0;f=c[p>>2]|0;c[e>>2]=f;q=a+20|0;f=(c[q>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;l=a+60|0;m=a+44|0;b=2;f=f+d|0;while(1){if(!(c[11306]|0)){c[o>>2]=c[l>>2];c[o+4>>2]=e;c[o+8>>2]=b;h=co(mb(146,o|0)|0)|0}else{Ea(22,a|0);c[n>>2]=c[l>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=co(mb(146,n|0)|0)|0;xa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[p>>2]=(c[p>>2]|0)+h;k=g;b=2}else k=g;else{k=c[m>>2]|0;c[p>>2]=k;c[q>>2]=k;k=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=k-h}if((f|0)==6){o=c[m>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);a=o;c[p>>2]=a;c[q>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[p>>2]=0;c[q>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=r;return d|0}function go(a){a=a|0;if(!(c[a+68>>2]|0))ho(a);return}function ho(a){a=a|0;return}function io(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;if((i|0)>=(j|0))ba();g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((co(ib(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function jo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;if((i|0)>=(j|0))ba();h=n+16|0;g=n;f=n+32|0;c[f>>2]=d;k=f+4|0;m=b+48|0;o=c[m>>2]|0;c[k>>2]=e-((o|0)!=0&1);l=b+44|0;c[f+8>>2]=c[l>>2];c[f+12>>2]=o;if(!(c[11306]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=co(lb(145,h|0)|0)|0}else{Ea(23,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=co(lb(145,g|0)|0)|0;xa(0)}if((f|0)>=1){k=c[k>>2]|0;if(f>>>0>k>>>0){g=c[l>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-k);if(!(c[m>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=n;return f|0}function ko(a){a=a|0;if(!(c[a+68>>2]|0))ho(a);return}function lo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;if((i|0)>=(j|0))ba();f=g;c[b+36>>2]=1;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,Xa(54,f|0)|0):0)a[b+75>>0]=-1;f=fo(b,d,e)|0;i=g;return f|0}function mo(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,k=0,l=0;l=i;i=i+112|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=0;g=k+4|0;c[g>>2]=a;c[k+44>>2]=a;h=k+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[k+76>>2]=-1;no(k,0);e=oo(k,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[g>>2]|0)+(c[k+108>>2]|0)-(c[h>>2]|0));i=l;return e|0}function no(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function oo(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(eo()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0}while((so(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=po(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=po(b)|0;if((d[42356+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){no(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[42356+i>>0]|0)>>>0>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;no(b,0);c[(eo()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=po(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=pq(e|0,j|0,10,0)|0;l=C;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=iq(k|0,l|0,f|0,m|0)|0;j=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[42612+((e*23|0)>>>5&7)>>0]|0;j=a[42356+i>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f|i<>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0>>0))break;else i=k}f=0}else{f=0;k=0}l=hq(-1,-1,n|0)|0;m=C;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=jq(k|0,i|0,n|0)|0;f=C;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[42356+i>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f+(_(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0>>0){n=qq(-1,-1,e|0,0)|0;o=C;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=pq(k|0,m|0,e|0,0)|0;l=C;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=iq(j|0,0,f|0,l|0)|0;f=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[42356+i>>0]|0)>>>0>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0}while((d[42356+i>>0]|0)>>>0>>0);c[(eo()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0>>0|(j|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(eo()|0)>>2]=34;g=iq(g|0,h|0,-1,-1)|0;h=C;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(eo()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=cq(i^e|0,j^g|0,e|0,g|0)|0;h=C}while(0);C=h;return g|0}function po(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=qo(b)|0;if((e|0)>=0){f=c[f>>2]|0;i=c[b+8>>2]|0;if(f){h=c[b+4>>2]|0;f=f-(c[b+108>>2]|0)|0;g=i;if((i-h|0)<(f|0))j=9;else c[b+100>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+100>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function qo(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();b=e;if((c[a+8>>2]|0)==0?(ro(a)|0)!=0:0)b=-1;else if((pb[c[a+32>>2]&15](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function ro(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)pb[c[b+36>>2]&15](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function so(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function to(a,b,c){a=a|0;b=b|0;c=c|0;a=mo(a,b,c,0,-2147483648)|0;return a|0}function uo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;j=+g[b+4>>2];i=+X(+(+g[b>>2]+-162.88958740234375));b=(g[k>>2]=i,c[k>>2]|0);i=(c[k>>2]=b&8388607|2130706432,+g[k>>2]);d=d+-19+(b>>>23)|0;b=(d|0)/2|0;h=(c[k>>2]=(b<<23)+1065353216,+g[k>>2]);f=(c[k>>2]=(d-b<<23)+1065353216,+g[k>>2]);e=+R(+j)*i*h*f;g[a>>2]=+Q(+j)*i*h*f;g[a+4>>2]=e;return}function vo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;a=+N(+a);h[k>>3]=a;m=c[k>>2]|0;g=c[k+4>>2]|0;a=+N(+b);h[k>>3]=a;e=c[k>>2]|0;f=c[k+4>>2]|0;i=g>>>0>>0|(g|0)==(f|0)&m>>>0>>0;l=i?e:m;j=i?f:g;e=i?m:e;f=i?g:f;g=hq(l|0,j|0,52)|0;i=hq(e|0,f|0,52)|0;c[k>>2]=l;c[k+4>>2]=j;a=+h[k>>3];c[k>>2]=e;c[k+4>>2]=f;b=+h[k>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+b;break}if(g>>>0<=1533)if(i>>>0<573){a=a*5260135901548373507240989.0e186;b=b*5260135901548373507240989.0e186;d=1.90109156629516e-211}else d=1.0;else{a=a*1.90109156629516e-211;b=b*1.90109156629516e-211;d=5260135901548373507240989.0e186}o=a*134217729.0;o=o+(a-o);n=a-o;a=a*a;q=b*134217729.0;q=q+(b-q);p=b-q;b=b*b;a=d*+O(+(a+(b+(p*p+(q*q-b+q*2.0*p)+(n*n+(o*o-a+o*2.0*n))))))}}else a=b;while(0);return +a}function wo(a){a=a|0;return +(+xo(+g[a>>2],+g[a+4>>2]))}function xo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,h=0,i=0;a=+N(+a);h=(g[k>>2]=a,c[k>>2]|0);b=+N(+b);f=(g[k>>2]=b,c[k>>2]|0);i=h>>>0>>0;e=i?f:h;f=i?h:f;b=(c[k>>2]=e,+g[k>>2]);a=(c[k>>2]=f,+g[k>>2]);do if((f|0)!=2139095040){if(e>>>0>2139095039|(f|0)==0|(e-f|0)>>>0>209715199){a=b+a;break}if(e>>>0<=1568669695)if(f>>>0<562036736){a=a*1237940039285380274899124.0e3;b=b*1237940039285380274899124.0e3;d=8.077935669463161e-28}else d=1.0;else{a=a*8.077935669463161e-28;b=b*8.077935669463161e-28;d=1237940039285380274899124.0e3}a=d*+O(+(b*b+a*a))}while(0);return +a}function yo(a,b){a=+a;b=+b;var d=0;h[k>>3]=b;d=c[k+4>>2]|0;b=+N(+a);h[k>>3]=b;d=d&-2147483648|c[k+4>>2];c[k>>2]=c[k>>2];c[k+4>>2]=d;return +(+h[k>>3])}function zo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,h=0.0;h=+g[b>>2];f=+g[b+4>>2];do if(!(h==0.0&f==0.0)){d=+N(+f);if(((g[k>>2]=d,c[k>>2]|0)|0)==2139095040){g[a>>2]=s;g[a+4>>2]=f;break}e=(g[k>>2]=h,c[k>>2]|0);d=+N(+h);b=(g[k>>2]=d,c[k>>2]|0);if(b>>>0>2139095040){f=f-f;g[a>>2]=h;g[a+4>>2]=f/f;break}if((b|0)==2139095040){d=f-f;if((e|0)<0){d=+N(+d);h=+Ao(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{f=+Ao(d,f);g[a>>2]=h;g[a+4>>2]=f;break}}else if(!(h>=0.0)){h=+O(+((-h+ +vo(h,f))*.5));d=+N(+f)/(h*2.0);h=+Ao(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{h=+O(+((h+ +vo(h,f))*.5));g[a>>2]=h;g[a+4>>2]=f/(h*2.0);break}}else{g[a>>2]=0.0;g[a+4>>2]=f}while(0);return}function Ao(a,b){a=+a;b=+b;var d=0;d=(g[k>>2]=b,c[k>>2]|0);b=+N(+a);return +(c[k>>2]=d&-2147483648|(g[k>>2]=b,c[k>>2]|0),+g[k>>2])}function Bo(a){a=a|0;return +(+W(+(+g[a+4>>2]),+(+g[a>>2])))}function Co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();f=d+16|0;e=d+8|0;h=d;k=c[b>>2]|0;g[h>>2]=-+g[b+4>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Do(e,f);b=c[e+4>>2]|0;c[a>>2]=c[e>>2];c[a+4>>2]=b;i=d;return}function Do(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();e=s+16|0;f=s+8|0;h=s;p=+g[b>>2];l=b+4|0;q=+g[l>>2];r=(g[k>>2]=p,c[k>>2]|0);d=+N(+p);m=(g[k>>2]=d,c[k>>2]|0);d=+N(+q);n=(g[k>>2]=d,c[k>>2]|0);o=(m|0)<2139095040;do if(o&(n|0)<2139095040){if(!n){g[a>>2]=+Eo(p);g[a+4>>2]=p*q;break}if((m|0)<1091567616){d=+Eo(p)*+Q(+q);q=+Ho(p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1118925336){t=+X(+(+N(+p)))*.5;d=t*+Q(+q);q=+Ao(t,p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1128313319){g[h>>2]=+N(+p);g[h+4>>2]=q;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];uo(f,e,-1);r=c[f>>2]|0;t=+g[f+4>>2];c[b>>2]=r;g[l>>2]=t;t=t*+Ao(1.0,p);c[a>>2]=r;g[a+4>>2]=t;break}else{p=p*1701411834604692317316873.0e14;t=p*+R(+q);g[a>>2]=p*p*+Q(+q);g[a+4>>2]=t;break}}else{f=(n|0)>2139095039;if((m|0)==0&f){q=q-q;t=+Ao(0.0,p*q);g[a>>2]=q;g[a+4>>2]=t;break}e=(m|0)>2139095039;if(e&(n|0)==0){d=p*p;if(!(r&8388607)){t=q*+Ao(0.0,p);g[a>>2]=d;g[a+4>>2]=t;break}else{t=+Ao(0.0,(p+p)*q);g[a>>2]=d;g[a+4>>2]=t;break}}if(o&f){t=q-q;g[a>>2]=t;g[a+4>>2]=p*t;break}d=p*p;if(!(e&(r&8388607|0)==0)){t=q-q;g[a>>2]=d*t;g[a+4>>2]=(p+p)*t;break}if(f){g[a>>2]=d;g[a+4>>2]=p*(q-q);break}else{t=p*+R(+q);g[a>>2]=d*+Q(+q);g[a+4>>2]=t;break}}while(0);i=s;return}function Eo(a){a=+a;var b=0;a=+N(+a);b=(g[k>>2]=a,c[k>>2]|0);do if(b>>>0<1060205079)if(b>>>0<964689920)a=1.0;else{a=+Fo(a);a=a*a/((a+1.0)*2.0)+1.0}else if(b>>>0<1118925335){a=+X(+a);a=(a+1.0/a)*.5;break}else{a=+Go(a);break}while(0);return +a}function Fo(a){a=+a;var b=0,d=0,e=0.0,f=0.0,h=0.0,i=0,j=0.0;d=(g[k>>2]=a,c[k>>2]|0);h=+N(+a);b=(g[k>>2]=h,c[k>>2]|0);d=d>>>31;do if(b>>>0>1100331075){if(b>>>0<=2139095040)if(!d)if(a>88.7216796875)a=a*1701411834604692317316873.0e14;else i=11;else a=-1.0}else{if(b>>>0<=1051816472)if(b>>>0<855638016)break;else{h=0.0;d=0;i=14;break}if(b>>>0<1065686418)if(!d){e=a+-.6931381225585938;b=1;f=9.05800061445916e-06;i=12;break}else{e=a+.6931381225585938;b=-1;f=-9.05800061445916e-06;i=12;break}else i=11}while(0);if((i|0)==11){b=~~(a*1.4426950216293335+(d|0?-.5:.5));f=+(b|0);e=a-f*.6931381225585938;f=f*9.05800061445916e-06;i=12}if((i|0)==12){h=e-f;a=h;h=e-h-f;d=b;i=14}a:do if((i|0)==14){f=a*.5;e=a*f;j=e*(e*1.5807170420885086e-03+-.03333321213722229)+1.0;f=3.0-f*j;f=e*((j-f)/(6.0-a*f));if(!d){a=a-(a*f-e);break}e=a*(f-h)-h-e;switch(d|0){case -1:{a=(a-e)*.5+-.5;break a}case 1:if(a<-.25){a=(e-(a+.5))*-2.0;break a}else{a=(a-e)*2.0+1.0;break a}default:{f=(c[k>>2]=(d<<23)+1065353216,+g[k>>2]);if(d>>>0>56){a=a-e+1.0;a=((d|0)==128?a*2.0*1701411834604692317316873.0e14:f*a)+-1.0;break a}b=127-d<<23;if((d|0)<23)a=1.0-(c[k>>2]=b,+g[k>>2])+(a-e);else a=a-((c[k>>2]=b,+g[k>>2])+e)+1.0;a=f*a;break a}}}while(0);return +a}function Go(a){a=+a;return +(+X(+(a+-162.88958740234375))*1661534994731144841129758.0e11*1661534994731144841129758.0e11)}function Ho(a){a=+a;var b=0.0,d=0.0,e=0;d=((g[k>>2]=a,c[k>>2]|0)|0)<0?-.5:.5;b=+N(+a);e=(g[k>>2]=b,c[k>>2]|0);do if(e>>>0<1118925335){b=+Fo(b);if(e>>>0>=1065353216){a=d*(b+b/(b+1.0));break}if(e>>>0>=964689920)a=d*(b*2.0-b*b/(b+1.0))}else a=d*2.0*+Go(b);while(0);return +a}function Io(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0.0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();h=o+16|0;l=o+8|0;m=o;n=+g[b>>2];d=+g[b+4>>2];p=+N(+d);e=(g[k>>2]=p,c[k>>2]|0);do if(e){f=(g[k>>2]=n,c[k>>2]|0);p=+N(+n);b=(g[k>>2]=p,c[k>>2]|0);if(!b){p=+R(+d);g[a>>2]=+Q(+d);g[a+4>>2]=p;break}if(e>>>0<=2139095039)if((f+-1118925336|0)>>>0<9342557){g[m>>2]=n;g[m+4>>2]=d;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];uo(l,h,0);m=c[l+4>>2]|0;c[a>>2]=c[l>>2];c[a+4>>2]=m;break}else{n=+X(+n);p=n*+R(+d);g[a>>2]=n*+Q(+d);g[a+4>>2]=p;break}if((b|0)!=2139095040){p=d-d;g[a>>2]=p;g[a+4>>2]=p;break}if((f|0)<0){g[a>>2]=0.0;g[a+4>>2]=0.0;break}else{g[a>>2]=n;g[a+4>>2]=d-d;break}}else{g[a>>2]=+X(+n);g[a+4>>2]=d}while(0);i=o;return}function Jo(a,b){a=a|0;b=b|0;var c=0.0;c=-+h[b+8>>3];h[a>>3]=+h[b>>3];h[a+8>>3]=c;return}function Ko(a,b){a=a|0;b=b|0;var d=0.0;d=-+g[b+4>>2];c[a>>2]=c[b>>2];g[a+4>>2]=d;return}function Lo(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,k=0,l=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();h=d+16|0;f=d+8|0;k=d;l=c[b>>2]|0;g[k>>2]=-+g[b+4>>2];c[k+4>>2]=l;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Mo(f,h);e=-+g[f>>2];c[a>>2]=c[f+4>>2];g[a+4>>2]=e;i=d;return}function Mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,t=0.0,u=0.0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();d=r+16|0;e=r+8|0;f=r;m=+g[b>>2];h=b+4|0;n=+g[h>>2];o=(g[k>>2]=m,c[k>>2]|0);t=+N(+m);l=(g[k>>2]=t,c[k>>2]|0);t=+N(+n);p=(g[k>>2]=t,c[k>>2]|0);q=(l|0)<2139095040;do if(q&(p|0)<2139095040){if(!p){g[a>>2]=+Ho(m);g[a+4>>2]=n;break}if((l|0)<1091567616){u=+Ho(m)*+Q(+n);t=+Eo(m)*+R(+n);g[a>>2]=u;g[a+4>>2]=t;break}if((l|0)<1118925336){t=+X(+(+N(+m)))*.5;u=t*+R(+n);g[a>>2]=+Ao(t,m)*+Q(+n);g[a+4>>2]=u;break}if((l|0)<1128313319){g[f>>2]=+N(+m);g[f+4>>2]=n;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];uo(e,d,-1);p=c[e>>2]|0;q=c[e+4>>2]|0;c[b>>2]=p;c[h>>2]=q;u=(c[k>>2]=p,+g[k>>2]);g[a>>2]=u*+Ao(1.0,m);c[a+4>>2]=q;break}else{t=m*1701411834604692317316873.0e14;u=t*t*+R(+n);g[a>>2]=t*+Q(+n);g[a+4>>2]=u;break}}else{e=(p|0)>2139095039;if((l|0)==0&e){u=n-n;g[a>>2]=+Ao(0.0,m*u);g[a+4>>2]=u;break}d=(l|0)>2139095039;if(d&(p|0)==0)if(!(o&8388607)){g[a>>2]=m;g[a+4>>2]=n;break}else{u=+Ao(0.0,n);g[a>>2]=m;g[a+4>>2]=u;break}if(q&e){u=n-n;g[a>>2]=u;g[a+4>>2]=m*u;break}if(!(d&(o&8388607|0)==0)){u=n-n;g[a>>2]=m*m*u;g[a+4>>2]=(m+m)*u;break}if(e){g[a>>2]=m*m;g[a+4>>2]=m*(n-n);break}else{t=m*+Q(+n);u=+R(+n)*s;g[a>>2]=t;g[a+4>>2]=u;break}}while(0);i=r;return}function No(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function Oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=Po(a,b,f)|0;i=e;return d|0}function Po(a,b,c){a=a|0;b=b|0;c=c|0;return Qo(a,2147483647,b,c)|0}function Qo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+128|0;if((i|0)>=(j|0))ba();g=o+112|0;n=o;h=n;k=9628;l=h+112|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;m=4}else{c[(eo()|0)>>2]=75;d=-1}else{g=b;m=4}if((m|0)==4){m=-2-g|0;m=d>>>0>m>>>0?m:d;c[n+48>>2]=m;b=n+20|0;c[b>>2]=g;c[n+44>>2]=g;d=g+m|0;g=n+16|0;c[g>>2]=d;c[n+28>>2]=d;d=So(n,e,f)|0;if(m){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=o;return d|0}function Ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;fq(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function So(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+224|0;if((i|0)>=(j|0))ba();p=t+120|0;s=t+80|0;r=t;q=t+136|0;f=s;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[p>>2]=c[e>>2];if((To(0,d,p,r,s)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)n=cp(b)|0;else n=0;e=c[b>>2]|0;o=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=q;k=b+28|0;c[k>>2]=q;l=b+20|0;c[l>>2]=q;c[e>>2]=80;m=b+16|0;c[m>>2]=q+80;f=To(b,d,p,r,s)|0;if(h){pb[c[b+36>>2]&15](b,0,0)|0;f=(c[l>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[m>>2]=0;c[k>>2]=0;c[l>>2]=0}}else f=To(b,d,p,r,s)|0;e=c[b>>2]|0;c[b>>2]=e|o;if(n|0)ho(b);e=(e&32|0)==0?f:-1}i=t;return e|0}function To(e,f,g,l,m){e=e|0;f=f|0;g=g|0;l=l|0;m=m|0;var 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.0,z=0,A=0,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,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;ka=i;i=i+624|0;if((i|0)>=(j|0))ba();fa=ka+24|0;ha=ka+16|0;ga=ka+588|0;ca=ka+576|0;ea=ka;X=ka+536|0;ja=ka+8|0;ia=ka+528|0;N=(e|0)!=0;O=X+40|0;W=O;X=X+39|0;Y=ja+4|0;Z=ga;$=0-Z|0;aa=ca+12|0;ca=ca+11|0;da=aa;P=da-Z|0;Q=-2-Z|0;R=da+2|0;S=fa+288|0;T=ga+9|0;U=T;V=ga+8|0;n=0;p=0;o=0;z=f;a:while(1){do if((n|0)>-1)if((p|0)>(2147483647-n|0)){c[(eo()|0)>>2]=75;n=-1;break}else{n=p+n|0;break}while(0);f=a[z>>0]|0;if(!(f<<24>>24)){M=244;break}else p=z;b:while(1){switch(f<<24>>24){case 37:{f=p;M=9;break b}case 0:{f=p;break b}default:{}}L=p+1|0;f=a[L>>0]|0;p=L}c:do if((M|0)==9)while(1){M=0;if((a[f+1>>0]|0)!=37)break c;p=p+1|0;f=f+2|0;if((a[f>>0]|0)==37)M=9;else break}while(0);x=p-z|0;if(N?(c[e>>2]&32|0)==0:0)Uo(z,x,e)|0;if((p|0)!=(z|0)){p=x;z=f;continue}s=f+1|0;p=a[s>>0]|0;q=(p<<24>>24)+-48|0;if(q>>>0<10){L=(a[f+2>>0]|0)==36;s=L?f+3|0:s;p=a[s>>0]|0;v=L?q:-1;o=L?1:o}else v=-1;f=p<<24>>24;d:do if((f&-32|0)==32){q=0;while(1){if(!(1<>24)+-32|q;s=s+1|0;p=a[s>>0]|0;f=p<<24>>24;if((f&-32|0)!=32){t=q;break}}}else t=0;while(0);do if(p<<24>>24==42){p=s+1|0;f=(a[p>>0]|0)+-48|0;if(f>>>0<10?(a[s+2>>0]|0)==36:0){c[m+(f<<2)>>2]=10;o=1;s=s+3|0;f=c[l+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(o|0){n=-1;break a}if(!N){w=t;o=0;s=p;L=0;break}o=(c[g>>2]|0)+(4-1)&~(4-1);f=c[o>>2]|0;c[g>>2]=o+4;o=0;s=p}if((f|0)<0){w=t|8192;L=0-f|0}else{w=t;L=f}}else{q=(p<<24>>24)+-48|0;if(q>>>0<10){f=s;p=0;do{p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0}while(q>>>0<10);if((p|0)<0){n=-1;break a}else{w=t;s=f;L=p}}else{w=t;L=0}}while(0);e:do if((a[s>>0]|0)==46){f=s+1|0;p=a[f>>0]|0;if(p<<24>>24!=42){q=(p<<24>>24)+-48|0;if(q>>>0<10)p=0;else{t=0;break}while(1){p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0;if(q>>>0>=10){t=p;break e}}}f=s+2|0;p=(a[f>>0]|0)+-48|0;if(p>>>0<10?(a[s+3>>0]|0)==36:0){c[m+(p<<2)>>2]=10;t=c[l+((a[f>>0]|0)+-48<<3)>>2]|0;f=s+4|0;break}if(o|0){n=-1;break a}if(N){K=(c[g>>2]|0)+(4-1)&~(4-1);t=c[K>>2]|0;c[g>>2]=K+4}else t=0}else{t=-1;f=s}while(0);u=0;while(1){p=(a[f>>0]|0)+-65|0;if(p>>>0>57){n=-1;break a}q=f+1|0;p=a[42621+(u*58|0)+p>>0]|0;s=p&255;if((s+-1|0)>>>0<8){f=q;u=s}else{K=q;break}}if(!(p<<24>>24)){n=-1;break}q=(v|0)>-1;do if(p<<24>>24==19)if(q){n=-1;break a}else M=52;else{if(q){c[m+(v<<2)>>2]=s;I=l+(v<<3)|0;J=c[I+4>>2]|0;M=ea;c[M>>2]=c[I>>2];c[M+4>>2]=J;M=52;break}if(!N){n=0;break a}Wo(ea,s,g)}while(0);if((M|0)==52?(M=0,!N):0){p=x;z=K;continue}v=a[f>>0]|0;v=(u|0)!=0&(v&15|0)==3?v&-33:v;q=w&-65537;J=(w&8192|0)==0?w:q;f:do switch(v|0){case 110:switch(u|0){case 0:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 1:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 2:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}case 3:{b[c[ea>>2]>>1]=n;p=x;z=K;continue a}case 4:{a[c[ea>>2]>>0]=n;p=x;z=K;continue a}case 6:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 7:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}default:{p=x;z=K;continue a}}case 112:{u=J|8;t=t>>>0>8?t:8;v=120;M=64;break}case 88:case 120:{u=J;M=64;break}case 111:{q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;if((p|0)==0&(q|0)==0)f=O;else{f=O;do{f=f+-1|0;a[f>>0]=p&7|48;p=hq(p|0,q|0,3)|0;q=C}while(!((p|0)==0&(q|0)==0))}if(!(J&8)){p=J;u=0;s=43101;M=77}else{u=W-f|0;p=J;t=(t|0)>(u|0)?t:u+1|0;u=0;s=43101;M=77}break}case 105:case 100:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;if((p|0)<0){f=cq(0,0,f|0,p|0)|0;p=C;q=ea;c[q>>2]=f;c[q+4>>2]=p;q=1;s=43101;M=76;break f}if(!(J&2048)){s=J&1;q=s;s=(s|0)==0?43101:43103;M=76}else{q=1;s=43102;M=76}break}case 117:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;q=0;s=43101;M=76;break}case 99:{a[X>>0]=c[ea>>2];f=X;v=1;x=0;w=43101;p=O;break}case 109:{p=Yo(c[(eo()|0)>>2]|0)|0;M=82;break}case 115:{p=c[ea>>2]|0;p=p|0?p:45003;M=82;break}case 67:{c[ja>>2]=c[ea>>2];c[Y>>2]=0;c[ea>>2]=ja;f=ja;t=-1;M=86;break}case 83:{f=c[ea>>2]|0;if(!t){Zo(e,32,L,0,J);f=0;M=97}else M=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{r=+h[ea>>3];c[ha>>2]=0;h[k>>3]=r;if((c[k+4>>2]|0)>=0)if(!(J&2048)){I=J&1;H=I;I=(I|0)==0?45011:45016}else{H=1;I=45013}else{r=-r;H=1;I=45010}h[k>>3]=r;G=c[k+4>>2]&2146435072;do if(G>>>0<2146435072|(G|0)==2146435072&0<0){y=+ap(r,ha)*2.0;p=y!=0.0;if(p)c[ha>>2]=(c[ha>>2]|0)+-1;E=v|32;if((E|0)==97){w=v&32;z=(w|0)==0?I:I+9|0;x=H|2;f=12-t|0;do if(!(t>>>0>11|(f|0)==0)){r=8.0;do{f=f+-1|0;r=r*16.0}while((f|0)!=0);if((a[z>>0]|0)==45){r=-(r+(-y-r));break}else{r=y+r-r;break}}else r=y;while(0);p=c[ha>>2]|0;f=(p|0)<0?0-p|0:p;f=Xo(f,((f|0)<0)<<31>>31,aa)|0;if((f|0)==(aa|0)){a[ca>>0]=48;f=ca}a[f+-1>>0]=(p>>31&2)+43;u=f+-2|0;a[u>>0]=v+15;s=(t|0)<1;q=(J&8|0)==0;p=ga;while(1){I=~~r;f=p+1|0;a[p>>0]=d[43085+I>>0]|w;r=(r-+(I|0))*16.0;do if((f-Z|0)==1){if(q&(s&r==0.0))break;a[f>>0]=46;f=p+2|0}while(0);if(!(r!=0.0))break;else p=f}q=u;t=(t|0)!=0&(Q+f|0)<(t|0)?R+t-q|0:P-q+f|0;s=t+x|0;Zo(e,32,L,s,J);if(!(c[e>>2]&32))Uo(z,x,e)|0;Zo(e,48,L,s,J^65536);p=f-Z|0;if(!(c[e>>2]&32))Uo(ga,p,e)|0;f=da-q|0;Zo(e,48,t-(p+f)|0,0,0);if(!(c[e>>2]&32))Uo(u,f,e)|0;Zo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s;break}f=(t|0)<0?6:t;if(p){p=(c[ha>>2]|0)+-28|0;c[ha>>2]=p;r=y*268435456.0}else{r=y;p=c[ha>>2]|0}G=(p|0)<0?fa:S;F=G;p=G;do{D=~~r>>>0;c[p>>2]=D;p=p+4|0;r=(r-+(D>>>0))*1.0e9}while(r!=0.0);q=p;p=c[ha>>2]|0;if((p|0)>0){t=G;while(1){u=(p|0)>29?29:p;s=q+-4|0;do if(s>>>0>>0)s=t;else{p=0;do{D=jq(c[s>>2]|0,0,u|0)|0;D=iq(D|0,C|0,p|0,0)|0;p=C;B=rq(D|0,p|0,1e9,0)|0;c[s>>2]=B;p=qq(D|0,p|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=t>>>0);if(!p){s=t;break}s=t+-4|0;c[s>>2]=p}while(0);while(1){if(q>>>0<=s>>>0)break;p=q+-4|0;if(!(c[p>>2]|0))q=p;else break}p=(c[ha>>2]|0)-u|0;c[ha>>2]=p;if((p|0)>0)t=s;else break}}else s=G;if((p|0)<0){z=((f+25|0)/9|0)+1|0;A=(E|0)==102;w=s;while(1){x=0-p|0;x=(x|0)>9?9:x;do if(w>>>0>>0){p=(1<>>x;s=0;u=w;do{D=c[u>>2]|0;c[u>>2]=(D>>>x)+s;s=_(D&p,t)|0;u=u+4|0}while(u>>>0>>0);p=(c[w>>2]|0)==0?w+4|0:w;if(!s){s=p;break}c[q>>2]=s;s=p;q=q+4|0}else s=(c[w>>2]|0)==0?w+4|0:w;while(0);p=A?G:s;q=(q-p>>2|0)>(z|0)?p+(z<<2)|0:q;p=(c[ha>>2]|0)+x|0;c[ha>>2]=p;if((p|0)>=0){A=s;break}else w=s}}else A=s;do if(A>>>0>>0){p=(F-A>>2)*9|0;t=c[A>>2]|0;if(t>>>0<10)break;else s=10;do{s=s*10|0;p=p+1|0}while(t>>>0>=s>>>0)}else p=0;while(0);B=(E|0)==103;D=(f|0)!=0;s=f-((E|0)!=102?p:0)+((D&B)<<31>>31)|0;if((s|0)<(((q-F>>2)*9|0)+-9|0)){u=s+9216|0;s=G+4+(((u|0)/9|0)+-1024<<2)|0;u=((u|0)%9|0)+1|0;if((u|0)<9){t=10;do{t=t*10|0;u=u+1|0}while((u|0)!=9)}else t=10;x=c[s>>2]|0;z=(x>>>0)%(t>>>0)|0;u=(s+4|0)==(q|0);do if(u&(z|0)==0)t=A;else{y=(((x>>>0)/(t>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;w=(t|0)/2|0;if(z>>>0>>0)r=.5;else r=u&(z|0)==(w|0)?1.0:1.5;do if(H){if((a[I>>0]|0)!=45)break;y=-y;r=-r}while(0);u=x-z|0;c[s>>2]=u;if(!(y+r!=y)){t=A;break}E=u+t|0;c[s>>2]=E;if(E>>>0>999999999){p=A;while(1){t=s+-4|0;c[s>>2]=0;if(t>>>0

>>0){p=p+-4|0;c[p>>2]=0}E=(c[t>>2]|0)+1|0;c[t>>2]=E;if(E>>>0>999999999)s=t;else{w=p;s=t;break}}}else w=A;p=(F-w>>2)*9|0;u=c[w>>2]|0;if(u>>>0<10){t=w;break}else t=10;do{t=t*10|0;p=p+1|0}while(u>>>0>=t>>>0);t=w}while(0);E=s+4|0;A=t;q=q>>>0>E>>>0?E:q}x=0-p|0;while(1){if(q>>>0<=A>>>0){z=0;E=q;break}s=q+-4|0;if(!(c[s>>2]|0))q=s;else{z=1;E=q;break}}do if(B){f=(D&1^1)+f|0;if((f|0)>(p|0)&(p|0)>-5){v=v+-1|0;f=f+-1-p|0}else{v=v+-2|0;f=f+-1|0}q=J&8;if(q|0)break;do if(z){q=c[E+-4>>2]|0;if(!q){s=9;break}if(!((q>>>0)%10|0)){t=10;s=0}else{s=0;break}do{t=t*10|0;s=s+1|0}while(!((q>>>0)%(t>>>0)|0|0))}else s=9;while(0);q=((E-F>>2)*9|0)+-9|0;if((v|32|0)==102){q=q-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}else{q=q+p-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}}else q=J&8;while(0);w=f|q;t=(w|0)!=0&1;u=(v|32|0)==102;if(u){p=(p|0)>0?p:0;v=0}else{s=(p|0)<0?x:p;s=Xo(s,((s|0)<0)<<31>>31,aa)|0;if((da-s|0)<2)do{s=s+-1|0;a[s>>0]=48}while((da-s|0)<2);a[s+-1>>0]=(p>>31&2)+43;F=s+-2|0;a[F>>0]=v;p=da-F|0;v=F}x=H+1+f+t+p|0;Zo(e,32,L,x,J);if(!(c[e>>2]&32))Uo(I,H,e)|0;Zo(e,48,L,x,J^65536);do if(u){s=A>>>0>G>>>0?G:A;p=s;do{q=Xo(c[p>>2]|0,0,T)|0;do if((p|0)==(s|0)){if((q|0)!=(T|0))break;a[V>>0]=48;q=V}else{if(q>>>0<=ga>>>0)break;eq(ga|0,48,q-Z|0)|0;do q=q+-1|0;while(q>>>0>ga>>>0)}while(0);if(!(c[e>>2]&32))Uo(q,U-q|0,e)|0;p=p+4|0}while(p>>>0<=G>>>0);do if(w|0){if(c[e>>2]&32|0)break;Uo(45054,1,e)|0}while(0);if((f|0)>0&p>>>0>>0){q=p;while(1){p=Xo(c[q>>2]|0,0,T)|0;if(p>>>0>ga>>>0){eq(ga|0,48,p-Z|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}if(!(c[e>>2]&32))Uo(p,(f|0)>9?9:f,e)|0;q=q+4|0;p=f+-9|0;if(!((f|0)>9&q>>>0>>0)){f=p;break}else f=p}}Zo(e,48,f+9|0,9,0)}else{u=z?E:A+4|0;if((f|0)>-1){t=(q|0)==0;s=A;do{p=Xo(c[s>>2]|0,0,T)|0;if((p|0)==(T|0)){a[V>>0]=48;p=V}do if((s|0)==(A|0)){q=p+1|0;if(!(c[e>>2]&32))Uo(p,1,e)|0;if(t&(f|0)<1){p=q;break}if(c[e>>2]&32|0){p=q;break}Uo(45054,1,e)|0;p=q}else{if(p>>>0<=ga>>>0)break;eq(ga|0,48,p+$|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}while(0);q=U-p|0;if(!(c[e>>2]&32))Uo(p,(f|0)>(q|0)?q:f,e)|0;f=f-q|0;s=s+4|0}while(s>>>0>>0&(f|0)>-1)}Zo(e,48,f+18|0,18,0);if(c[e>>2]&32|0)break;Uo(v,da-v|0,e)|0}while(0);Zo(e,32,L,x,J^8192);f=(x|0)<(L|0)?L:x}else{u=(v&32|0)!=0;t=r!=r|0.0!=0.0;p=t?0:H;s=p+3|0;Zo(e,32,L,s,q);f=c[e>>2]|0;if(!(f&32)){Uo(I,p,e)|0;f=c[e>>2]|0}if(!(f&32))Uo(t?(u?45050:45037):u?45029:45033,3,e)|0;Zo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s}while(0);p=f;z=K;continue a}default:{f=z;q=J;v=t;x=0;w=43101;p=O}}while(0);g:do if((M|0)==64){q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;s=v&32;if(!((p|0)==0&(q|0)==0)){f=O;do{f=f+-1|0;a[f>>0]=d[43085+(p&15)>>0]|s;p=hq(p|0,q|0,4)|0;q=C}while(!((p|0)==0&(q|0)==0));M=ea;if((u&8|0)==0|(c[M>>2]|0)==0&(c[M+4>>2]|0)==0){p=u;u=0;s=43101;M=77}else{p=u;u=2;s=43101+(v>>4)|0;M=77}}else{f=O;p=u;u=0;s=43101;M=77}}else if((M|0)==76){f=Xo(f,p,O)|0;p=J;u=q;M=77}else if((M|0)==82){M=0;J=No(p,0,t)|0;I=(J|0)==0;f=p;v=I?t:J-p|0;x=0;w=43101;p=I?p+t|0:J}else if((M|0)==86){M=0;q=0;p=0;u=f;while(1){s=c[u>>2]|0;if(!s)break;p=_o(ia,s)|0;if((p|0)<0|p>>>0>(t-q|0)>>>0)break;q=p+q|0;if(t>>>0>q>>>0)u=u+4|0;else break}if((p|0)<0){n=-1;break a}Zo(e,32,L,q,J);if(!q){f=0;M=97}else{s=0;while(1){p=c[f>>2]|0;if(!p){f=q;M=97;break g}p=_o(ia,p)|0;s=p+s|0;if((s|0)>(q|0)){f=q;M=97;break g}if(!(c[e>>2]&32))Uo(ia,p,e)|0;if(s>>>0>=q>>>0){f=q;M=97;break}else f=f+4|0}}}while(0);if((M|0)==97){M=0;Zo(e,32,L,f,J^8192);p=(L|0)>(f|0)?L:f;z=K;continue}if((M|0)==77){M=0;q=(t|0)>-1?p&-65537:p;p=ea;p=(c[p>>2]|0)!=0|(c[p+4>>2]|0)!=0;if((t|0)!=0|p){v=(p&1^1)+(W-f)|0;v=(t|0)>(v|0)?t:v;x=u;w=s;p=O}else{f=O;v=0;x=u;w=s;p=O}}u=p-f|0;s=(v|0)<(u|0)?u:v;t=x+s|0;p=(L|0)<(t|0)?t:L;Zo(e,32,p,t,q);if(!(c[e>>2]&32))Uo(w,x,e)|0;Zo(e,48,p,t,q^65536);Zo(e,48,s,u,0);if(!(c[e>>2]&32))Uo(f,u,e)|0;Zo(e,32,p,t,q^8192);z=K}h:do if((M|0)==244)if(!e)if(o){n=1;while(1){o=c[m+(n<<2)>>2]|0;if(!o)break;Wo(l+(n<<3)|0,o,g);n=n+1|0;if((n|0)>=10){n=1;break h}}if((n|0)<10)while(1){if(c[m+(n<<2)>>2]|0){n=-1;break h}n=n+1|0;if((n|0)>=10){n=1;break}}else n=1}else n=0;while(0);i=ka;return n|0}function Uo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Vo(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){i=e+20|0;f=c[i>>2]|0;h=f;if((g-f|0)>>>0>>0){f=pb[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){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((pb[c[e+36>>2]&15](e,b,f)|0)>>>0>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);fq(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Vo(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&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);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{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&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{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&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function Xo(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=rq(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=qq(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function Yo(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[43111+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=43199;e=5;break}}if((e|0)==2)if(!c)b=43199;else{b=43199;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function Zo(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,k=0;k=i;i=i+256|0;if((i|0)>=(j|0))ba();h=k;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;eq(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){Uo(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;Uo(h,f,a)|0}while(0);i=k;return}function _o(a,b){a=a|0;b=b|0;if(!a)a=0;else a=$o(a,b,0)|0;return a|0}function $o(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=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;b=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;b=4;break}else{c[(eo()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function ap(a,b){a=+a;b=b|0;return +(+bp(a,b))}function bp(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=hq(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+bp(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function cp(a){a=a|0;return 0}function dp(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function ep(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=a;a=cb(6,d|0)|0;a=co((a|0)==-4?-115:a)|0;i=b;return a|0}function fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();f=e;g=e+16|0;c[g>>2]=d;h=(c[g>>2]|0)+(4-1)&~(4-1);d=c[h>>2]|0;c[g>>2]=h+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=d;d=co(db(5,f|0)|0)|0;i=e;return d|0}function gp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,t=0.0,u=0.0,v=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,J=0,K=0,L=0,M=0,O=0.0;M=i;i=i+512|0;if((i|0)>=(j|0))ba();I=M;switch(e|0){case 0:{L=24;K=-149;B=4;break}case 1:{L=53;K=-1074;B=4;break}case 2:{L=53;K=-1074;B=4;break}default:g=0.0}a:do if((B|0)==4){F=b+4|0;E=b+100|0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0}while((so(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;J=h;break b}else{e=po(b)|0;J=h;break b}}default:J=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[45041+e>>0]|0))break;do if(e>>>0<7){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=po(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{B=23;break}default:{l=(f|0)!=0;if(l&e>>>0>3)if((e|0)==8)break c;else{B=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[45050+e>>0]|0))break d;do if(e>>>0<2){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=po(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==40)e=1;else{if(!(c[E>>2]|0)){g=r;break a}c[F>>2]=(c[F>>2]|0)+-1;g=r;break a}while(1){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0}else h=po(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!l){c[(eo()|0)>>2]=22;no(b,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{do if((h|0)==48){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|32|0)!=120){if(!(c[E>>2]|0)){e=48;break}c[F>>2]=(c[F>>2]|0)+-1;e=48;break}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=0}else{e=po(b)|0;l=0}e:while(1){switch(e|0){case 46:{B=74;break e}case 48:break;default:{z=0;m=0;y=0;h=0;o=l;p=0;x=0;n=1.0;l=0;g=0.0;break e}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=po(b)|0;l=1;continue}}if((B|0)==74){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48){l=0;h=0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;l=iq(l|0,h|0,-1,-1)|0;h=C}while((e|0)==48);z=0;m=0;y=l;o=1;p=1;x=0;n=1.0;l=0;g=0.0}else{z=0;m=0;y=0;h=0;o=l;p=1;x=0;n=1.0;l=0;g=0.0}}while(1){v=e+-48|0;q=e|32;if(v>>>0>=10){w=(e|0)==46;if(!(w|(q+-97|0)>>>0<6)){q=y;v=z;break}if(w)if(!p){w=m;h=z;v=z;p=1;q=x;k=n}else{q=y;v=z;e=46;break}else B=86}else B=86;if((B|0)==86){B=0;e=(e|0)>57?q+-87|0:v;do if(!((z|0)<0|(z|0)==0&m>>>0<8)){if((z|0)<0|(z|0)==0&m>>>0<14){u=n*.0625;q=x;k=u;g=g+u*+(e|0);break}if((x|0)!=0|(e|0)==0){q=x;k=n}else{q=1;k=n;g=g+n*.5}}else{q=x;k=n;l=e+(l<<4)|0}while(0);m=iq(m|0,z|0,1,0)|0;w=y;v=C;o=1}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;z=v;y=w;e=d[e>>0]|0;x=q;n=k;continue}else{z=v;y=w;e=po(b)|0;x=q;n=k;continue}}if(!o){e=(c[E>>2]|0)==0;if(!e)c[F>>2]=(c[F>>2]|0)+-1;if(f){if(!e?(A=c[F>>2]|0,c[F>>2]=A+-1,p|0):0)c[F>>2]=A+-2}else no(b,0);g=+(J|0)*0.0;break a}o=(p|0)==0;p=o?m:q;o=o?v:h;if((v|0)<0|(v|0)==0&m>>>0<8){h=v;do{l=l<<4;m=iq(m|0,h|0,1,0)|0;h=C}while((h|0)<0|(h|0)==0&m>>>0<8)}if((e|32|0)==112){h=hp(b,f)|0;e=C;if((h|0)==0&(e|0)==-2147483648){if(!f){no(b,0);g=0.0;break a}if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}}}else if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}I=jq(p|0,o|0,2)|0;I=iq(I|0,C|0,-32,-1)|0;e=iq(I|0,C|0,h|0,e|0)|0;h=C;if(!l){g=+(J|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-K|0)>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}I=K+-106|0;H=((I|0)<0)<<31>>31;if((h|0)<(H|0)|(h|0)==(H|0)&e>>>0>>0){c[(eo()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((l|0)>-1){do{H=!(g>=.5);I=H&1|l<<1;l=I^1;g=g+(H?g:g+-1.0);e=iq(e|0,h|0,-1,-1)|0;h=C}while((I|0)>-1);m=e;n=g}else{m=e;n=g}e=cq(32,0,K|0,((K|0)<0)<<31>>31|0)|0;e=iq(m|0,h|0,e|0,C|0)|0;K=C;if(0>(K|0)|0==(K|0)&L>>>0>e>>>0)if((e|0)<0){e=0;B=127}else B=125;else{e=L;B=125}if((B|0)==125)if((e|0)<53)B=127;else{h=e;k=+(J|0);g=0.0}if((B|0)==127){g=+(J|0);h=e;k=g;g=+jp(+ip(1.0,84-e|0),g)}L=(l&1|0)==0&(n!=0.0&(h|0)<32);g=k*(L?0.0:n)+(g+k*+(((L&1)+l|0)>>>0))-g;if(!(g!=0.0))c[(eo()|0)>>2]=34;g=+kp(g,m);break a}else e=h;while(0);G=K+L|0;H=0-G|0;l=0;f:while(1){switch(e|0){case 46:{B=138;break f}case 48:break;default:{h=0;q=0;p=0;break f}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=po(b)|0;l=1;continue}}if((B|0)==138){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48){h=0;e=0;while(1){h=iq(h|0,e|0,-1,-1)|0;l=C;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48)e=l;else{q=l;l=1;p=1;break}}}else{h=0;q=0;p=1}}c[I>>2]=0;o=e+-48|0;m=(e|0)==46;g:do if(m|o>>>0<10){D=I+496|0;z=0;w=0;x=m;B=q;v=l;A=p;l=0;m=0;p=0;h:while(1){do if(x)if(!A){h=z;q=w;A=1}else{q=B;e=z;o=w;break h}else{x=iq(z|0,w|0,1,0)|0;w=C;y=(e|0)!=48;if((m|0)>=125){if(!y){q=B;z=x;break}c[D>>2]=c[D>>2]|1;q=B;z=x;break}q=I+(m<<2)|0;if(l)o=e+-48+((c[q>>2]|0)*10|0)|0;c[q>>2]=o;l=l+1|0;o=(l|0)==9;q=B;z=x;v=1;l=o?0:l;m=(o&1)+m|0;p=y?x:p}while(0);e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;o=e+-48|0;x=(e|0)==46;if(!(x|o>>>0<10)){o=A;B=161;break g}else B=q}v=(v|0)!=0;B=169}else{z=0;w=0;v=l;o=p;l=0;m=0;p=0;B=161}while(0);do if((B|0)==161){D=(o|0)==0;h=D?z:h;q=D?w:q;v=(v|0)!=0;if(!((e|32|0)==101&v))if((e|0)>-1){e=z;o=w;B=169;break}else{e=z;o=w;B=171;break}o=hp(b,f)|0;e=C;if((o|0)==0&(e|0)==-2147483648){if(!f){no(b,0);g=0.0;break}if(!(c[E>>2]|0)){o=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;o=0;e=0}}h=iq(o|0,e|0,h|0,q|0)|0;v=z;q=C;o=w;B=173}while(0);if((B|0)==169)if(c[E>>2]|0){c[F>>2]=(c[F>>2]|0)+-1;if(v){v=e;B=173}else B=172}else B=171;if((B|0)==171)if(v){v=e;B=173}else B=172;do if((B|0)==172){c[(eo()|0)>>2]=22;no(b,0);g=0.0}else if((B|0)==173){e=c[I>>2]|0;if(!e){g=+(J|0)*0.0;break}if(((o|0)<0|(o|0)==0&v>>>0<10)&((h|0)==(v|0)&(q|0)==(o|0))?L>>>0>30|(e>>>L|0)==0:0){g=+(J|0)*+(e>>>0);break}b=(K|0)/-2|0;F=((b|0)<0)<<31>>31;if((q|0)>(F|0)|(q|0)==(F|0)&h>>>0>b>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=K+-106|0;F=((b|0)<0)<<31>>31;if((q|0)<(F|0)|(q|0)==(F|0)&h>>>0>>0){c[(eo()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(l){if((l|0)<9){o=I+(m<<2)|0;e=c[o>>2]|0;do{e=e*10|0;l=l+1|0}while((l|0)!=9);c[o>>2]=e}m=m+1|0}if((p|0)<9?(p|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(J|0)*+((c[I>>2]|0)>>>0);break}if((h|0)<9){g=+(J|0)*+((c[I>>2]|0)>>>0)/+(c[9740+(8-h<<2)>>2]|0);break}b=L+27+(_(h,-3)|0)|0;e=c[I>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(J|0)*+(e>>>0)*+(c[9740+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){l=0;e=0}else{v=(h|0)>-1?e:e+9|0;o=c[9740+(8-v<<2)>>2]|0;if(m){p=1e9/(o|0)|0;l=0;e=0;q=0;do{E=I+(q<<2)|0;F=c[E>>2]|0;b=((F>>>0)/(o>>>0)|0)+e|0;c[E>>2]=b;e=_((F>>>0)%(o>>>0)|0,p)|0;b=(q|0)==(l|0)&(b|0)==0;q=q+1|0;h=b?h+-9|0:h;l=b?q&127:l}while((q|0)!=(m|0));if(e){c[I+(m<<2)>>2]=e;m=m+1|0}}else{l=0;m=0}e=0;h=9-v+h|0}i:while(1){w=(h|0)<18;x=(h|0)==18;y=I+(l<<2)|0;do{if(!w){if(!x){z=m;break i}if((c[y>>2]|0)>>>0>=9007199){h=18;z=m;break i}}o=0;p=m+127|0;while(1){v=p&127;q=I+(v<<2)|0;p=jq(c[q>>2]|0,0,29)|0;p=iq(p|0,C|0,o|0,0)|0;o=C;if(o>>>0>0|(o|0)==0&p>>>0>1e9){b=qq(p|0,o|0,1e9,0)|0;p=rq(p|0,o|0,1e9,0)|0;o=b}else o=0;c[q>>2]=p;b=(v|0)==(l|0);m=(v|0)!=(m+127&127|0)|b?m:(p|0)==0?v:m;if(b)break;else p=v+-1|0}e=e+-29|0}while((o|0)==0);l=l+127&127;if((l|0)==(m|0)){b=m+127&127;m=I+((m+126&127)<<2)|0;c[m>>2]=c[m>>2]|c[I+(b<<2)>>2];m=b}c[I+(l<<2)>>2]=o;h=h+9|0}j:while(1){m=z+1&127;y=I+((z+127&127)<<2)|0;while(1){w=(h|0)==18;x=(h|0)>27?9:1;v=w^1;while(1){p=l&127;q=(p|0)==(z|0);do if(!q){o=c[I+(p<<2)>>2]|0;if(o>>>0<9007199){B=219;break}if(o>>>0>9007199)break;o=l+1&127;if((o|0)==(z|0)){B=219;break}o=c[I+(o<<2)>>2]|0;if(o>>>0<254740991){B=219;break}if(!(o>>>0>254740991|v)){h=p;m=z;break j}}else B=219;while(0);if((B|0)==219?(B=0,w):0){B=220;break j}e=e+x|0;if((l|0)==(z|0))l=z;else break}v=(1<>>x;p=l;o=0;q=l;while(1){F=I+(q<<2)|0;b=c[F>>2]|0;l=(b>>>x)+o|0;c[F>>2]=l;o=_(b&v,w)|0;l=(q|0)==(p|0)&(l|0)==0;q=q+1&127;h=l?h+-9|0:h;l=l?q:p;if((q|0)==(z|0))break;else p=l}if(!o)continue;if((m|0)!=(l|0))break;c[y>>2]=c[y>>2]|1}c[I+(z<<2)>>2]=o;z=m}if((B|0)==220)if(q){c[I+(m+-1<<2)>>2]=0;h=z}else{h=p;m=z}g=+((c[I+(h<<2)>>2]|0)>>>0);h=l+1&127;if((h|0)==(m|0)){m=l+2&127;c[I+(m+-1<<2)>>2]=0}u=+(J|0);k=u*(g*1.0e9+ +((c[I+(h<<2)>>2]|0)>>>0));w=e+53|0;q=w-K|0;v=(q|0)<(L|0);h=v&1;p=v?((q|0)<0?0:q):L;if((p|0)<53){O=+jp(+ip(1.0,105-p|0),k);n=+lp(k,+ip(1.0,53-p|0));t=O;g=n;n=O+(k-n)}else{t=0.0;g=0.0;n=k}o=l+2&127;do if((o|0)==(m|0))k=g;else{o=c[I+(o<<2)>>2]|0;do if(o>>>0>=5e8){if(o>>>0>5e8){g=u*.75+g;break}if((l+3&127|0)==(m|0)){g=u*.5+g;break}else{g=u*.75+g;break}}else{if((o|0)==0?(l+3&127|0)==(m|0):0)break;g=u*.25+g}while(0);if((53-p|0)<=1){k=g;break}if(+lp(g,1.0)!=0.0){k=g;break}k=g+1.0}while(0);g=n+k-t;do if((w&2147483647|0)>(-2-G|0)){if(+N(+g)>=9007199254740992.0){h=v&(p|0)==(q|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(H|0)?!(k!=0.0&(h|0)!=0):0)break;c[(eo()|0)>>2]=34}while(0);g=+kp(g,e)}while(0);break a}default:{if(c[E>>2]|0)c[F>>2]=(c[F>>2]|0)+-1;c[(eo()|0)>>2]=22;no(b,0);g=0.0;break a}}}}while(0);if((B|0)==23){h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[F>>2]=(c[F>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(J|0)*s}while(0);i=M;return +g}function hp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=pq(f|0,b|0,10,0)|0;f=C;e=iq(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=iq(e|0,C|0,b|0,f|0)|0;b=C;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=cq(0,0,g|0,b|0)|0;f=a?C:b;e=a?e:g}C=f;return e|0}function ip(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=jq(d+1023|0,0,52)|0;b=C;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function jp(a,b){a=+a;b=+b;return +(+yo(a,b))}function kp(a,b){a=+a;b=b|0;return +(+ip(a,b))}function lp(a,b){a=+a;b=+b;return +(+mp(a,b))}function mp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=hq(d|0,m|0,52)|0;e=e&2047;j=hq(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=jq(n|0,o|0,1)|0;l=C;a:do if(!((i|0)==0&(l|0)==0)?(r=+N(+b),h[k>>3]=r,g=c[k+4>>2]|0,!(g>>>0>2146435072|(g|0)==2146435072&(c[k>>2]|0)>>>0>0|(e|0)==2047)):0){f=jq(d|0,m|0,1)|0;g=C;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=jq(d|0,m|0,12)|0;f=C;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=jq(g|0,f|0,1)|0;f=C}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=jq(d|0,m|0,1-e|0)|0;f=C}else f=m&1048575|1048576;if(!j){g=jq(n|0,o|0,12)|0;i=C;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=jq(g|0,i|0,1)|0;i=C}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=jq(n|0,o|0,1-j|0)|0;m=C}else m=o&1048575|1048576;l=cq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=jq(d|0,f|0,1)|0;f=C;e=e+-1|0;l=cq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=jq(d|0,f|0,1)|0;f=C;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=iq(d|0,f|0,0,-1048576)|0;d=C;e=jq(e|0,0,52)|0;d=d|C;e=o|e}else{e=hq(d|0,f|0,1-e|0)|0;d=C}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function np(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function op(){return 9772}function pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();g=f;c[g>>2]=e;e=Qo(a,b,d,g)|0;i=f;return e|0}function qp(a){a=+a;var b=0,d=0,e=0.0;d=(g[k>>2]=a,c[k>>2]|0)>>>31;e=+N(+a);b=(g[k>>2]=e,c[k>>2]|0);do if(b>>>0<=2139095039)if(b>>>0<1062731776)if(b>>>0<830472192){a=(a*8.0+a*1.0270333290100098)*.125;break}else{e=a*a;a=(e*(e*(e*(-.005770270247012377-e*2.3763017452438362e-05)+-.028481749817728996)+-.32504209876060486)+.12837916612625122)/(e*(e*(e*(e*(1.324947370449081e-04-e*3.9602282413397916e-06)+5.0813062116503716e-03)+.06502225250005722)+.3979172110557556)+1.0)*a+a;break}else{if(b>>>0<1086324736)a=1.0-+rp(b,a);else a=1.0;a=d|0?-a:a;break}else a=1.0/a+ +(1-(d<<1)|0);while(0);return +a}function rp(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0.0;e=+N(+b);if(a>>>0<1067450368){b=e+-1.0;b=.15493708848953247-(b*(b*(b*(b*(b*(.03547830507159233-b*.002166375517845154)+-.11089469492435455)+.31834661960601807)+-.3722078800201416)+.41485610604286194)+-2.3621185682713985e-03)/(b*(b*(b*(b*(b*(b*.011984500102698803+.01363708358258009)+.12617121636867523)+.07182865589857101)+.5403979420661926)+.10642088204622269)+1.0)}else{f=1.0/(e*e);if(a>>>0<1077336941){b=f*(f*(f*(f*(f*(f*(6.570249557495117-f*.06042441353201866)+108.63500213623047)+429.0081481933594)+645.3872680664062)+434.5658874511719)+137.6577606201172)+19.65127182006836;d=f*(f*(f*(f*(f*(f*(-81.28743743896484-f*9.814329147338867)+-184.60508728027344)+-162.39666748046875)+-62.37533187866211)+-10.558626174926758)+-.6938585638999939)+-.009864944033324718}else{b=f*(f*(f*(f*(f*(474.5285339355469-f*22.44095230102539)+2553.05029296875)+3199.858154296875)+1536.7296142578125)+325.7925109863281)+30.33806037902832;d=f*(f*(f*(f*(f*(-1025.0950927734375-f*483.5191955566406)+-637.5664672851562)+-160.63638305664062)+-17.75795555114746)+-.7992832660675049)+-.009864943102002144}h=(c[k>>2]=(g[k>>2]=e,c[k>>2]|0)&-8192,+g[k>>2]);b=+X(+(-.5625-h*h))*+X(+((h-e)*(e+h)+d/(f*b+1.0)))/e}return +b}function sp(a){a=+a;var b=0,d=0,e=0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=hq(b|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{b=jq(b|0,d|0,12)|0;d=C;if(!((b|0)==0&(d|0)==0))if((d|0)>-1|(d|0)==-1&b>>>0>4294967295){e=b;b=-1023;do{b=b+-1|0;e=jq(e|0,d|0,1)|0;d=C}while((d|0)>-1|(d|0)==-1&e>>>0>4294967295)}else b=-1023;else b=-2147483648;break}case 2047:{b=(b|0)!=0|(d&1048575|0)!=0?-2147483648:2147483647;break}default:b=e+-1023|0}return b|0}function tp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0.0,i=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;g=+N(+a);h[k>>3]=g;f=c[k+4>>2]|0;do if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){g=+N(+b);h[k>>3]=g;f=c[k+4>>2]|0;if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){h[k>>3]=b;i=c[k>>2]|0;f=c[k+4>>2]|0;d=hq(d|0,e|0,63)|0;f=hq(i|0,f|0,63)|0;if((d|0)==(f|0)){a=a>2]=a,c[k>>2]|0);e=+N(+a);do if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040){e=+N(+b);if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040)if(((g[k>>2]=b,c[k>>2]|0)^d|0)<0){a=(d|0)<0?b:a;break}else{a=a>2]=a,c[k>>2]|0);d=b>>>23&255;switch(d|0){case 0:{d=b<<9;if(d)if((d|0)>-1){b=-127;do{b=b+-1|0;d=d<<1}while((d|0)>-1)}else b=-127;else b=-2147483648;break}case 255:{b=b&8388607|0?-2147483648:2147483647;break}default:b=d+-127|0}return b|0}function wp(a,b){a=+a;b=b|0;var d=0;if((b|0)>127){a=a*1701411834604692317316873.0e14;d=b+-127|0;if((d|0)>127){d=b+-254|0;d=(d|0)>127?127:d;a=a*1701411834604692317316873.0e14}}else if((b|0)<-126){a=a*1.1754943508222875e-38;d=b+126|0;if((d|0)<-126){d=b+252|0;d=(d|0)<-126?-126:d;a=a*1.1754943508222875e-38}}else d=b;return +(a*(c[k>>2]=(d<<23)+1065353216,+g[k>>2]))}function xp(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){g=+N(+a);h[k>>3]=g;if((c[k>>2]|0)==0&(c[k+4>>2]|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;j=+h[k>>3]+-1.0;i=j*(j*.5);l=j/(j+2.0);m=l*l;a=m*m;h[k>>3]=j-i;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function yp(a){a=+a;var b=0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0,l=0.0;b=(g[k>>2]=a,c[k>>2]|0);d=(b|0)<0;do if(b>>>0<8388608|d){f=+N(+a);if(!((g[k>>2]=f,c[k>>2]|0)|0)){a=-1.0/(a*a);break}if(d){a=(a-a)/0.0;break}else{b=(g[k>>2]=a*33554432.0,c[k>>2]|0);d=-152;e=9;break}}else if(b>>>0<=2139095039)if((b|0)==1065353216)a=0.0;else{d=-127;e=9}while(0);if((e|0)==9){e=b+4913933|0;l=(c[k>>2]=(e&8388607)+1060439283,+g[k>>2])+-1.0;j=l/(l+2.0);h=j*j;a=h*h;i=l*(l*.5);f=(c[k>>2]=(g[k>>2]=l-i,c[k>>2]|0)&-4096,+g[k>>2]);a=l-f-i+j*(i+(h*(a*.2849878668785095+.6666666269302368)+a*(a*.24279078841209412+.40000972151756287)));h=+(d+(e>>>23)|0);a=h*.3010292053222656+(f*.434326171875+(a*.434326171875+(h*7.903415166765626e-07-(f+a)*3.168997136526741e-05)))}return +a}function zp(a){a=+a;var b=0;h[k>>3]=a;b=c[k+4>>2]&2146435072;do if(b>>>0<2146435072|(b|0)==2146435072&0<0)if(a==0.0){a=-1.0/(a*a);break}else{a=+(sp(a)|0);break}else a=a*a;while(0);return +a}function Ap(a){a=+a;do if(((g[k>>2]=a,c[k>>2]|0)&2139095040)>>>0<2139095040)if(a==0.0){a=-1.0/(a*a);break}else{a=+(vp(a)|0);break}else a=a*a;while(0);return +a}function Bp(b,c){b=b|0;c=c|0;b=Cp(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Cp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(np(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=_(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function Dp(){var a=0,b=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();b=Fa(20,a|0)|0;i=a;return b|0}function Ep(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g+16|0;e=g;if(No(45056,a[d>>0]|0,4)|0){h=Fp(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=co(db(5,e|0)|0)|0;if((e|0)>=0){b=Gp(e,d)|0;if(!b){c[f>>2]=e;cb(6,f|0)|0;b=0}}else b=0}else{c[(eo()|0)>>2]=22;b=0}i=g;return b|0}function Fp(b){b=b|0;var c=0,d=0,e=0;d=(Bp(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Bp(b,120)|0)==0;d=e?d:d|128;b=(Bp(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function Gp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+112|0;if((i|0)>=(j|0))ba();o=p+40|0;m=p+24|0;l=p+16|0;g=p;n=p+52|0;f=a[d>>0]|0;if(No(45056,f<<24>>24,4)|0){e=Xp(1144)|0;if(!e)e=0;else{h=e;k=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(k|0));if(!(Bp(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(Bp(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ya(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[l>>2]=b;c[l+4>>2]=3;f=ya(221,l|0)|0;if(!(f&1024)){c[m>>2]=b;c[m+4>>2]=4;c[m+8>>2]=f|1024;ya(221,m|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[o>>2]=b,c[o+4>>2]=21505,c[o+8>>2]=n,(Xa(54,o|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=9;c[e+36>>2]=1;c[e+40>>2]=2;c[e+12>>2]=2;if(!(c[11307]|0))c[e+76>>2]=-1;ab(45252);f=c[11312]|0;c[e+56>>2]=f;if(f|0)c[f+52>>2]=e;c[11312]=e;Ya(45252)}}else{c[(eo()|0)>>2]=22;e=0}i=p;return e|0}function Hp(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){ab(45252);d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[11312]|0)==(a|0))c[11312]=b;Ya(45252)}b=Ip(a)|0;b=rb[c[a+12>>2]&7](a)|0|b;d=c[a+92>>2]|0;if(d|0)Yp(d);if(!e)Yp(a);return b|0}function Ip(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Jp(a)|0;break}d=(cp(a)|0)==0;b=Jp(a)|0;if(!d)ho(a)}else{if(!(c[2406]|0))b=0;else b=Ip(c[2406]|0)|0;ab(45252);a=c[11312]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=cp(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Jp(a)|0|b;if(d|0)ho(a);a=c[a+56>>2]|0}while((a|0)!=0);Ya(45252)}while(0);return b|0}function Jp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(pb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>>0)pb[c[a+40>>2]&15](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Kp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=So(a,b,f)|0;i=e;return d|0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;Mp(a,b,c)|0;return a|0}function Mp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009|0)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);eq(b|0,0,e|0)|0;return b|0}function Np(){var a=0,b=0,d=0;b=45064;b=pq(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=iq(b|0,C|0,1,0)|0;a=C;d=45064;c[d>>2]=b;c[d+4>>2]=a;a=hq(b|0,a|0,33)|0;return a|0}function Op(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n;l=e&255;a[m>>0]=l;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(Vo(b)|0)){h=c[g>>2]|0;k=4}else f=-1;else k=4;do if((k|0)==4){g=b+20|0;k=c[g>>2]|0;if(k>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=k+1;a[k>>0]=l;break}if((pb[c[b+36>>2]&15](b,m,1)|0)==1)f=d[m>>0]|0;else f=-1}while(0);i=n;return f|0}function Pp(a,b){a=a|0;b=b|0;return (Qp(a,np(a)|0,1,b)|0)+-1|0}function Qp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(cp(e)|0)==0;a=Uo(a,f,e)|0;if(!g)ho(e)}else a=Uo(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d;c[e>>2]=b;b=So(c[2377]|0,a,e)|0;i=d;return b|0}function Sp(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[2377]|0;if((c[f+76>>2]|0)>-1)g=cp(f)|0;else g=0;do if((Pp(b,f)|0)<0)d=1;else{if((a[f+75>>0]|0)!=10?(d=f+20|0,e=c[d>>2]|0,e>>>0<(c[f+16>>2]|0)>>>0):0){c[d>>2]=e+1;a[e>>0]=10;d=0;break}d=(Op(f,10)|0)<0}while(0);if(g|0)ho(f);return d<<31>>31|0}function Tp(a,b){a=a|0;b=b|0;return +(+Up(a,b,1))}function Up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,k=0;k=i;i=i+112|0;if((i|0)>=(j|0))ba();h=k;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;no(h,0);e=+gp(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=d|0?a+d|0:a;i=k;return +e}function Vp(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=(b|0)/(d|0)|0;c[a+4>>2]=(b|0)%(d|0)|0;return}function Wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=co(_a(3,f|0)|0)|0;i=e;return a|0} -function Xp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[11318]|0;b=j>>>a;if(b&3|0){b=(b&1^1)+a|0;d=45312+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[11322]|0)>>>0)Ca();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else Ca()}else c[11318]=j&~(1<>2]=L|3;L=f+L+4|0;c[L>>2]=c[L>>2]|1;L=g;return L|0}h=c[11320]|0;if(o>>>0>h>>>0){if(b|0){d=2<>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=45312+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[11322]|0)>>>0)Ca();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[11320]|0;break}else Ca()}else{c[11318]=j&~(1<>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k|0){f=c[11323]|0;b=k>>>3;d=45312+(b<<1<<2)|0;a=c[11318]|0;b=1<>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{l=a;m=b}}else{c[11318]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[11320]=h;c[11323]=e;L=i;return L|0}a=c[11319]|0;if(a){d=(a&0-a)+-1|0;K=d>>>12&16;d=d>>>K;J=d>>>5&8;d=d>>>J;L=d>>>2&4;d=d>>>L;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=c[45576+((J|K|L|b|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;b=e;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a){j=e;break}}b=(c[a+4>>2]&-8)-o|0;L=b>>>0>>0;d=L?b:d;b=a;e=L?a:e}g=c[11322]|0;if(j>>>0>>0)Ca();i=j+o|0;if(j>>>0>=i>>>0)Ca();h=c[j+24>>2]|0;e=c[j+12>>2]|0;do if((e|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;b=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;b=e}}if(b>>>0>>0)Ca();else{c[b>>2]=0;n=a;break}}else{f=c[j+8>>2]|0;if(f>>>0>>0)Ca();a=f+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=e+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=e;c[b>>2]=f;n=e;break}else Ca()}while(0);do if(h|0){a=c[j+28>>2]|0;b=45576+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();a=h+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[h+20>>2]=n;if(!n)break}b=c[11322]|0;if(n>>>0>>0)Ca();c[n+24>>2]=h;a=c[j+16>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(d>>>0<16){L=d+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}else{c[j+4>>2]=o|3;c[i+4>>2]=d|1;c[i+d>>2]=d;a=c[11320]|0;if(a|0){f=c[11323]|0;b=a>>>3;e=45312+(b<<1<<2)|0;a=c[11318]|0;b=1<>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{p=a;q=b}}else{c[11318]=a|b;p=e+8|0;q=e}c[p>>2]=f;c[q+12>>2]=f;c[f+8>>2]=q;c[f+12>>2]=e}c[11320]=d;c[11323]=i}L=j+8|0;return L|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;j=c[11319]|0;if(j){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)i=31;else{q=(a+1048320|0)>>>16&8;E=a<>>16&4;E=E<>>16&2;i=14-(p|q|i)+(E<>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;b=c[45576+(i<<2)>>2]|0;a:do if(!b){a=0;b=0;E=86}else{f=d;a=0;g=o<<((i|0)==31?0:25-(i>>>1)|0);h=b;b=0;while(1){e=c[h+4>>2]&-8;d=e-o|0;if(d>>>0>>0)if((e|0)==(o|0)){a=h;b=h;E=90;break a}else b=h;else d=f;e=c[h+20>>2]|0;h=c[h+16+(g>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(h|0)?a:e;e=(h|0)==0;if(e){E=86;break}else{f=d;g=g<<(e&1^1)}}}while(0);if((E|0)==86){if((a|0)==0&(b|0)==0){a=2<>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[45576+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else E=90}if((E|0)==90)while(1){E=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e|0){a=e;E=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else E=90}if((j|0)!=0?i>>>0<((c[11320]|0)-o|0)>>>0:0){f=c[11322]|0;if(j>>>0>>0)Ca();h=j+o|0;if(j>>>0>=h>>>0)Ca();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)Ca();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else Ca()}while(0);do if(g|0){a=c[j+28>>2]|0;b=45576+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[11322]|0;if(s>>>0>>0)Ca();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{u=a;v=b}}else{c[11318]=b|a;u=d+8|0;v=d}c[u>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=45576+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[11319]|0;b=1<>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}f=i<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(i|0)){d=a;E=148;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=145;break}else{f=f<<1;a=d}}if((E|0)==145)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=h;c[h+24>>2]=a;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((E|0)==148){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;c[h+24>>2]=0;break}else Ca()}}else{L=i+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}while(0);L=j+8|0;return L|0}}}else o=-1;while(0);d=c[11320]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[11323]|0;if(a>>>0>15){L=b+o|0;c[11323]=L;c[11320]=a;c[L+4>>2]=a|1;c[L+a>>2]=a;c[b+4>>2]=o|3}else{c[11320]=0;c[11323]=0;c[b+4>>2]=d|3;L=b+d+4|0;c[L>>2]=c[L>>2]|1}L=b+8|0;return L|0}a=c[11321]|0;if(a>>>0>o>>>0){J=a-o|0;c[11321]=J;L=c[11324]|0;K=L+o|0;c[11324]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}do if(!(c[11436]|0)){a=$a(30)|0;if(!(a+-1&a)){c[11438]=a;c[11437]=a;c[11439]=-1;c[11440]=-1;c[11441]=0;c[11429]=0;c[11436]=(fb(0)|0)&-16^1431655768;break}else Ca()}while(0);h=o+48|0;g=c[11438]|0;i=o+47|0;f=g+i|0;g=0-g|0;j=f&g;if(j>>>0<=o>>>0){L=0;return L|0}a=c[11428]|0;if(a|0?(u=c[11426]|0,v=u+j|0,v>>>0<=u>>>0|v>>>0>a>>>0):0){L=0;return L|0}b:do if(!(c[11429]&4)){a=c[11324]|0;c:do if(a){d=45720;while(1){b=c[d>>2]|0;if(b>>>0<=a>>>0?(r=d+4|0,(b+(c[r>>2]|0)|0)>>>0>a>>>0):0){e=d;d=r;break}d=c[d+8>>2]|0;if(!d){E=173;break c}}a=f-(c[11321]|0)&g;if(a>>>0<2147483647){b=La(a|0)|0;if((b|0)==((c[e>>2]|0)+(c[d>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}else E=183}}else E=173;while(0);do if((E|0)==173?(t=La(0)|0,(t|0)!=(-1|0)):0){a=t;b=c[11437]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[11426]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[11428]|0;if(v|0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=La(a|0)|0;if((b|0)==(t|0)){h=t;f=a;E=193;break b}else E=183}}while(0);d:do if((E|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[11438]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((La(w|0)|0)==(-1|0)){La(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}while(0);c[11429]=c[11429]|4;E=190}else E=190;while(0);if((((E|0)==190?j>>>0<2147483647:0)?(x=La(j|0)|0,y=La(0)|0,x>>>0>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-x|0,z>>>0>(o+40|0)>>>0):0){h=x;f=z;E=193}if((E|0)==193){a=(c[11426]|0)+f|0;c[11426]=a;if(a>>>0>(c[11427]|0)>>>0)c[11427]=a;i=c[11324]|0;do if(i){e=45720;do{a=c[e>>2]|0;b=e+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){A=a;B=b;C=d;D=e;E=203;break}e=c[e+8>>2]|0}while((e|0)!=0);if(((E|0)==203?(c[D+12>>2]&8|0)==0:0)?i>>>0>>0&i>>>0>=A>>>0:0){c[B>>2]=C+f;L=i+8|0;L=(L&7|0)==0?0:0-L&7;K=i+L|0;L=f-L+(c[11321]|0)|0;c[11324]=K;c[11321]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[11325]=c[11440];break}a=c[11322]|0;if(h>>>0>>0){c[11322]=h;j=h}else j=a;d=h+f|0;a=45720;while(1){if((c[a>>2]|0)==(d|0)){b=a;E=211;break}a=c[a+8>>2]|0;if(!a){b=45720;break}}if((E|0)==211)if(!(c[a+12>>2]&8)){c[b>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+f;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+8|0;a=d+((a&7|0)==0?0:0-a&7)|0;k=l+o|0;g=a-l-o|0;c[l+4>>2]=o|3;do if((a|0)!=(i|0)){if((a|0)==(c[11323]|0)){L=(c[11320]|0)+g|0;c[11320]=L;c[11323]=k;c[k+4>>2]=L|1;c[k+L>>2]=L;break}b=c[a+4>>2]|0;if((b&3|0)==1){i=b&-8;f=b>>>3;e:do if(b>>>0>=256){h=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){d=a+16|0;e=d+4|0;b=c[e>>2]|0;if(!b){b=c[d>>2]|0;if(!b){J=0;break}}else d=e;while(1){e=b+20|0;f=c[e>>2]|0;if(f|0){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0>>0)Ca();else{c[d>>2]=0;J=b;break}}else{f=c[a+8>>2]|0;if(f>>>0>>0)Ca();b=f+12|0;if((c[b>>2]|0)!=(a|0))Ca();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;J=e;break}else Ca()}while(0);if(!h)break;b=c[a+28>>2]|0;d=45576+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(h>>>0<(c[11322]|0)>>>0)Ca();b=h+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=J;else c[h+20>>2]=J;if(!J)break e}else{c[d>>2]=J;if(J|0)break;c[11319]=c[11319]&~(1<>>0>>0)Ca();c[J+24>>2]=h;b=a+16|0;d=c[b>>2]|0;do if(d|0)if(d>>>0>>0)Ca();else{c[J+16>>2]=d;c[d+24>>2]=J;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=45312+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0>>0)Ca();if((c[d+12>>2]|0)==(a|0))break;Ca()}while(0);if((e|0)==(d|0)){c[11318]=c[11318]&~(1<>>0>>0)Ca();b=e+8|0;if((c[b>>2]|0)==(a|0)){G=b;break}Ca()}while(0);c[d+12>>2]=e;c[G>>2]=d}while(0);a=a+i|0;g=i+g|0}a=a+4|0;c[a>>2]=c[a>>2]&-2;c[k+4>>2]=g|1;c[k+g>>2]=g;a=g>>>3;if(g>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<>2]|0;if(b>>>0>=(c[11322]|0)>>>0){K=a;L=b;break}Ca()}while(0);c[K>>2]=k;c[L+12>>2]=k;c[k+8>>2]=L;c[k+12>>2]=d;break}a=g>>>8;do if(!a)d=0;else{if(g>>>0>16777215){d=31;break}K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=g>>>(d+7|0)&1|d<<1}while(0);e=45576+(d<<2)|0;c[k+28>>2]=d;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[11319]|0;b=1<>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;E=281;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=278;break}else{f=f<<1;a=d}}if((E|0)==278)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((E|0)==281){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;c[k+24>>2]=0;break}else Ca()}}else{L=(c[11321]|0)+g|0;c[11321]=L;c[11324]=k;c[k+4>>2]=L|1}while(0);L=l+8|0;return L|0}else b=45720;while(1){a=c[b>>2]|0;if(a>>>0<=i>>>0?(F=a+(c[b+4>>2]|0)|0,F>>>0>i>>>0):0){b=F;break}b=c[b+8>>2]|0}g=b+-47|0;d=g+8|0;d=g+((d&7|0)==0?0:0-d&7)|0;g=i+16|0;d=d>>>0>>0?i:d;a=d+8|0;e=h+8|0;e=(e&7|0)==0?0:0-e&7;L=h+e|0;e=f+-40-e|0;c[11324]=L;c[11321]=e;c[L+4>>2]=e|1;c[L+e+4>>2]=40;c[11325]=c[11440];e=d+4|0;c[e>>2]=27;c[a>>2]=c[11430];c[a+4>>2]=c[11431];c[a+8>>2]=c[11432];c[a+12>>2]=c[11433];c[11430]=h;c[11431]=f;c[11433]=0;c[11432]=a;a=d+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0>>0);if((d|0)!=(i|0)){h=d-i|0;c[e>>2]=c[e>>2]&-2;c[i+4>>2]=h|1;c[d>>2]=h;a=h>>>3;if(h>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{H=a;I=b}}else{c[11318]=b|a;H=d+8|0;I=d}c[H>>2]=i;c[I+12>>2]=i;c[i+8>>2]=I;c[i+12>>2]=d;break}a=h>>>8;if(a)if(h>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;f=45576+(d<<2)|0;c[i+28>>2]=d;c[i+20>>2]=0;c[g>>2]=0;a=c[11319]|0;b=1<>2]=i;c[i+24>>2]=f;c[i+12>>2]=i;c[i+8>>2]=i;break}e=h<<((d|0)==31?0:25-(d>>>1)|0);a=c[f>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(h|0)){d=a;E=307;break}b=a+16+(e>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=304;break}else{e=e<<1;a=d}}if((E|0)==304)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((E|0)==307){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=i;c[a>>2]=i;c[i+8>>2]=b;c[i+12>>2]=d;c[i+24>>2]=0;break}else Ca()}}}else{L=c[11322]|0;if((L|0)==0|h>>>0>>0)c[11322]=h;c[11430]=h;c[11431]=f;c[11433]=0;c[11327]=c[11436];c[11326]=-1;a=0;do{L=45312+(a<<1<<2)|0;c[L+12>>2]=L;c[L+8>>2]=L;a=a+1|0}while((a|0)!=32);L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=h+L|0;L=f+-40-L|0;c[11324]=K;c[11321]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[11325]=c[11440]}while(0);a=c[11321]|0;if(a>>>0>o>>>0){J=a-o|0;c[11321]=J;L=c[11324]|0;K=L+o|0;c[11324]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}}c[(eo()|0)>>2]=12;L=0;return L|0}function Yp(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;if(!a)return;d=a+-8|0;h=c[11322]|0;if(d>>>0>>0)Ca();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)Ca();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0>>0)Ca();if((k|0)==(c[11323]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;g=j;break}c[11320]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=45312+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0>>0)Ca();if((c[b+12>>2]|0)!=(k|0))Ca()}if((d|0)==(b|0)){c[11318]=c[11318]&~(1<>>0>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(k|0))f=a;else Ca()}else f=d+8|0;c[b+12>>2]=d;c[f>>2]=b;q=k;g=j;break}f=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){b=k+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){i=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)Ca();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(k|0))Ca();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else Ca()}while(0);if(f){a=c[k+28>>2]|0;b=45576+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[f+20>>2]=i;if(!i){q=k;g=j;break}}d=c[11322]|0;if(i>>>0>>0)Ca();c[i+24>>2]=f;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)Ca();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;g=j;break}else{q=k;g=j}}else{q=k;g=j}}else{q=d;g=e}while(0);if(q>>>0>=m>>>0)Ca();a=m+4|0;b=c[a>>2]|0;if(!(b&1))Ca();if(!(b&2)){if((m|0)==(c[11324]|0)){p=(c[11321]|0)+g|0;c[11321]=p;c[11324]=q;c[q+4>>2]=p|1;if((q|0)!=(c[11323]|0))return;c[11323]=0;c[11320]=0;return}if((m|0)==(c[11323]|0)){p=(c[11320]|0)+g|0;c[11320]=p;c[11323]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}g=(b&-8)+g|0;e=b>>>3;do if(b>>>0>=256){f=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){b=m+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();d=b+12|0;if((c[d>>2]|0)!=(m|0))Ca();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else Ca()}while(0);if(f|0){a=c[m+28>>2]|0;b=45576+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[f+20>>2]=n;if(!n)break}d=c[11322]|0;if(n>>>0>>0)Ca();c[n+24>>2]=f;a=m+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)Ca();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=45312+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[11322]|0)>>>0)Ca();if((c[b+12>>2]|0)!=(m|0))Ca()}if((d|0)==(b|0)){c[11318]=c[11318]&~(1<>>0<(c[11322]|0)>>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else Ca()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=g|1;c[q+g>>2]=g;if((q|0)==(c[11323]|0)){c[11320]=g;return}}else{c[a>>2]=b&-2;c[q+4>>2]=g|1;c[q+g>>2]=g}a=g>>>3;if(g>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{o=a;p=b}}else{c[11318]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<>>16&4;p=p<>>16&2;d=14-(n|o|d)+(p<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=45576+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[11319]|0;b=1<>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;e=130;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){e=127;break}else{f=f<<1;a=d}}if((e|0)==127)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=q;c[q+24>>2]=a;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((e|0)==130){a=d+8|0;b=c[a>>2]|0;p=c[11322]|0;if(b>>>0>=p>>>0&d>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=d;c[q+24>>2]=0;break}else Ca()}}else{c[11319]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[11326]|0)+-1|0;c[11326]=q;if(!q)a=45728;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[11326]=-1;return}function Zp(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=Xp(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;eq(b|0,0,d|0)|0;return b|0}function _p(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=Xp(b)|0;return a|0}if(b>>>0>4294967231){c[(eo()|0)>>2]=12;a=0;return a|0}d=$p(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){a=d+8|0;return a|0}d=Xp(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;fq(d|0,a|0,(e>>>0>>0?e:b)|0)|0;Yp(a);a=d;return a|0}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[11322]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0>>0))Ca();f=c[k+4>>2]|0;if(!(f&1))Ca();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[11438]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;b=m+d+4|0;c[b>>2]=c[b>>2]|1;aq(m,d);return a|0}if((k|0)==(c[11324]|0)){d=(c[11321]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[11324]=l;c[11321]=m;return a|0}if((k|0)==(c[11323]|0)){e=(c[11320]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;b=m+4|0;c[b>>2]=c[b>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[11320]=d;c[11323]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){e=k+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){j=0;break}}else e=f;while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Ca();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0>>0)Ca();d=g+12|0;if((c[d>>2]|0)!=(k|0))Ca();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else Ca()}while(0);if(h|0){d=c[k+28>>2]|0;e=45576+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[11322]|0;if(j>>>0>>0)Ca();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0>>0)Ca();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=45312+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0>>0)Ca();if((c[e+12>>2]|0)!=(k|0))Ca()}if((f|0)==(e|0)){c[11318]=c[11318]&~(1<>>0>>0)Ca();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else Ca()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;b=a+l+4|0;c[b>>2]=c[b>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;b=l+m+4|0;c[b>>2]=c[b>>2]|1;aq(l,m);return a|0}return 0}function aq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;l=a+(0-f)|0;k=f+b|0;i=c[11322]|0;if(l>>>0>>0)Ca();if((l|0)==(c[11323]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;g=k;break}c[11320]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=f>>>3;if(f>>>0<256){a=c[l+8>>2]|0;b=c[l+12>>2]|0;d=45312+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0>>0)Ca();if((c[a+12>>2]|0)!=(l|0))Ca()}if((b|0)==(a|0)){c[11318]=c[11318]&~(1<>>0>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ca()}else h=b+8|0;c[a+12>>2]=b;c[h>>2]=a;r=l;g=k;break}f=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){a=l+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){j=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0>>0)Ca();else{c[a>>2]=0;j=d;break}}else{e=c[l+8>>2]|0;if(e>>>0>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(l|0))Ca();a=b+8|0;if((c[a>>2]|0)==(l|0)){c[d>>2]=b;c[a>>2]=e;j=b;break}else Ca()}while(0);if(f){d=c[l+28>>2]|0;a=45576+(d<<2)|0;if((l|0)==(c[a>>2]|0)){c[a>>2]=j;if(!j){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=j;else c[f+20>>2]=j;if(!j){r=l;g=k;break}}b=c[11322]|0;if(j>>>0>>0)Ca();c[j+24>>2]=f;d=l+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[j+16>>2]=a;c[a+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;r=l;g=k;break}else{r=l;g=k}}else{r=l;g=k}}else{r=a;g=b}while(0);h=c[11322]|0;if(o>>>0>>0)Ca();d=o+4|0;a=c[d>>2]|0;if(!(a&2)){if((o|0)==(c[11324]|0)){q=(c[11321]|0)+g|0;c[11321]=q;c[11324]=r;c[r+4>>2]=q|1;if((r|0)!=(c[11323]|0))return;c[11323]=0;c[11320]=0;return}if((o|0)==(c[11323]|0)){q=(c[11320]|0)+g|0;c[11320]=q;c[11323]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}g=(a&-8)+g|0;e=a>>>3;do if(a>>>0>=256){f=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){a=o+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){n=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0>>0)Ca();else{c[a>>2]=0;n=d;break}}else{e=c[o+8>>2]|0;if(e>>>0>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(o|0))Ca();a=b+8|0;if((c[a>>2]|0)==(o|0)){c[d>>2]=b;c[a>>2]=e;n=b;break}else Ca()}while(0);if(f|0){d=c[o+28>>2]|0;a=45576+(d<<2)|0;if((o|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[11319]=c[11319]&~(1<>>0<(c[11322]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(o|0))c[d>>2]=n;else c[f+20>>2]=n;if(!n)break}b=c[11322]|0;if(n>>>0>>0)Ca();c[n+24>>2]=f;d=o+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=d;c[d+24>>2]=n;break}}}else{a=c[o+8>>2]|0;b=c[o+12>>2]|0;d=45312+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0>>0)Ca();if((c[a+12>>2]|0)!=(o|0))Ca()}if((b|0)==(a|0)){c[11318]=c[11318]&~(1<>>0>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(o|0))m=d;else Ca()}else m=b+8|0;c[a+12>>2]=b;c[m>>2]=a}while(0);c[r+4>>2]=g|1;c[r+g>>2]=g;if((r|0)==(c[11323]|0)){c[11320]=g;return}}else{c[d>>2]=a&-2;c[r+4>>2]=g|1;c[r+g>>2]=g}d=g>>>3;if(g>>>0<256){b=45312+(d<<1<<2)|0;a=c[11318]|0;d=1<>2]|0;if(a>>>0<(c[11322]|0)>>>0)Ca();else{p=d;q=a}}else{c[11318]=a|d;p=b+8|0;q=b}c[p>>2]=r;c[q+12>>2]=r;c[r+8>>2]=q;c[r+12>>2]=b;return}d=g>>>8;if(d)if(g>>>0>16777215)b=31;else{p=(d+1048320|0)>>>16&8;q=d<>>16&4;q=q<>>16&2;b=14-(o|p|b)+(q<>>15)|0;b=g>>>(b+7|0)&1|b<<1}else b=0;e=45576+(b<<2)|0;c[r+28>>2]=b;c[r+20>>2]=0;c[r+16>>2]=0;d=c[11319]|0;a=1<>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}f=g<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(g|0)){b=d;e=127;break}a=d+16+(f>>>31<<2)|0;b=c[a>>2]|0;if(!b){e=124;break}else{f=f<<1;d=b}}if((e|0)==124){if(a>>>0<(c[11322]|0)>>>0)Ca();c[a>>2]=r;c[r+24>>2]=d;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((e|0)==127){d=b+8|0;a=c[d>>2]|0;q=c[11322]|0;if(!(a>>>0>=q>>>0&b>>>0>=q>>>0))Ca();c[a+12>>2]=r;c[d>>2]=r;c[r+8>>2]=a;c[r+12>>2]=b;c[r+24>>2]=0;return}}function bq(){}function cq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function dq(a){a=+a;return a>=0.0?+M(a+.5):+Z(a-.5)}function eq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|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 b-e|0}function fq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Na(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function gq(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 fq(b,c,d)|0;return b|0}function hq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function iq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function jq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>c;return a>>>c|(b&(1<>c-32|0}function lq(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function mq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function nq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=cq(j^a|0,i^b|0,j|0,i|0)|0;g=C;a=f^j;b=e^i;return cq((sq(h,g,cq(f^c|0,e^d|0,f|0,e|0)|0,C,0)|0)^a|0,C^b|0,a|0,b|0)|0}function oq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=cq(h^a|0,g^b|0,h|0,g|0)|0;b=C;sq(a,b,cq(l^d|0,k^e|0,l|0,k|0)|0,C,j)|0;e=cq(c[j>>2]^h|0,c[j+4>>2]^g|0,h|0,g|0)|0;d=C;i=f;return (C=d,e)|0}function pq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=mq(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function qq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return sq(a,b,c,d,0)|0}function rq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;sq(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function sq(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;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h|0){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=lq(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((lq(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=iq(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;cq(k|0,d|0,e|0,n|0)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=cq(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function tq(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|0;h=h|0;return ob[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function uq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return pb[a&15](b|0,c|0,d|0)|0}function vq(a,b){a=a|0;b=b|0;qb[a&31](b|0)}function wq(a,b){a=a|0;b=b|0;return rb[a&7](b|0)|0}function xq(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;return sb[a&0](+b,c|0,d|0,e|0)|0}function yq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;tb[a&31](b|0,c|0,d|0)}function zq(a){a=a|0;ub[a&1]()}function Aq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return vb[a&7](b|0,c|0,d|0,e|0)|0}function Bq(a,b,c){a=a|0;b=b|0;c=c|0;return wb[a&7](b|0,c|0)|0}function Cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;xb[a&63](b|0,c|0,d|0,e|0)}function Dq(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;da(0);return 0}function Eq(a,b,c){a=a|0;b=b|0;c=c|0;ea(1);return 0}function Fq(a){a=a|0;fa(2)}function Gq(a){a=a|0;ga(3);return 0}function Hq(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;ha(4);return 0}function Iq(a,b,c){a=a|0;b=b|0;c=c|0;ia(5)}function Jq(){ja(6)}function Kq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7);return 0}function Lq(a,b){a=a|0;b=b|0;la(8);return 0}function Mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(9)} +function Mf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n;m=b+8|0;if((c[m>>2]|0)==(d|0)){d=b+16|0;h=d;g=b+12|0;d=c[d>>2]|0}else{c[m>>2]=d;k=b+12|0;c[k>>2]=Le(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)rb[c[b+60>>2]&31](g);c[d>>2]=sb[c[b+44>>2]&7](c[m>>2]<<3)|0;h=b+16|0;d=Zp(c[h>>2]|0,c[k>>2]<<3)|0;c[h>>2]=d;g=k}k=c[g>>2]|0;Nf(e,k,d,k<<3,l);if(c[g>>2]&536870911|0){d=0;do{l=(c[h>>2]|0)+d|0;a[l>>0]=((a[l>>0]|0)!=0)<<31>>31;d=d+1|0}while(d>>>0>2]<<3>>>0)}l=b+20|0;xb[c[b+48>>2]&7](c[l>>2]|0,0)|0;qb[c[b+52>>2]&15](c[l>>2]|0,c[h>>2]|0,(c[b+32>>2]|0)+-1+(c[m>>2]<<3)|0)|0;wb[c[b+56>>2]&7](c[l>>2]|0,f,c[m>>2]<<3,0)|0;i=n;return}function Nf(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;h=d<<3;if(h>>>0>f>>>0){Pp(24941,40,1,c[2344]|0)|0;lb(-1)}if(!d){e=0;c[g>>2]=e;return}else{f=0;i=0}while(1){k=a[b+f>>0]|0;j=k&255;a[e+i>>0]=(k&255)>>>7;a[e+(i|1)>>0]=j>>>6&1;a[e+(i|2)>>0]=j>>>5&1;a[e+(i|3)>>0]=j>>>4&1;a[e+(i|4)>>0]=j>>>3&1;a[e+(i|5)>>0]=j>>>2&1;a[e+(i|6)>>0]=j>>>1&1;a[e+(i|7)>>0]=j&1;f=f+1|0;if((f|0)==(d|0))break;else i=i+8|0}c[g>>2]=h;return}function Of(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=b+8|0;if((c[i>>2]|0)==(d|0))d=b+12|0;else{c[i>>2]=d;h=b+12|0;c[h>>2]=Le(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)rb[c[b+60>>2]&31](g);c[d>>2]=sb[c[b+44>>2]&7](c[i>>2]<<3)|0;d=b+16|0;c[d>>2]=Zp(c[d>>2]|0,c[h>>2]<<3)|0;d=h}g=b+16|0;if(c[d>>2]&536870911|0){h=0;do{a[(c[g>>2]|0)+h>>0]=a[e+h>>0]|0;h=h+1|0}while(h>>>0>2]<<3>>>0)}e=b+20|0;xb[c[b+48>>2]&7](c[e>>2]|0,0)|0;qb[c[b+52>>2]&15](c[e>>2]|0,c[g>>2]|0,(c[b+32>>2]|0)+-1+(c[i>>2]<<3)|0)|0;wb[c[b+56>>2]&7](c[e>>2]|0,f,c[i>>2]<<3,0)|0;return}function Pf(a){a=a|0;var b=0;b=Wp(148)|0;c[b>>2]=a;g[b+4>>2]=+Ne(a);c[b+136>>2]=29;c[b+140>>2]=30;c[b+144>>2]=31;do switch(c[b>>2]|0){case 15:{Tf(b);c[b+36>>2]=2;c[b+40>>2]=340;break}case 16:{Tf(b);c[b+36>>2]=3;c[b+40>>2]=356;break}case 17:{Tf(b);c[b+36>>2]=4;c[b+40>>2]=380;break}case 18:{Tf(b);c[b+36>>2]=5;c[b+40>>2]=412;break}case 19:{Tf(b);c[b+36>>2]=6;c[b+40>>2]=452;break}case 20:{Tf(b);c[b+36>>2]=7;c[b+40>>2]=500;break}case 21:{Uf(b);c[b+36>>2]=2;c[b+40>>2]=556;break}case 22:{Uf(b);c[b+36>>2]=3;c[b+40>>2]=572;break}case 23:{Uf(b);c[b+36>>2]=4;c[b+40>>2]=596;break}case 24:{Uf(b);c[b+36>>2]=5;c[b+40>>2]=628;break}case 25:{Uf(b);c[b+36>>2]=6;c[b+40>>2]=668;break}case 26:{Uf(b);c[b+36>>2]=7;c[b+40>>2]=716;break}default:{Pp(25022,49,1,c[2344]|0)|0;lb(1)}}while(0);c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function Qf(b,e,f,g){b=b|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;if(!e){i=0;h=0;k=0;l=0}else{r=b+28|0;s=b+36|0;t=b+40|0;u=b+24|0;m=c[r>>2]|0;i=0;j=0;h=0;k=0;l=0;do{q=d[f+j>>0]|0;n=m;p=0;do{l=q>>>(7-p|0)&1|l<<1;if(!n)n=0;else{o=0;while(1){n=(_(c[s>>2]|0,o)|0)+k|0;if(!(c[(c[t>>2]|0)+(n<<2)>>2]|0))n=m;else{i=((fb(c[(c[u>>2]|0)+(o<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;n=c[r>>2]|0;h=h+1|0}o=o+1|0;if(o>>>0>=n>>>0){m=n;break}else m=n}}k=((k+1|0)>>>0)%((c[s>>2]|0)>>>0)|0;p=p+1|0}while((p|0)!=8);j=j+1|0}while((j|0)!=(e|0))}r=b+32|0;if((c[r>>2]|0)!=1){s=b+28|0;t=b+36|0;q=b+40|0;p=b+24|0;j=c[s>>2]|0;m=j;o=0;n=k;while(1){l=l<<1;if(!m){k=j;j=0}else{k=0;do{b=(_(c[t>>2]|0,k)|0)+n|0;if(c[(c[q>>2]|0)+(b<<2)>>2]|0){i=((fb(c[(c[p>>2]|0)+(k<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;j=c[s>>2]|0;h=h+1|0}k=k+1|0}while(k>>>0>>0);k=j}o=o+1|0;if(o>>>0>=((c[r>>2]|0)+-1|0)>>>0)break;else{m=j;j=k;n=((n+1|0)>>>0)%((c[t>>2]|0)>>>0)|0}}}if(!(h&7))return;do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);return}function Rf(b,d,e,f){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;s=b+8|0;if((c[s>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[s>>2]=d;c[b+12>>2]=Le(c[b>>2]|0,d)|0;d=c[s>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){rb[c[b+60>>2]&31](g);d=c[s>>2]|0}c[j>>2]=sb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=Zp(c[d>>2]|0,i)|0;d=c[s>>2]|0}g=c[h>>2]|0;p=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!p)d=b+16|0;else{q=b+36|0;r=b+40|0;d=b+16|0;i=a[e>>0]|0;n=0;l=0;j=0;o=0;while(1){if(!g)g=0;else{g=l;m=0;while(1){l=(_(c[q>>2]|0,m)|0)+o|0;if(c[(c[r>>2]|0)+(l<<2)>>2]|0){a[(c[d>>2]|0)+(m+n)>>0]=((i&255&1<<7-g|0)!=0)<<31>>31;g=g+1|0;if((g|0)==8){j=j+1|0;i=a[e+j>>0]|0;l=0}else l=g}else{a[(c[d>>2]|0)+(m+n)>>0]=127;l=g}m=m+1|0;g=c[h>>2]|0;if(m>>>0>=g>>>0)break;else g=l}}n=g+n|0;if(n>>>0>=p>>>0)break;else o=((o+1|0)>>>0)%((c[q>>2]|0)>>>0)|0}}e=b+20|0;xb[c[b+48>>2]&7](c[e>>2]|0,0)|0;qb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[s>>2]<<3)|0)|0;wb[c[b+56>>2]&7](c[e>>2]|0,f,c[s>>2]<<3,0)|0;return}function Sf(b,d,e,f){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;q=b+8|0;if((c[q>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[q>>2]=d;c[b+12>>2]=Le(c[b>>2]|0,d)|0;d=c[q>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){rb[c[b+60>>2]&31](g);d=c[q>>2]|0}c[j>>2]=sb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=Zp(c[d>>2]|0,i)|0;d=c[q>>2]|0}g=c[h>>2]|0;n=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!n)d=b+16|0;else{o=b+36|0;p=b+40|0;d=b+16|0;l=0;i=0;m=0;while(1){if(!g)g=0;else{g=i;j=0;while(1){i=(_(c[o>>2]|0,j)|0)+m|0;if(!(c[(c[p>>2]|0)+(i<<2)>>2]|0)){a[(c[d>>2]|0)+(j+l)>>0]=127;i=g}else{a[(c[d>>2]|0)+(j+l)>>0]=a[e+g>>0]|0;i=g+1|0}j=j+1|0;g=c[h>>2]|0;if(j>>>0>=g>>>0)break;else g=i}}l=g+l|0;if(l>>>0>=n>>>0)break;else m=((m+1|0)>>>0)%((c[o>>2]|0)>>>0)|0}}e=b+20|0;xb[c[b+48>>2]&7](c[e>>2]|0,0)|0;qb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[q>>2]<<3)|0)|0;wb[c[b+56>>2]&7](c[e>>2]|0,f,c[q>>2]<<3,0)|0;return}function Tf(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=7;c[a+24>>2]=288;c[a+44>>2]=3;c[a+48>>2]=1;c[a+52>>2]=5;c[a+56>>2]=1;c[a+60>>2]=18;return}function Uf(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=9;c[a+24>>2]=296;c[a+44>>2]=4;c[a+48>>2]=2;c[a+52>>2]=6;c[a+56>>2]=2;c[a+60>>2]=19;return}function Vf(a){a=a|0;var b=0;b=Wp(148)|0;c[b>>2]=a;g[b+4>>2]=+Ne(a);c[b+136>>2]=32;c[b+140>>2]=33;c[b+144>>2]=0;if((a|0)==27){c[b+64>>2]=8;c[b+68>>2]=285;c[b+72>>2]=1;c[b+76>>2]=1;c[b+80>>2]=32;c[b+88>>2]=255;c[b+92>>2]=223;c[b+8>>2]=0;c[b+96>>2]=0;c[b+120>>2]=Wp(255)|0;c[b+124>>2]=Wp(1020)|0;c[b+128>>2]=Wp(1020)|0;return b|0}else{Pp(25122,37,1,c[2344]|0)|0;lb(1)}return 0}function Wf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!b){Pp(25072,49,1,c[2344]|0)|0;lb(1)}Xf(a,b);k=a+104|0;l=a+100|0;b=c[l>>2]|0;if(!b)return;m=a+112|0;n=a+120|0;o=a+96|0;j=a+108|0;a=c[k>>2]|0;g=0;h=0;i=0;while(1){if((g|0)==(b+-1|0))f=a-(c[m>>2]|0)|0;else f=a;fq(c[n>>2]|0,d+h|0,f|0)|0;b=c[n>>2]|0;Mm(c[o>>2]|0,b,b+(c[k>>2]|0)|0);fq(e+i|0,c[n>>2]|0,c[j>>2]|0)|0;g=g+1|0;b=c[l>>2]|0;if(g>>>0>=b>>>0)break;else{a=f;h=f+h|0;i=(c[j>>2]|0)+i|0}}return}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();d=k+8|0;e=k;f=a+8|0;if((c[f>>2]|0)==(b|0)){i=k;return}c[f>>2]=b;l=a+92|0;Up(d,b,c[l>>2]|0);d=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;m=a+100|0;c[m>>2]=d;Up(e,b,d);d=((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)|0;c[a+104>>2]=d;g=a+80|0;e=c[g>>2]|0;h=d+e|0;c[a+108>>2]=h;b=c[m>>2]|0;m=_(d,b)|0;c[a+112>>2]=(m>>>0)%((c[f>>2]|0)>>>0)|0;d=(c[l>>2]|0)-d|0;f=a+116|0;c[f>>2]=d;c[a+12>>2]=_(b,h)|0;h=a+96|0;b=c[h>>2]|0;if(b){Jm(b);e=c[g>>2]|0;d=c[f>>2]|0}c[h>>2]=Fm(c[a+64>>2]|0,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0,e,d)|0;i=k;return}function Yf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!b){Pp(25072,49,1,c[2344]|0)|0;lb(1)}Xf(a,b);p=a+88|0;dq(c[a+124>>2]|0,0,c[p>>2]|0)|0;o=a+128|0;dq(c[o>>2]|0,0,c[p>>2]|0)|0;p=a+132|0;c[p>>2]=0;j=a+100|0;b=c[j>>2]|0;if(!b)return;k=a+112|0;l=a+120|0;m=a+108|0;n=a+96|0;a=c[a+104>>2]|0;g=0;h=0;i=0;while(1){if((g|0)==(b+-1|0))f=a-(c[k>>2]|0)|0;else f=a;fq(c[l>>2]|0,d+h|0,c[m>>2]|0)|0;Pm(c[n>>2]|0,c[l>>2]|0,c[o>>2]|0,c[p>>2]|0);fq(e+i|0,c[l>>2]|0,f|0)|0;g=g+1|0;b=c[j>>2]|0;if(g>>>0>=b>>>0)break;else{a=f;h=(c[m>>2]|0)+h|0;i=f+i|0}}return}function Zf(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;b=c[a>>2]|0;do switch(b|0){case 0:{Rp(25213)|0;lb(-1);break}case 1:{_f(a);break}case 2:{$f(a);break}case 3:{ag(a);break}case 4:{bg(a);break}case 5:{cg(a);break}case 6:{dg(a);break}case 7:{eg(a);break}case 8:{fg(a);break}case 9:{gg(a);break}case 10:{hg(a);break}case 14:case 13:case 12:case 11:{ig(a);break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{jg(a);break}case 27:{kg(a);break}default:{c[d>>2]=b;Qp(25279,d)|0;lb(-1)}}while(0);i=e;return}function _f(a){a=a|0;Xp(a);return}function $f(a){a=a|0;Xp(a);return}function ag(a){a=a|0;Xp(a);return}function bg(a){a=a|0;Xp(a);return}function cg(a){a=a|0;Xp(a);return}function dg(a){a=a|0;Xp(a);return}function eg(a){a=a|0;Xp(a);return}function fg(a){a=a|0;Xp(a);return}function gg(a){a=a|0;Xp(a);return}function hg(a){a=a|0;Xp(a);return}function ig(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)rb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Xp(a);return}Xp(b);Xp(a);return}function jg(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)rb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Xp(a);return}Xp(b);Xp(a);return}function kg(a){a=a|0;var b=0;b=c[a+96>>2]|0;if(b|0)Jm(b);Xp(c[a+120>>2]|0);Xp(c[a+124>>2]|0);Xp(c[a+128>>2]|0);Xp(a);return}function lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;yb[c[a+136>>2]&63](a,b,d,e);return}function mg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;yb[c[a+140>>2]&63](a,b,d,e);return}function ng(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0;n=i;h=c[b+144>>2]|0;if(h|0){yb[h&63](b,e,f,g);i=n;return}h=Le(c[b>>2]|0,e)|0;k=Wa()|0;l=i;i=i+((1*h|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(h|0){m=0;do{o=m<<3;a[l+m>>0]=(d[f+(o|6)>>0]|0)>>>6&2|((d[f+(o|5)>>0]|0)>>>5&4|((d[f+(o|4)>>0]|0)>>>4&8|((d[f+(o|3)>>0]|0)>>>3&16|((d[f+(o|2)>>0]|0)>>>2&32|((d[f+(o|1)>>0]|0)>>>1&64|(d[f+o>>0]|0)&128)))))|(d[f+(o|7)>>0]|0)>>>7;m=m+1|0}while((m|0)!=(h|0))}yb[c[b+140>>2]&63](b,e,l,g);Ga(k|0);i=n;return}function og(a){a=a|0;var b=0,d=0,e=0,f=0;e=Wp(16)|0;c[e>>2]=a;c[e+12>>2]=4;d=(~~+M(+(+O(+(+(a>>>0)))))>>>0)+1|0;c[e+4>>2]=d;f=e+8|0;b=(a>>>0)/(d>>>0)|0;while(1)if((_(d,b)|0)>>>0>a>>>0)break;else b=b+1|0;c[f>>2]=b;return e|0}function pg(a){a=a|0;Xp(a);return}function qg(a,b){a=a|0;b=b|0;c[a+12>>2]=b;return}function rg(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;fq(e|0,d|0,c[b>>2]|0)|0;l=b+12|0;d=c[l>>2]|0;if(!d)return;g=c[b>>2]|0;m=b+4|0;i=c[m>>2]|0;n=b+8|0;j=c[n>>2]|0;k=g>>>1;if(k){d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);p=e+(h<<1|1)|0;o=a[p>>0]|0;h=e+(d<<1)|0;a[p>>0]=a[h>>0]|0;a[h>>0]=o;d=d+1|0}while((d|0)!=(k|0));d=c[l>>2]|0}if(d>>>0<=1)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+2|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);q=e+(d<<1)|0;o=a[q>>0]|0;p=e+(h<<1|1)|0;h=a[p>>0]|0;a[q>>0]=h&15|o&240;a[p>>0]=h&240|o&15;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=2)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+4|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);r=e+(d<<1)|0;p=a[r>>0]|0;q=e+(h<<1|1)|0;o=a[q>>0]|0;a[r>>0]=o&85|p&170;a[q>>0]=o&170|p&85;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=3)return;g=c[b>>2]|0;k=c[m>>2]|0;i=(c[n>>2]|0)+8|0;j=g>>>1;if(!j)return;d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);o=e+(d<<1)|0;q=a[o>>0]|0;r=e+(h<<1|1)|0;p=a[r>>0]|0;a[o>>0]=p&51|q&204;a[r>>0]=p&204|q&51;d=d+1|0}while((d|0)!=(j|0));return}function sg(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;fq(e|0,d|0,c[b>>2]|0)|0;o=b+12|0;d=c[o>>2]|0;if(d>>>0>3){f=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+8|0;i=f>>>1;if(!i)f=11;else{d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,k)|0)+g|0;f=f+1|0;if((f|0)==(j|0)){f=0;g=((g+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=i>>>0);t=e+(d<<1)|0;s=a[t>>0]|0;l=e+(h<<1|1)|0;h=a[l>>0]|0;a[t>>0]=h&51|s&204;a[l>>0]=h&204|s&51;d=d+1|0;if((d|0)==(i|0))break;else h=f}d=c[o>>2]|0;f=10}}else f=10;if((f|0)==10)if(d>>>0>2)f=11;else f=19;if((f|0)==11){d=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+4|0;l=d>>>1;if(!l)f=20;else{i=0;g=0;f=(d>>>0)/3|0;while(1){d=g;do{h=(_(d,k)|0)+f|0;d=d+1|0;if((d|0)==(j|0)){d=0;f=((f+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=l>>>0);g=d;u=e+(i<<1)|0;t=a[u>>0]|0;d=e+(h<<1|1)|0;s=a[d>>0]|0;a[u>>0]=s&85|t&170;a[d>>0]=s&170|t&85;d=i+1|0;if((d|0)==(l|0))break;else i=d}d=c[o>>2]|0;f=19}}if((f|0)==19)if(d>>>0>1)f=20;else{m=d;f=28}if((f|0)==20?(n=c[b>>2]|0,p=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=n>>>1,r|0):0){d=0;f=0;g=(n>>>0)/3|0;do{do{h=(_(f,q)|0)+g|0;f=f+1|0;if((f|0)==(p|0)){f=0;g=((g+1|0)>>>0)%(q>>>0)|0}}while(h>>>0>=r>>>0);n=e+(d<<1)|0;t=a[n>>0]|0;u=e+(h<<1|1)|0;s=a[u>>0]|0;a[n>>0]=s&15|t&240;a[u>>0]=s&240|t&15;d=d+1|0}while((d|0)!=(r|0));m=c[o>>2]|0;f=28}if((f|0)==28?(m|0)==0:0)return;f=c[b>>2]|0;k=c[b+4>>2]|0;i=c[b+8>>2]|0;j=f>>>1;if(!j)return;d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);s=e+(h<<1|1)|0;t=a[s>>0]|0;u=e+(d<<1)|0;a[s>>0]=a[u>>0]|0;a[u>>0]=t;d=d+1|0;if((d|0)==(j|0))break;else h=f}return}function tg(b,e,f){b=b|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;fq(f|0,e|0,c[b>>2]<<3|0)|0;p=b+12|0;e=c[p>>2]|0;if(e>>>0>3){g=c[b>>2]|0;l=c[b+4>>2]|0;j=(c[b+8>>2]|0)+8|0;k=g>>>1;if(!k)g=11;else{e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=i<<4;m=e<<4;v=f+(t|10)|0;u=a[v>>0]|0;i=f+(m|2)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;i=f+(t|11)|0;u=a[i>>0]|0;v=f+(m|3)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=u;v=f+(t|14)|0;u=a[v>>0]|0;i=f+(m|6)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;t=f+(t|15)|0;i=a[t>>0]|0;m=f+(m|7)|0;a[t>>0]=a[m>>0]|0;a[m>>0]=i;e=e+1|0;if((e|0)==(k|0))break;else i=g}e=c[p>>2]|0;g=10}}else g=10;if((g|0)==10)if(e>>>0>2)g=11;else g=19;if((g|0)==11){e=c[b>>2]|0;k=c[b+4>>2]|0;l=(c[b+8>>2]|0)+4|0;m=e>>>1;if(!m)g=20;else{j=0;h=0;g=(e>>>0)/3|0;while(1){e=h;do{i=(_(e,l)|0)+g|0;e=e+1|0;if((e|0)==(k|0)){e=0;g=((g+1|0)>>>0)%(l>>>0)|0}}while(i>>>0>=m>>>0);h=e;u=i<<4;e=j<<4;i=f+(u|9)|0;t=a[i>>0]|0;v=f+(e|1)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;v=f+(u|11)|0;t=a[v>>0]|0;i=f+(e|3)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=t;i=f+(u|13)|0;t=a[i>>0]|0;v=f+(e|5)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;u=f+(u|15)|0;v=a[u>>0]|0;e=f+(e|7)|0;a[u>>0]=a[e>>0]|0;a[e>>0]=v;e=j+1|0;if((e|0)==(m|0))break;else j=e}e=c[p>>2]|0;g=19}}if((g|0)==19)if(e>>>0>1)g=20;else{n=e;g=28}if((g|0)==20?(o=c[b>>2]|0,s=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=o>>>1,r|0):0){e=0;g=0;h=(o>>>0)/3|0;do{do{i=(_(g,q)|0)+h|0;g=g+1|0;if((g|0)==(s|0)){g=0;h=((h+1|0)>>>0)%(q>>>0)|0}}while(i>>>0>=r>>>0);t=i<<4;v=e<<4;n=f+(t|12)|0;o=a[n>>0]|0;u=f+(v|4)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;u=f+(t|13)|0;o=a[u>>0]|0;n=f+(v|5)|0;a[u>>0]=a[n>>0]|0;a[n>>0]=o;n=f+(t|14)|0;o=a[n>>0]|0;u=f+(v|6)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;t=f+(t|15)|0;u=a[t>>0]|0;v=f+(v|7)|0;a[t>>0]=a[v>>0]|0;a[v>>0]=u;e=e+1|0}while((e|0)!=(r|0));n=c[p>>2]|0;g=28}if((g|0)==28?(n|0)==0:0)return;g=c[b>>2]|0;l=c[b+4>>2]|0;j=c[b+8>>2]|0;k=g>>>1;if(!k)return;e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=f+(i<<4|8)|0;u=t;b=u;b=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;u=u+4|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=f+(e<<4)|0;s=v;q=s;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;s=s+4|0;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;r=t;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;t=t+4|0;a[t>>0]=s;a[t+1>>0]=s>>8;a[t+2>>0]=s>>16;a[t+3>>0]=s>>24;t=v;a[t>>0]=b;a[t+1>>0]=b>>8;a[t+2>>0]=b>>16;a[t+3>>0]=b>>24;v=v+4|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;e=e+1|0;if((e|0)==(k|0))break;else i=g}return}function ug(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Wp(36)|0;c[g>>2]=a;f=Le(e,Le(d,(Ce(b)|0)+a|0)|0)|0;c[g+4>>2]=f;c[g+8>>2]=b;b=Ce(b)|0;c[g+12>>2]=b;c[g+24>>2]=f;f=f<<3;c[g+28>>2]=Wp(f)|0;c[g+32>>2]=Wp(f)|0;c[g+20>>2]=2;f=Wp(40)|0;c[g+16>>2]=f;b=b+a|0;h=f+8|0;c[h>>2]=d;c[f>>2]=b;a=f+4|0;c[a>>2]=Le(d,b)|0;c[f+12>>2]=Oe(c[h>>2]|0,0)|0;b=og(c[a>>2]|0)|0;c[f+16>>2]=b;if((c[h>>2]|0)==1)qg(b,0);d=c[a>>2]|0;h=f+28|0;c[h>>2]=e;c[f+20>>2]=d;b=f+24|0;c[b>>2]=Le(e,d)|0;c[f+32>>2]=Oe(c[h>>2]|0,0)|0;b=og(c[b>>2]|0)|0;c[f+36>>2]=b;if((c[h>>2]|0)!=1)return g|0;qg(b,0);return g|0}function vg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(!a){a=ug(b,d,e,f)|0;return a|0}if((((c[a>>2]|0)==(b|0)?(c[a+8>>2]|0)==(d|0):0)?(g=c[a+16>>2]|0,(c[g+8>>2]|0)==(e|0)):0)?(c[g+28>>2]|0)==(f|0):0)return a|0;wg(a);a=ug(b,d,e,f)|0;return a|0}function wg(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=a+16|0;if(c[b>>2]|0){e=0;do{Zf(c[(c[d>>2]|0)+(e*20|0)+12>>2]|0);pg(c[(c[d>>2]|0)+(e*20|0)+16>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Xp(c[a+28>>2]|0);Xp(c[a+32>>2]|0);Xp(a);return}function xg(a){a=a|0;return c[a+4>>2]|0}function yg(a){a=a|0;return c[a+8>>2]|0}function zg(a){a=a|0;return c[(c[a+16>>2]|0)+8>>2]|0}function Ag(a){a=a|0;return c[(c[a+16>>2]|0)+28>>2]|0}function Bg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=b+28|0;f=c[i>>2]|0;g=c[b>>2]|0;if(!d)dq(f|0,0,g|0)|0;else fq(f|0,d|0,g|0)|0;g=De(c[b+8>>2]|0,c[i>>2]|0,c[b>>2]|0)|0;h=b+12|0;f=c[h>>2]|0;if(!f)f=0;else{d=0;while(1){a[(c[i>>2]|0)+(f+~d+(c[b>>2]|0))>>0]=g;d=d+1|0;f=c[h>>2]|0;if(d>>>0>=f>>>0)break;else g=g>>>8}}Cg(c[i>>2]|0,(c[b>>2]|0)+f|0);f=b+20|0;if(!(c[f>>2]|0)){i=c[i>>2]|0;b=b+4|0;b=c[b>>2]|0;fq(e|0,i|0,b|0)|0;return}g=b+16|0;d=b+32|0;h=0;do{j=c[g>>2]|0;lg(c[j+(h*20|0)+12>>2]|0,c[j+(h*20|0)>>2]|0,c[i>>2]|0,c[d>>2]|0);rg(c[(c[g>>2]|0)+(h*20|0)+16>>2]|0,c[d>>2]|0,c[i>>2]|0);h=h+1|0}while(h>>>0<(c[f>>2]|0)>>>0);i=c[i>>2]|0;j=b+4|0;j=c[j>>2]|0;fq(e|0,i|0,j|0)|0;return}function Cg(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;e=c&-4;if(!e)f=0;else{f=c&-4;g=0;do{h=b+g|0;a[h>>0]=(d[h>>0]|0)^180;h=b+(g|1)|0;a[h>>0]=(d[h>>0]|0)^106;h=b+(g|2)|0;a[h>>0]=(d[h>>0]|0)^139;h=b+(g|3)|0;a[h>>0]=(d[h>>0]|0)^197;g=g+4|0}while(g>>>0>>0)}if(f>>>0>>0){h=b+f|0;a[h>>0]=(d[h>>0]|0)^180}e=f|1;if(e>>>0>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^106}e=f|2;if(e>>>0>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^139}e=f|3;if(e>>>0>=c>>>0)return;h=b+e|0;a[h>>0]=(d[h>>0]|0)^197;return}function Dg(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;fq(c[j>>2]|0,b|0,c[a+4>>2]|0)|0;b=c[a+20>>2]|0;if(b|0){f=a+16|0;g=a+32|0;do{b=b+-1|0;sg(c[(c[f>>2]|0)+(b*20|0)+16>>2]|0,c[j>>2]|0,c[g>>2]|0);i=c[f>>2]|0;mg(c[i+(b*20|0)+12>>2]|0,c[i+(b*20|0)>>2]|0,c[g>>2]|0,c[j>>2]|0)}while((b|0)!=0)}h=a+12|0;Eg(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;fq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Je(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0>>0);fq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Je(i,e,a,b)|0;return a|0}function Eg(a,b){a=a|0;b=b|0;Cg(a,b);return}function Fg(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;fq(c[j>>2]|0,b|0,c[a+4>>2]<<3|0)|0;i=a+16|0;h=a+32|0;tg(c[(c[i>>2]|0)+36>>2]|0,c[j>>2]|0,c[h>>2]|0);g=c[i>>2]|0;ng(c[g+32>>2]|0,c[g+20>>2]|0,c[h>>2]|0,c[j>>2]|0);sg(c[(c[i>>2]|0)+16>>2]|0,c[j>>2]|0,c[h>>2]|0);i=c[i>>2]|0;mg(c[i+12>>2]|0,c[i>>2]|0,c[h>>2]|0,c[j>>2]|0);h=a+12|0;Eg(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;fq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Je(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0>>0);fq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Je(i,e,a,b)|0;return a|0}function Gg(a){a=a|0;rb[c[a+28>>2]&31](a);return}function Hg(a,b){a=a|0;b=b|0;if(a>>>0>b>>>0){Pp(25333,61,1,c[2344]|0)|0;lb(1)}else return +(.53836-+Q(+(+(a>>>0)*6.283185307179586/+((b+-1|0)>>>0)))*.46164);return +(0.0)}function Ig(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;Jg(a+1|0,c);e=+O(+(+(((a<<1)+-1|0)>>>0)*.6931471824645996));h=(a|0)==0;if(h){g[d>>2]=1.0;g[d+4>>2]=0.0;return}else b=0;do{j=c+(b<<3)|0;i=c+(b<<3)+4|0;f=+g[i>>2]/e;g[j>>2]=+g[j>>2]/e;g[i>>2]=f;b=b+1|0}while((b|0)!=(a|0));i=d+4|0;g[d>>2]=1.0;g[i>>2]=0.0;if(h)return;else{e=1.0;f=0.0;b=0}do{m=+g[c+(b<<3)>>2];k=+g[c+(b<<3)+4>>2];l=f;f=f*m+e*k;e=e*m-l*k;g[d>>2]=e;g[i>>2]=f;b=b+1|0}while((b|0)!=(a|0));return}function Jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,l=0,m=0,n=0.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.0,F=0,G=0;D=i;i=i+48|0;if((i|0)>=(j|0))ba();z=D+40|0;f=D+32|0;h=D+24|0;y=D+16|0;A=D+8|0;B=D;s=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();t=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();C=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(a>>>0>1){u=t+4|0;v=s+4|0;l=h+4|0;m=f+4|0;o=C+4|0;w=1;x=1;while(1){p=(w+(x&1)|0)>>>1;q=w&1;d=q+w|0;r=d>>>1;switch(w|0){case 1:{g[t>>2]=-1.0;g[u>>2]=0.0;g[C>>2]=-1.0;g[o>>2]=0.0;break}case 2:{g[t>>2]=-1.0;g[u>>2]=0.0;g[C>>2]=-1.5;g[o>>2]=.8660253882408142;break}default:{n=+g[t>>2];if(!q){E=+g[u>>2]*2.0;e=c[s>>2]|0;F=c[v>>2]|0;c[h>>2]=e;c[l>>2]=F;c[z>>2]=c[h>>2];c[z+4>>2]=c[h+4>>2];Jo(f,z);E=E-+g[m>>2];g[C>>2]=n*2.0-+g[f>>2];g[o>>2]=E;n=(c[k>>2]=e,+g[k>>2])}else{E=+g[s>>2];g[C>>2]=n*2.0-E;g[o>>2]=0.0;n=E}b:do if(d>>>0>3){e=1;while(1){d=e-q|0;E=+g[t+(d<<3)+4>>2]*2.0-+g[s+(e+-1<<3)+4>>2];g[C+(e<<3)>>2]=+g[t+(d<<3)>>2]*2.0-n;g[C+(e<<3)+4>>2]=E;d=e+1|0;if(d>>>0>=r>>>0)break b;n=+g[s+(e<<3)>>2];e=d}}while(0);if(r|0){d=0;do{G=C+(d<<3)|0;F=C+(d<<3)+4|0;Kg(w,+g[G>>2],+g[F>>2],z,y);e=c[y>>2]|0;c[G>>2]=c[z>>2];c[F>>2]=e;d=d+1|0}while((d|0)!=(p|0))}}}eq(s|0,t|0,r-q<<3|0)|0;eq(t|0,C|0,r<<3|0)|0;w=w+1|0;if((w|0)==(a|0))break a;else x=x^1}}while(0);d=a&1;e=(a-d|0)>>>1;if(e|0){f=B+4|0;h=A+4|0;l=a>>>1;m=0;do{F=e-m+-1|0;y=c[C+(F<<3)>>2]|0;F=c[C+(F<<3)+4>>2]|0;G=m<<1;c[b+(G<<3)>>2]=y;c[b+(G<<3)+4>>2]=F;c[B>>2]=y;c[f>>2]=F;c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];Jo(A,z);F=c[h>>2]|0;G=G|1;c[b+(G<<3)>>2]=c[A>>2];c[b+(G<<3)+4>>2]=F;m=m+1|0}while((m|0)!=(l|0))}if(!d){i=D;return}F=c[C+4>>2]|0;G=a+-1|0;c[b+(G<<3)>>2]=c[C>>2];c[b+(G<<3)+4>>2]=F;i=D;return}function Kg(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0;if(a>>>0<2){Pp(25395,53,1,c[2344]|0)|0;lb(1)}t=0;while(1){k=b*b-d*d;n=b*2.0*d;o=2;p=1.0;q=b+1.0;r=0.0;s=d;while(1){l=+(((o<<1)+-1|0)>>>0);m=p*k-r*n+l*q;l=l*s+r*k+p*n;h=o>>>0>>0;i=h?l:s;j=h?m:q;o=o+1|0;if(o>>>0>a>>>0)break;else{p=h?q:p;q=j;r=h?s:r;s=i}}k=m-j*b+i*d;i=l-i*b-j*d;j=k*k+i*i;if(j==0.0){h=8;break}b=-(i*l+k*m)/j+b;d=-(k*l-i*m)/j+d;t=t+1|0;if(t>>>0>=50){h=8;break}}if((h|0)==8){g[e>>2]=b;g[f>>2]=d;return}}function Lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;v=i;i=i+48|0;if((i|0)>=(j|0))ba();h=v+32|0;k=v+24|0;l=v+16|0;r=v+8|0;s=v;u=a&1;if((a-u|0)>>>0<2)b=0;else{t=a+-1|0;m=+(a<<1>>>0);n=l+4|0;o=k+4|0;p=s+4|0;q=r+4|0;b=a>>>1;a=0;f=0;while(1){a=a+1|0;y=+((t+(a<<1)|0)>>>0)*3.141592653589793/m;g[l>>2]=0.0;g[n>>2]=y;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Ho(k,h);x=c[o>>2]|0;w=f|1;c[d+(f<<3)>>2]=c[k>>2];c[d+(f<<3)+4>>2]=x;g[s>>2]=-0.0;g[p>>2]=-y;c[h>>2]=c[s>>2];c[h+4>>2]=c[s+4>>2];Ho(r,h);x=c[q>>2]|0;c[d+(w<<3)>>2]=c[r>>2];c[d+(w<<3)+4>>2]=x;if((a|0)==(b|0))break;else f=f+2|0}b=b<<1}if(!u){x=e+4|0;g[e>>2]=1.0;g[x>>2]=0.0;i=v;return}g[d+(b<<3)>>2]=-1.0;g[d+(b<<3)+4>>2]=0.0;x=e+4|0;g[e>>2]=1.0;g[x>>2]=0.0;i=v;return}function Mg(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0;m=b*b;n=+O(+(1.0/m+1.0));b=1.0/b;k=1.0/+(a>>>0);f=+P(+(n+b),+k);k=+P(+(n-b),+k);b=(k+f)*.5;k=(f-k)*.5;l=a&1;if((a-l|0)>>>0<2)c=0;else{c=a+-1|0;f=+(a<<1>>>0);h=a>>>1;i=0;j=0;while(1){i=i+1|0;n=+((c+(i<<1)|0)>>>0)*3.141592653589793/f;p=+Q(+n)*k;n=b*+R(+n);o=j|1;g[d+(j<<3)>>2]=p;g[d+(j<<3)+4>>2]=-n;g[d+(o<<3)>>2]=p;g[d+(o<<3)+4>>2]=n;if((i|0)==(h|0))break;else j=j+2|0}c=h<<1}if(!l)b=1.0/+O(+(m+1.0));else{g[d+(c<<3)>>2]=-k;g[d+(c<<3)+4>>2]=0.0;b=1.0}h=e+4|0;g[e>>2]=b;g[h>>2]=0.0;if(!a)return;else{f=0.0;c=0}do{m=+g[d+(c<<3)>>2];p=+g[d+(c<<3)+4>>2];n=f;f=f*m+b*p;b=b*m-n*p;g[e>>2]=b;g[h>>2]=f;c=c+1|0}while((c|0)!=(a|0));return}function Ng(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var h=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0;C=i;i=i+48|0;if((i|0)>=(j|0))ba();s=C+32|0;t=C+24|0;x=C+16|0;y=C+8|0;B=C;o=+O(+(1.0/(b*b)+1.0));b=1.0/b;u=+(a>>>0);w=u;u=1.0/u;l=+P(+(o+b),+u);u=+P(+(o-b),+u);b=(u+l)*.5;u=l-u;l=u*.5;v=a&1;z=(a-v|0)>>>1;A=(z|0)==0;if(A)h=0;else{h=a+-1|0;o=+(a<<1>>>0);m=s+4|0;n=t+4|0;p=a>>>1;q=0;r=0;while(1){q=q+1|0;F=+((h+(q<<1)|0)>>>0)*3.141592653589793/o;G=l*+Q(+F);F=b*+R(+F);$n(s,1.0,0.0,G,-F);E=c[m>>2]|0;D=r|1;c[e+(r<<3)>>2]=c[s>>2];c[e+(r<<3)+4>>2]=E;$n(t,1.0,0.0,G,F);E=c[n>>2]|0;c[e+(D<<3)>>2]=c[t>>2];c[e+(D<<3)+4>>2]=E;if((q|0)==(p|0))break;else r=r+2|0}h=p<<1}if(v|0){g[e+(h<<3)>>2]=-2.0/u;g[e+(h<<3)+4>>2]=0.0}if(!A){h=x+4|0;m=y+4|0;n=a>>>1;p=0;q=0;while(1){p=p+1|0;G=+Q(+(+(((p<<1)+-1|0)>>>0)*1.5707963267948966/w));$n(x,-1.0,0.0,0.0,G);D=c[h>>2]|0;E=q|1;c[d+(q<<3)>>2]=c[x>>2];c[d+(q<<3)+4>>2]=D;$n(y,1.0,0.0,0.0,G);D=c[m>>2]|0;c[d+(E<<3)>>2]=c[y>>2];c[d+(E<<3)+4>>2]=D;if((p|0)==(n|0))break;else q=q+2|0}}q=f+4|0;g[f>>2]=1.0;g[q>>2]=0.0;if(!a){b=0.0;l=1.0}else{l=1.0;o=0.0;h=0;while(1){F=+g[e+(h<<3)>>2];G=+g[e+(h<<3)+4>>2];b=o*F+l*G;l=l*F-o*G;g[f>>2]=l;g[q>>2]=b;h=h+1|0;if((h|0)==(a|0))break;else o=b}}p=z<<1;if(A){i=C;return}n=B+4|0;m=0;while(1){$n(B,l,b,+g[d+(m<<3)>>2],+g[d+(m<<3)+4>>2]);E=c[B>>2]|0;h=c[n>>2]|0;c[f>>2]=E;c[q>>2]=h;m=m+1|0;l=(c[k>>2]=E,+g[k>>2]);if(m>>>0>=p>>>0)break;else b=(c[k>>2]=h,+g[k>>2])}i=C;return}function Og(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0;p=i;n=a*a;e=1.0-n;o=+O(+e);if(a>.9999998807907104){m=+Y(+(o*.25));m=e*.25*(-1.0-m)-m}else{l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=a;do{m=+O(+(1.0-e*e));e=(1.0-m)/(m+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=(+g[k+(f<<2)>>2]+1.0)*e;f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);m=e}if(a<3.9999998989515007e-04){o=+Y(+(a*.25));o=n*.25*(-1.0-o)-o;g[c>>2]=m;g[d>>2]=o;i=p;return}l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=o;do{o=+O(+(1.0-e*e));e=(1.0-o)/(o+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=(+g[k+(f<<2)>>2]+1.0)*e;f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);o=e;g[c>>2]=m;g[d>>2]=o;i=p;return}function Pg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();n=m+24|0;k=m+16|0;o=m+8|0;l=m;h=+g[b+4>>2]*1.5707963267948966;g[o>>2]=+g[b>>2]*1.5707963267948966;g[o+4>>2]=h;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];Bo(k,n);h=+g[k>>2];f=+g[k+4>>2];k=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){d=f;o=a+4|0;g[a>>2]=h;g[o>>2]=d;i=m;return}else b=0;do{p=+O(+(1.0-d*d));d=(1.0-p)/(p+1.0);g[k+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){d=h;p=f;o=a+4|0;g[a>>2]=d;g[o>>2]=p;i=m;return}b=l+4|0;do{e=e+-1|0;p=+g[k+(e<<2)>>2];q=p+1.0;d=p*h;p=p*f;$n(l,q*h,q*f,d*h+1.0-p*f,d*f+p*h);h=+g[l>>2];f=+g[b>>2]}while((e|0)!=0);o=a+4|0;g[a>>2]=h;g[o>>2]=f;i=m;return}function Qg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();n=m+24|0;k=m+16|0;o=m+8|0;l=m;h=+g[b+4>>2]*1.5707963267948966;g[o>>2]=+g[b>>2]*1.5707963267948966;g[o+4>>2]=h;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];Ko(k,n);h=+g[k>>2];f=+g[k+4>>2];k=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){d=f;o=a+4|0;g[a>>2]=h;g[o>>2]=d;i=m;return}else b=0;do{p=+O(+(1.0-d*d));d=(1.0-p)/(p+1.0);g[k+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){d=h;p=f;o=a+4|0;g[a>>2]=d;g[o>>2]=p;i=m;return}b=l+4|0;do{e=e+-1|0;p=+g[k+(e<<2)>>2];q=p+1.0;d=p*h;p=p*f;$n(l,q*h,q*f,d*h+1.0-p*f,d*f+p*h);h=+g[l>>2];f=+g[b>>2]}while((e|0)!=0);o=a+4|0;g[a>>2]=h;g[o>>2]=f;i=m;return}function Rg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;if((i|0)>=(j|0))ba();s=v+40|0;o=v+32|0;p=v+24|0;q=v+16|0;t=v+8|0;u=v;r=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();l=(e|0)==0;if(!l){k=0;f=d;do{m=+O(+(1.0-f*f));f=(1.0-m)/(m+1.0);g[r+(k<<2)>>2]=f;k=k+1|0}while((k|0)!=(e|0));h=+g[b>>2];f=+g[b+4>>2];if(!l){k=p+4|0;l=o+4|0;b=q+4|0;n=0;do{if(!n)m=d;else m=+g[r+(n+-1<<2)>>2];m=m*m;g[p>>2]=1.0-m*(h*h-f*f);g[k>>2]=h*-2.0*f*m;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];Sg(o,s);$n(q,h,f,+g[o>>2]+1.0,+g[l>>2]);f=+g[r+(n<<2)>>2]+1.0;h=+g[q>>2]*2.0/f;f=+g[b>>2]*2.0/f;n=n+1|0}while((n|0)!=(e|0))}}else{h=+g[b>>2];f=+g[b+4>>2]}g[u>>2]=h;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Tg(t,s);d=+g[t+4>>2]*.6366197723675814;g[a>>2]=+g[t>>2]*.6366197723675814;g[a+4>>2]=d;i=v;return}function Sg(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,h=0.0,l=0,m=0,n=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();m=f+8|0;n=f;l=c[b>>2]|0;b=c[b+4>>2]|0;c[n>>2]=l;c[n+4>>2]=b;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];h=+vo(m);d=(c[k>>2]=l,+g[k>>2]);e=+O(+((d+h)*.5));d=+O(+((h-d)*.5));h=(c[k>>2]=b,+g[k>>2])>0.0?d:-d;g[a>>2]=e;g[a+4>>2]=h;i=f;return}function Tg(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();h=n+16|0;k=n+8|0;l=n;m=+g[b>>2];f=+g[b+4>>2];d=m*2.0*f;e=m*m-f*f+-1.0;if(m>0.0^f>0.0){g[k>>2]=e;g[k+4>>2]=d;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];o=+vo(h);p=+O(+((o+e)*.5));o=+O(+((o-e)*.5));e=m-p;f=f-(d>0.0?o:-o);g[k>>2]=e;g[k+4>>2]=f;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];m=+Y(+(+vo(h)));g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];f=+Ao(h);m=-m;g[a>>2]=f;a=a+4|0;g[a>>2]=m;i=n;return}else{g[k>>2]=e;g[k+4>>2]=d;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];o=+vo(h);p=+O(+((o+e)*.5));o=+O(+((o-e)*.5));m=p+m;o=(d>0.0?o:-o)+f;g[k>>2]=m;g[k+4>>2]=o;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];p=+Y(+(+vo(h)));g[l>>2]=m;g[l+4>>2]=o;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];o=+Ao(h);p=-p;g[a>>2]=o;a=a+4|0;g[a>>2]=p;i=n;return}}function Ug(a,b,d,e,f,h){a=a|0;b=+b;d=+d;e=e|0;f=f|0;h=h|0;var l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.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,N=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,Y=0;N=i;i=i+144|0;if((i|0)>=(j|0))ba();H=N+128|0;w=N+112|0;v=N+96|0;q=N+120|0;r=N+104|0;t=N+88|0;z=N+80|0;A=N+72|0;C=N+56|0;B=N+40|0;F=N+32|0;D=N+24|0;I=N+16|0;J=N+8|0;L=N;d=b/d;Ga(Wa()|0);Og(d,7,N+64|0,N+48|0);l=+(a>>>0);Og(d,7,H,w);x=+P(+(+X(+(+g[w>>2]*-3.141592653589793/+g[H>>2]))),+(1.0/l));T=x*(x*x);U=x*(x*x);U=U*U;V=x*x;V=V*(x*V);V=V*V;o=x*(x*x);W=o*o;W=o*(W*W);o=x*x;Q=x*x;Q=Q*Q;R=x*x;R=R*R;R=R*R;S=x*x;S=S*S;S=S*S;o=(+P(+x,42.0)+(W*W+(V*V+(U*U+(T*T+(x*x+1.0))))))/((+P(+x,36.0)+(S*(S*(x*S))+(R*R+(x*(Q*Q)+(o*o+x)))))*2.0+1.0);x=o*o*(+O(+x)*4.0);K=~~+M(+(l*.5))>>>0;E=~~l>>>0&1;y=i;i=i+((1*(K<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();G=(K|0)==0;if(!G){m=0;do{g[y+(m<<2)>>2]=((+(m>>>0)+1.0)*2.0+-1.0)/l;m=m+1|0}while((m|0)!=(K|0));s=i;i=i+((1*(K<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!G){m=r+4|0;n=q+4|0;p=0;do{c[r>>2]=c[y+(p<<2)>>2];g[m>>2]=0.0;c[H>>2]=c[r>>2];c[H+4>>2]=c[r+4>>2];Pg(q,H,x,7);Y=c[n>>2]|0;c[s+(p<<3)>>2]=c[q>>2];c[s+(p<<3)+4>>2]=Y;p=p+1|0}while((p|0)!=(K|0));m=i;i=i+((1*(K<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(G)s=m;else{n=t+4|0;p=0;do{$n(t,0.0,.9999999403953552,+g[s+(p<<3)>>2]*x,+g[s+(p<<3)+4>>2]*x);Y=c[n>>2]|0;c[m+(p<<3)>>2]=c[t>>2];c[m+(p<<3)+4>>2]=Y;p=p+1|0}while((p|0)!=(K|0));s=m}}else u=6}else u=6;if((u|0)==6){m=i;i=i+((1*(K<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();s=m}c[v>>2]=0;g[v+4>>2]=1.0/b;c[H>>2]=c[v>>2];c[H+4>>2]=c[v+4>>2];Rg(w,H,d,7);o=-+g[w+4>>2]/l;d=-(1.0-+g[w>>2])/l;r=i;i=i+((1*(K<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!G){l=-o;m=A+4|0;n=z+4|0;p=0;do{g[A>>2]=+g[y+(p<<2)>>2]+d;g[m>>2]=l;c[H>>2]=c[A>>2];c[H+4>>2]=c[A+4>>2];Pg(z,H,x,7);W=+g[z>>2]*.9999999403953552;g[r+(p<<3)>>2]=+g[n>>2]*-.9999999403953552;g[r+(p<<3)+4>>2]=W;p=p+1|0}while((p|0)!=(K|0))}g[B>>2]=-d;g[B+4>>2]=o;c[H>>2]=c[B>>2];c[H+4>>2]=c[B+4>>2];Qg(C,H,x,7);l=+g[C>>2]*.9999999403953552;d=+g[C+4>>2]*-.9999999403953552;if(G)m=0;else{m=D+4|0;n=F+4|0;p=0;q=0;while(1){B=c[r+(p<<3)>>2]|0;C=c[r+(p<<3)+4>>2]|0;Y=q|1;c[f+(q<<3)>>2]=B;c[f+(q<<3)+4>>2]=C;c[D>>2]=B;c[m>>2]=C;c[H>>2]=c[D>>2];c[H+4>>2]=c[D+4>>2];Jo(F,H);C=c[n>>2]|0;c[f+(Y<<3)>>2]=c[F>>2];c[f+(Y<<3)+4>>2]=C;p=p+1|0;if((p|0)==(K|0))break;else q=q+2|0}m=K<<1}r=(E|0)!=0;if(r){g[f+(m<<3)>>2]=d;g[f+(m<<3)+4>>2]=l}if(!G){m=J+4|0;n=I+4|0;p=0;q=0;while(1){F=c[s+(p<<3)>>2]|0;G=c[s+(p<<3)+4>>2]|0;Y=q|1;c[e+(q<<3)>>2]=F;c[e+(q<<3)+4>>2]=G;c[J>>2]=F;c[m>>2]=G;c[H>>2]=c[J>>2];c[H+4>>2]=c[J+4>>2];Jo(I,H);G=c[n>>2]|0;c[e+(Y<<3)>>2]=c[I>>2];c[e+(Y<<3)+4>>2]=G;p=p+1|0;if((p|0)==(K|0))break;else q=q+2|0}}if(r)d=1.0;else d=1.0/+O(+(b*b+1.0));r=h+4|0;g[h>>2]=d;g[r>>2]=0.0;if(!a)l=0.0;else{o=0.0;m=0;while(1){V=+g[f+(m<<3)>>2];W=+g[f+(m<<3)+4>>2];l=o*V+d*W;d=d*V-o*W;g[h>>2]=d;g[r>>2]=l;m=m+1|0;if((m|0)==(a|0))break;else o=l}}p=K<<1;if(!p){i=N;return}q=L+4|0;n=0;while(1){$n(L,d,l,+g[e+(n<<3)>>2],+g[e+(n<<3)+4>>2]);Y=c[L>>2]|0;m=c[q>>2]|0;c[h>>2]=Y;c[r>>2]=m;n=n+1|0;d=(c[k>>2]=Y,+g[k>>2]);if((n|0)==(p|0))break;else l=(c[k>>2]=m,+g[k>>2])}i=N;return}function Vg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0;p=i;n=_(e,c)|0;o=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!((c|0)==0|(e|0)==0)){k=0;do{f=_(k,e)|0;l=+g[a+(k<<2)>>2];h=0;m=1.0;while(1){g[o+(h+f<<2)>>2]=m;h=h+1|0;if((h|0)==(e|0))break;else m=l*m}k=k+1|0}while((k|0)!=(c|0))}f=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(f|0,o|0,n<<2|0)|0;Wg(f,c,e);k=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ae(f,e,c,b,c,1,k,e,1);a=_(e,e)|0;h=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ae(f,e,c,o,c,e,h,e,e);f=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(f|0,h|0,a<<2|0)|0;Yg(f,e,e);Ae(f,e,e,k,e,1,d,e,1);i=p;return}function Wg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;if((i|0)>=(j|0))ba();f=m+32|0;k=m+16|0;l=m;Xg(a,b,d);d=_(d,b)|0;if(!d){i=m;return}b=l+8|0;e=0;do{n=a+(e<<2)|0;h[l>>3]=+g[n>>2];h[b>>3]=0.0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];Io(k,f);g[n>>2]=+h[k>>3];e=e+1|0}while((e|0)!=(d|0));i=m;return}function Xg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;k=i;e=_(d,b)|0;h=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(h|0,a|0,e<<2|0)|0;if((b|0)==0|(d|0)==0){i=k;return}else g=0;do{e=_(g,d)|0;f=0;do{c[a+((_(f,b)|0)+g<<2)>>2]=c[h+(f+e<<2)>>2];f=f+1|0}while((f|0)!=(d|0));g=g+1|0}while((g|0)!=(b|0));i=k;return}function Yg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;if((b|0)!=(d|0)){Pp(25449,40,1,c[2344]|0)|0;lb(1)}l=b<<1;k=(_(l,b)|0)<<2;m=i;i=i+((1*k|0)+15&-16)|0;if((i|0)>=(j|0))ba();e=(b|0)==0;if(e){Zg(m,b,l);i=n;return}f=b<<2;k=0;do{d=_(l,k)|0;eq(m+(d<<2)|0,a+((_(k,b)|0)<<2)|0,f|0)|0;d=d+b|0;h=0;do{g[m+(d+h<<2)>>2]=+((k|0)==(h|0)&1);h=h+1|0}while((h|0)!=(b|0));k=k+1|0}while((k|0)!=(b|0));Zg(m,b,l);if(e){i=n;return}d=b<<2;e=0;do{eq(a+((_(e,b)|0)<<2)|0,m+((_(l,e)|0)+b<<2)|0,d|0)|0;e=e+1|0}while((e|0)!=(b|0));i=n;return}function Zg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;o=(b|0)==0;if(o)return;p=c[2344]|0;q=(d|0)==0;r=(d|0)!=0;e=0;h=0;f=0.0;do{i=e;do{l=+N(+(+g[a+((_(i,d)|0)+e<<2)>>2]));n=(i|0)==(e|0)|l>f;f=n?l:f;h=n?i:h;i=i+1|0}while((i|0)!=(b|0));if(f==0.0)Pp(25490,63,1,p)|0;n=_(e,d)|0;if((e|0)!=(h|0)&r){i=_(h,d)|0;j=0;do{t=a+(j+n<<2)|0;s=c[t>>2]|0;m=a+(j+i<<2)|0;c[t>>2]=c[m>>2];c[m>>2]=s;j=j+1|0}while((j|0)!=(d|0))}k=+g[a+(n+e<<2)>>2];if(!(k==0.0)){if(!q){m=0;do{if((m|0)!=(e|0)){i=_(m,d)|0;l=+g[a+(i+e<<2)>>2]/k;j=0;do{t=a+(j+i<<2)|0;g[t>>2]=+g[a+(j+n<<2)>>2]*l-+g[t>>2];j=j+1|0}while((j|0)!=(d|0))}m=m+1|0}while((m|0)!=(b|0))}}else Pp(25554,42,1,p)|0;e=e+1|0}while((e|0)!=(b|0));if(o|(d|0)==0)return;else i=0;do{e=_(i,d)|0;f=1.0/+g[a+(e+i<<2)>>2];h=0;do{t=a+(h+e<<2)|0;g[t>>2]=+g[t>>2]*f;h=h+1|0}while((h|0)!=(d|0));i=i+1|0}while((i|0)!=(b|0));return}function _g(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,f=0.0;if(!b){f=0.0;return +f}else{e=0;f=1.0;d=0.0}while(1){d=+g[a+(e<<2)>>2]*f+d;e=e+1|0;if((e|0)==(b|0))break;else f=f*c}return +d}function $g(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2344]|0;c[e>>2]=20217;Jp(m,27233,e)|0;lb(1)}if(d>>>0>>0){m=c[2344]|0;c[f>>2]=20217;Jp(m,27301,f)|0;lb(1)}m=Wp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Wp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=ah(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0>>0);d=ah(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function ah(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2344]|0;c[e>>2]=20217;Jp(o,27380,e)|0;lb(1)}if(!d){o=c[2344]|0;c[f>>2]=20217;Jp(o,27452,f)|0;lb(1)}n=Wp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Wp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=kd(l,0)|0;e=e+1|0}while(e>>>0>>0);a=n+8|0;c[a>>2]=k;a=Jc(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;Lc(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=kd(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=Jc(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;Lc(a);i=p;return n|0}function bh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2344]|0;c[g>>2]=20217;Jp(n,27520,g)|0;lb(1)}if(!d){n=c[2344]|0;c[h>>2]=20217;Jp(n,27598,h)|0;lb(1)}if(e<0.0|e>1.0){n=c[2344]|0;c[k>>2]=20217;Jp(n,27675,k)|0;lb(1)}if(f<-1.0|f>1.0){n=c[2344]|0;c[l>>2]=20217;Jp(n,27764,l)|0;lb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=$g(b,g,h)|0;i=m;return n|0}return 0}function ch(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{ld(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Xp(c[e>>2]|0);Oc(c[b+16>>2]|0);Xp(b);Xp(c[a>>2]|0);Xp(a);return}function dh(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{ld(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Oc(c[a+16>>2]|0);Xp(a);return}function eh(a){a=a|0;Lc(c[(c[a+16>>2]|0)+16>>2]|0);return}function fh(a){a=a|0;Lc(c[a+16>>2]|0);return}function gh(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();o=n;m=n+8|0;l=a+16|0;Nc(c[(c[l>>2]|0)+16>>2]|0,b);f=a+12|0;if(!(c[f>>2]|0)){i=n;return}a=0;while(1){h=c[l>>2]|0;k=d+(a<<2)|0;e=c[h+12>>2]|0;if(e>>>0<=a>>>0){f=4;break}Mc(c[h+16>>2]|0,m);md(c[(c[h+20>>2]|0)+(a<<2)>>2]|0,c[m>>2]|0,k);g[k>>2]=+g[k>>2]*+g[h+24>>2];a=a+1|0;if(a>>>0>=(c[f>>2]|0)>>>0){f=6;break}}if((f|0)==4){n=c[2344]|0;c[o>>2]=a;c[o+4>>2]=e;Jp(n,27854,o)|0;lb(1)}else if((f|0)==6){i=n;return}}function hh(a,b){a=a|0;b=+b;Nc(c[a+16>>2]|0,b);return}function ih(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){Mc(c[a+16>>2]|0,f);md(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);g[d>>2]=+g[d>>2]*+g[a+24>>2];i=k;return}else{k=c[2344]|0;c[h>>2]=b;c[h+4>>2]=e;Jp(k,27854,h)|0;lb(1)}}function jh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2344]|0;c[g>>2]=20217;Jp(n,27923,g)|0;lb(1)}if(d>>>0<2){n=c[2344]|0;c[h>>2]=20217;Jp(n,28004,h)|0;lb(1)}if(!e){n=c[2344]|0;c[k>>2]=20217;Jp(n,28086,k)|0;lb(1)}if(f<0.0|f>1.0){n=c[2344]|0;c[l>>2]=20217;Jp(n,28159,l)|0;lb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=ah(b,g,h)|0;i=m;return n|0}return 0}function kh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();m=s+24|0;l=s+16|0;k=s+8|0;h=s;if(!b){r=c[2344]|0;c[h>>2]=20217;Jp(r,25597,h)|0;lb(1)}if(d>>>0<2){r=c[2344]|0;c[k>>2]=20217;Jp(r,25679,k)|0;lb(1)}if(!e){r=c[2344]|0;c[l>>2]=20217;Jp(r,25762,l)|0;lb(1)}if(f<0.0|f>1.0){r=c[2344]|0;c[m>>2]=20217;Jp(r,25836,m)|0;lb(1)}o=_(_(b<<1,d)|0,e)|0;r=o|1;p=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,_(d,b)|0,e,f,0.0,p);q=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=p+(o<<2)|0;n=+g[p>>2];d=(_(_(e,d)|0,b)|0)<<1|1;h=p+4|0;k=p+(o+-1<<2)|0;l=q+(o<<2)|0;f=0.0;m=0;do{do if(m)if((m|0)==(o|0)){g[l>>2]=n-+g[k>>2];break}else{g[q+(m<<2)>>2]=+g[p+(m+1<<2)>>2]-+g[p+(m+-1<<2)>>2];break}else g[q>>2]=+g[h>>2]-+g[a>>2];while(0);t=+N(+(+g[q+(m<<2)>>2]*+g[p+(m<<2)>>2]));f=t>f?t:f;m=m+1|0}while((m|0)!=(d|0));h=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();k=0;do{g[h+(k<<2)>>2]=+g[q+(k<<2)>>2]*.05999999865889549/f;k=k+1|0}while((k|0)!=(d|0));b=ah(b,h,r)|0;i=s;return b|0}function lh(a,b,d,e,f,h,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=+k;l=+l;m=m|0;n=n|0;var 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;B=i;i=i+48|0;if((i|0)>=(j|0))ba();y=B+40|0;s=B+24|0;x=B+8|0;u=B+32|0;z=B+16|0;A=B;if(!(!(f<=0.0)&!(f>=.5))){Pp(25922,54,1,c[2344]|0)|0;lb(1)}if(h<0.0|h>.5){Pp(25977,54,1,c[2344]|0)|0;lb(1)}if(k<=0.0){Pp(26032,54,1,c[2344]|0)|0;lb(1)}if(l<=0.0){Pp(26087,54,1,c[2344]|0)|0;lb(1)}if(!e){Pp(26142,49,1,c[2344]|0)|0;lb(1)}v=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=e&1;o=(e-q|0)>>>1;switch(a|0){case 0:{Lg(e,w,v,s);r=1.0;p=0;break}case 1:{r=+P(10.0,+(k*.10000000149011612));k=+O(+(r+-1.0));if(!q)r=1.0/+O(+r);else r=1.0;Mg(e,k,w,v,s);p=0;break}case 2:{Ng(e,+P(10.0,+(l*-.05000000074505806)),w,v,s);r=1.0;p=o<<1;break}case 3:{r=+P(10.0,+(k*-.05000000074505806));l=+P(10.0,+(l*-.05000000074505806));r=1.0/(r*r);k=+O(+(r+-1.0));l=+O(+(1.0/(l*l)+-1.0));if(!q)r=1.0/+O(+r);else r=1.0;Ug(e,k,l,w,v,s);p=o<<1;break}case 4:{Ig(e,w,v,s);r=1.0;p=0;break}default:{Pp(26192,44,1,c[2344]|0)|0;lb(1)}}o=e<<1;s=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();t=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(b|0){case 0:{k=+S(+(f*3.141592653589793));break}case 1:{k=f*3.141592653589793;k=-+Q(+k)/+R(+k);break}case 2:{k=f*6.283185307179586;k=(+Q(+k)-+Q(+(h*6.283185307179586)))/+R(+k);break}case 3:{k=f*6.283185307179586;k=+R(+k)/(+Q(+k)-+Q(+(h*6.283185307179586)));break}default:k=0.0}f=+N(+k);g[u>>2]=r;g[u+4>>2]=0.0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];mh(w,p,v,e,y,f,s,t,x);if((b|2|0)==3){a=0;do{w=s+(a<<3)|0;v=s+(a<<3)+4|0;f=-+g[v>>2];g[w>>2]=-+g[w>>2];g[v>>2]=f;v=t+(a<<3)|0;w=t+(a<<3)+4|0;f=-+g[w>>2];g[v>>2]=-+g[v>>2];g[w>>2]=f;a=a+1|0}while((a|0)!=(e|0))}if((b|1|0)==3){a=Wa()|0;p=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();nh(s,t,e,h,p,q);e=e<<4;eq(s|0,p|0,e|0)|0;eq(t|0,q|0,e|0)|0;Ga(a|0)}else o=e;p=c[x>>2]|0;a=c[x+4>>2]|0;if((d|0)==1){c[z>>2]=p;c[z+4>>2]=a;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];oh(s,t,o,y,m,n);i=B;return}else{c[A>>2]=p;c[A+4>>2]=a;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];qh(s,t,o,y,m,n);i=B;return}}function mh(a,b,c,d,e,f,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;k=k|0;l=l|0;m=m|0;var n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0;x=i;i=i+48|0;if((i|0)>=(j|0))ba();u=x+32|0;v=x+16|0;w=x;o=+g[e>>2];n=+g[e+4>>2];if(!d){q=o;f=n;k=m+4|0;g[m>>2]=q;g[k>>2]=f;i=x;return}r=u+8|0;s=v+8|0;t=w+8|0;e=0;do{if(e>>>0>>0){q=+g[a+(e<<3)>>2]*f;p=+g[a+(e<<3)+4>>2]*f;_n(u,q+1.0,p,1.0-q,-p);p=+h[r>>3];q=+h[u>>3]}else{p=0.0;q=-1.0}A=k+(e<<3)|0;g[A>>2]=q;z=k+(e<<3)+4|0;g[z>>2]=p;q=+g[c+(e<<3)>>2]*f;y=+g[c+(e<<3)+4>>2]*f;_n(v,q+1.0,y,1.0-q,-y);y=+h[v>>3];q=+h[s>>3];g[l+(e<<3)>>2]=y;g[l+(e<<3)+4>>2]=q;_n(w,1.0-y,-q,1.0-+g[A>>2],-+g[z>>2]);q=+h[w>>3];y=+h[t>>3];p=o;o=q*p-y*n;n=y*p+q*n;e=e+1|0}while((e|0)!=(d|0));A=m+4|0;g[m>>2]=o;g[A>>2]=n;i=x;return}function nh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var k=0.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.0,G=0.0,H=0.0,I=0,J=0.0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0;D=i;i=i+80|0;if((i|0)>=(j|0))ba();u=D+64|0;v=D+56|0;w=D+48|0;x=D+40|0;y=D+32|0;z=D+24|0;A=D+16|0;B=D+8|0;C=D;e=+Q(+(e*6.283185307179586));if(!d){i=D;return}k=e*e;l=w+4|0;m=v+4|0;n=y+4|0;o=x+4|0;p=A+4|0;q=z+4|0;r=C+4|0;s=B+4|0;t=0;do{E=a+(t<<3)|0;P=+g[E>>2];I=a+(t<<3)+4|0;F=+g[I>>2];H=P+1.0;M=H*e;N=F*e;J=H*k;O=F*k;G=J*H-O*F;H=J*F+O*H;g[w>>2]=G-P*4.0;g[l>>2]=H-F*4.0;c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];yo(v,u);F=(+g[m>>2]+N)*.5;L=t<<1;g[f+(L<<3)>>2]=(+g[v>>2]+M)*.5;g[f+(L<<3)+4>>2]=F;H=H-+g[I>>2]*4.0;g[y>>2]=G-+g[E>>2]*4.0;g[n>>2]=H;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];yo(x,u);N=(N-+g[o>>2])*.5;E=L|1;g[f+(E<<3)>>2]=(M-+g[x>>2])*.5;g[f+(E<<3)+4>>2]=N;I=b+(t<<3)|0;N=+g[I>>2];K=b+(t<<3)+4|0;M=+g[K>>2];H=N+1.0;G=H*e;F=M*e;P=H*k;O=M*k;J=P*H-O*M;H=P*M+O*H;g[A>>2]=J-N*4.0;g[p>>2]=H-M*4.0;c[u>>2]=c[A>>2];c[u+4>>2]=c[A+4>>2];yo(z,u);M=(+g[q>>2]+F)*.5;g[h+(L<<3)>>2]=(+g[z>>2]+G)*.5;g[h+(L<<3)+4>>2]=M;H=H-+g[K>>2]*4.0;g[C>>2]=J-+g[I>>2]*4.0;g[r>>2]=H;c[u>>2]=c[C>>2];c[u+4>>2]=c[C+4>>2];yo(B,u);F=(F-+g[s>>2])*.5;g[h+(E<<3)>>2]=(G-+g[B>>2])*.5;g[h+(E<<3)+4>>2]=F;t=t+1|0}while((t|0)!=(d|0));i=D;return}function oh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var k=0.0,l=0.0,m=0,n=0;n=i;m=i;i=i+((1*(d+1<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();ph(b,d,m);b=0;do{c[h+(b<<2)>>2]=c[m+(d-b<<3)>>2];b=b+1|0}while(b>>>0<=d>>>0);ph(a,d,m);l=+g[e>>2];k=+g[e+4>>2];b=0;do{e=d-b|0;g[f+(b<<2)>>2]=l*+g[m+(e<<3)>>2]-k*+g[m+(e<<3)+4>>2];b=b+1|0}while(b>>>0<=d>>>0);i=n;return}function ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;if(!b){g[c>>2]=0.0;g[c+4>>2]=0.0;return}else d=0;while(1){g[c+(d<<3)>>2]=+((d|0)==0&1);g[c+(d<<3)+4>>2]=0.0;if((d|0)==(b|0)){p=0;break}else d=d+1|0}do{m=a+(p<<3)|0;n=a+(p<<3)+4|0;p=p+1|0;k=c+(p<<3)|0;l=c+(p<<3)+4|0;e=+g[l>>2];i=-+g[m>>2];f=+g[k>>2];h=-+g[n>>2];o=p;while(1){q=o;o=o+-1|0;j=c+(o<<3)|0;d=c+(o<<3)+4|0;r=e*i+f*h+ +g[d>>2];g[k>>2]=f*i-e*h+ +g[j>>2];g[l>>2]=r;i=-+g[m>>2];h=-+g[n>>2];f=+g[j>>2];e=+g[d>>2];if((q|0)<=1)break;else{k=j;l=d}}g[j>>2]=f*i-e*h;g[d>>2]=e*i+f*h}while((p|0)!=(b|0));return}function qh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0;o=i;n=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();rh(a,c,9.999999974752427e-07,n);m=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();rh(b,c,9.999999974752427e-07,m);k=c&1;l=(c-k|0)>>>1;if(!l)a=0;else{a=c>>>1;b=0;do{t=b<<1;x=+g[m+(t<<3)>>2];v=+g[m+(t<<3)+4>>2];u=t|1;y=+g[m+(u<<3)>>2];w=+g[m+(u<<3)+4>>2];r=+g[n+(t<<3)>>2];h=+g[n+(t<<3)+4>>2];s=+g[n+(u<<3)>>2];q=+g[n+(u<<3)+4>>2];u=b*3|0;g[f+(u<<2)>>2]=1.0;t=u+1|0;g[f+(t<<2)>>2]=-x-y;p=u+2|0;g[f+(p<<2)>>2]=y*x-w*v;g[e+(u<<2)>>2]=1.0;g[e+(t<<2)>>2]=-r-s;g[e+(p<<2)>>2]=s*r-q*h;b=b+1|0}while((b|0)!=(a|0));a=l*3|0}if(k|0){t=c+-1|0;x=-+g[m+(t<<3)>>2];y=-+g[n+(t<<3)>>2];g[f+(a<<2)>>2]=1.0;t=a+1|0;g[f+(t<<2)>>2]=x;u=a+2|0;g[f+(u<<2)>>2]=0.0;g[e+(a<<2)>>2]=1.0;g[e+(t<<2)>>2]=y;g[e+(u<<2)>>2]=0.0}u=l+k|0;h=+P(+(+g[d>>2]),+(1.0/+(u>>>0)));if(!u){i=o;return}a=c&1;a=((c-a|0)>>>1)+a|0;b=0;do{u=b*3|0;t=e+(u<<2)|0;g[t>>2]=+g[t>>2]*h;t=e+(u+1<<2)|0;g[t>>2]=+g[t>>2]*h;u=e+(u+2<<2)|0;g[u>>2]=+g[u>>2]*h;b=b+1|0}while((b|0)!=(a|0));i=o;return}function rh(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0;A=i;if(e<0.0){Pp(26237,53,1,c[2344]|0)|0;lb(1)}z=i;i=i+((1*d|0)+15&-16)|0;if((i|0)>=(j|0))ba();dq(z|0,0,d|0)|0;y=(d|0)==0;if(y){b=0;sh(f,d,b);i=A;return}else{x=0;k=0;h=0}do{p=z+x|0;a:do if((a[p>>0]|0)==0?(v=b+(x<<3)|0,w=+g[b+(x<<3)+4>>2],!(+N(+w)>0]|0)==0):0)?(r=b+(l<<3)|0,s=b+(l<<3)+4|0,t=+g[s>>2],!(+N(+t)>2],+N(+(u-+g[r>>2]))>>0>=d>>>0)break a}B=k+1|0;g[f+(k<<3)>>2]=m;g[f+(k<<3)+4>>2]=w;o=c[o>>2]|0;c[f+(B<<3)>>2]=c[n>>2];c[f+(B<<3)+4>>2]=o;a[p>>0]=1;a[l>>0]=1;k=k+2|0;h=h+1|0}while(0);x=x+1|0}while((x|0)!=(d|0));if(y){B=h;sh(f,d,B);i=A;return}n=c[2344]|0;o=0;do{l=z+o|0;do if(!(a[l>>0]|0)){m=+g[b+(o<<3)+4>>2];if(m>e){Pp(26291,61,1,n)|0;break}else{c[f+(k<<3)>>2]=c[b+(o<<3)>>2];g[f+(k<<3)+4>>2]=m;a[l>>0]=1;k=k+1|0;break}}while(0);o=o+1|0}while((o|0)!=(d|0));sh(f,d,h);i=A;return}function sh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;if((i|0)>=(j|0))ba();e=x+32|0;f=x+24|0;h=x+16|0;o=x+8|0;p=x;q=(d|0)==0;if(!q){r=p+4|0;s=o+4|0;t=h+4|0;u=f+4|0;w=0;do{v=w<<1;l=a+(v<<3)|0;n=a+(v<<3)+4|0;m=+g[n>>2];k=+g[l>>2];if(!(m<0.0)){g[h>>2]=k;g[t>>2]=m;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Jo(f,e);k=+g[f>>2];m=+g[u>>2]}g[l>>2]=k;g[n>>2]=m;g[p>>2]=k;g[r>>2]=m;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];Jo(o,e);n=c[s>>2]|0;v=v|1;c[a+(v<<3)>>2]=c[o>>2];c[a+(v<<3)+4>>2]=n;w=w+1|0}while((w|0)!=(d|0));if(!q){q=d+-1|0;o=0;do{if(q>>>0>o>>>0){e=d;p=q;while(1){e=e<<1;f=e+-4|0;h=a+(f<<3)|0;k=+g[h>>2];l=p<<1;n=a+(l<<3)|0;m=+g[n>>2];if(k>m){v=a+(f<<3)+4|0;t=c[v>>2]|0;s=a+(l<<3)+4|0;w=c[s>>2]|0;g[h>>2]=m;c[v>>2]=w;g[n>>2]=k;c[s>>2]=t;s=e+-3|0;n=a+(s<<3)|0;t=c[n>>2]|0;s=a+(s<<3)+4|0;v=c[s>>2]|0;w=l|1;u=a+(w<<3)|0;w=a+(w<<3)+4|0;r=c[w>>2]|0;c[n>>2]=c[u>>2];c[s>>2]=r;c[u>>2]=t;c[w>>2]=v}e=p+-1|0;if(e>>>0>o>>>0){w=p;p=e;e=w}else break}}o=o+1|0}while((o|0)!=(d|0))}}e=d<<1;if(e>>>0>=b>>>0){i=x;return}o=b+-1|0;do{if(o>>>0>e>>>0){f=b;n=o;while(1){f=f+-2|0;h=a+(f<<3)|0;k=+g[h>>2];l=a+(n<<3)|0;m=+g[l>>2];if(k>m){v=a+(f<<3)+4|0;w=c[v>>2]|0;d=a+(n<<3)+4|0;u=c[d>>2]|0;g[h>>2]=m;c[v>>2]=u;g[l>>2]=k;c[d>>2]=w}f=n+-1|0;if(f>>>0>e>>>0){d=n;n=f;f=d}else break}}e=e+1|0}while((e|0)!=(b|0));i=x;return}function th(a,b,d,e,f){a=+a;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();l=q+32|0;n=q+24|0;m=q+16|0;k=q+8|0;h=q;if(a<=0.0){p=c[2344]|0;c[h>>2]=20217;Jp(p,26353,h)|0;lb(1)}if(!b){p=c[2344]|0;c[k>>2]=20217;Jp(p,26423,k)|0;lb(1)}if(!f){p=c[2344]|0;c[m>>2]=20217;Jp(p,26496,m)|0;lb(1)}if(d<=0.0|d>=.5){p=c[2344]|0;c[n>>2]=20217;Jp(p,26573,n)|0;lb(1)}if(e<=0.0){p=c[2344]|0;c[l>>2]=20217;Jp(p,26634,l)|0;lb(1)}p=Wp(56)|0;g[p+12>>2]=a;g[p+16>>2]=1.0/a;c[p>>2]=b;g[p+8>>2]=d;g[p+4>>2]=e;c[p+44>>2]=f;l=_(b<<1,f)|0;h=l|1;m=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();n=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=+(f>>>0);pd(h,d/o,e,0.0,m);k=(_(b,f)|0)<<1|1;a=0.0;h=0;do{a=+g[m+(h<<2)>>2]+a;h=h+1|0}while((h|0)!=(k|0));a=o/a;h=0;do{g[n+(h<<2)>>2]=+g[m+(h<<2)>>2]*a;h=h+1|0}while((h|0)!=(k|0));f=ah(f,n,l)|0;c[p+48>>2]=f;Lc(c[f+16>>2]|0);c[p+52>>2]=1;f=p+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;i=q;return p|0}function uh(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+48>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{ld(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Xp(c[e>>2]|0);Oc(c[b+16>>2]|0);Xp(b);Xp(a);return}function vh(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;k=k|0;var 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.0,G=0.0;E=i;i=i+32|0;if((i|0)>=(j|0))ba();A=E+24|0;C=E+16|0;B=E+8|0;z=E;y=E+28|0;D=a+28|0;if(!h){C=a+44|0;d=0;B=0;c[e>>2]=d;c[k>>2]=B;e=c[D>>2]|0;k=c[C>>2]|0;k=e>>>0>>0;k=k&1;i=E;return k|0}q=a+32|0;r=a+48|0;m=a+44|0;s=a+52|0;t=a+36|0;u=a+20|0;v=a+24|0;w=a+40|0;p=a+16|0;n=0;x=0;a:while(1){l=c[D>>2]|0;b:while(1){if(!l)if(+g[q>>2]==0.0){if((n|0)==(d|0)){l=d;a=x;o=25;break a}Nc(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);l=c[D>>2]|0;n=n+1|0}else l=0;a=c[m>>2]|0;if(l>>>0>=a>>>0)do{if((n|0)==(d|0)){l=d;a=x;o=25;break a}g[u>>2]=+g[u>>2]+-1.0;g[v>>2]=+g[v>>2]-+(a>>>0);c[D>>2]=l-a;Nc(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);n=n+1|0;l=c[D>>2]|0;a=c[m>>2]|0}while(l>>>0>=a>>>0);switch(c[s>>2]|0){case 0:{l=n;o=16;break b}case 1:break;default:{o=24;break a}}o=c[r>>2]|0;a=c[o+12>>2]|0;if(a>>>0<=l>>>0){o=19;break a}Mc(c[o+16>>2]|0,y);md(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,t);g[t>>2]=+g[t>>2]*+g[o+24>>2];a=c[D>>2]|0;l=c[m>>2]|0;if((a|0)!=(l+-1|0)){l=a;o=20;break}c[s>>2]=0;c[D>>2]=l}if((o|0)==16){a=c[r>>2]|0;if(!(c[a+12>>2]|0)){o=17;break}Mc(c[a+16>>2]|0,y);md(c[c[a+20>>2]>>2]|0,c[y>>2]|0,w);G=+g[w>>2]*+g[a+24>>2];g[w>>2]=G;F=+g[q>>2];g[f+(x<<2)>>2]=G*F+(1.0-F)*+g[t>>2];F=+g[u>>2]+ +g[p>>2];g[u>>2]=F;F=+((c[m>>2]|0)>>>0)*F;g[v>>2]=F;o=~~+M(+F);c[D>>2]=o;g[q>>2]=F-+(o|0);c[s>>2]=1}else if((o|0)==20){o=c[r>>2]|0;a=c[o+12>>2]|0;l=l+1|0;if(a>>>0<=l>>>0){o=21;break}Mc(c[o+16>>2]|0,y);md(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,w);F=+g[w>>2]*+g[o+24>>2];g[w>>2]=F;G=+g[q>>2];g[f+(x<<2)>>2]=F*G+(1.0-G)*+g[t>>2];G=+g[u>>2]+ +g[p>>2];g[u>>2]=G;G=+((c[m>>2]|0)>>>0)*G;g[v>>2]=G;l=~~+M(+G);c[D>>2]=l;g[q>>2]=G-+(l|0);l=n}a=x+1|0;if(a>>>0>>0){n=l;x=a}else{o=25;break}}if((o|0)==17){E=c[2344]|0;c[z>>2]=0;c[z+4>>2]=0;Jp(E,27854,z)|0;lb(1)}else if((o|0)==19){E=c[2344]|0;c[B>>2]=l;c[B+4>>2]=a;Jp(E,27854,B)|0;lb(1)}else if((o|0)==21){E=c[2344]|0;c[C>>2]=l;c[C+4>>2]=a;Jp(E,27854,C)|0;lb(1)}else if((o|0)==24){E=c[2344]|0;c[A>>2]=20217;Jp(E,26717,A)|0;lb(1)}else if((o|0)==25){c[e>>2]=l;c[k>>2]=a;e=c[D>>2]|0;k=c[m>>2]|0;k=e>>>0>>0;k=k&1;i=E;return k|0}return 0}function wh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;if(!d){g=c[2344]|0;c[e>>2]=26768;Jp(g,26773,e)|0;lb(1)}if(!a){g=c[2344]|0;c[f>>2]=26768;Jp(g,26840,f)|0;lb(1)}g=Wp(20)|0;c[g+4>>2]=d;c[g+8>>2]=a;e=Wp(d<<2)|0;c[g>>2]=e;f=d+-1|0;a=0;do{c[e+(a<<2)>>2]=c[b+(f-a<<2)>>2];a=a+1|0}while(a>>>0>>0);b=Pc(d)|0;c[g+12>>2]=b;c[g+16>>2]=hd(e,d)|0;Qc(b);i=h;return g|0}function xh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2344]|0;c[g>>2]=26768;Jp(n,26911,g)|0;lb(1)}if(!d){n=c[2344]|0;c[h>>2]=26768;Jp(n,26989,h)|0;lb(1)}if(e<0.0|e>1.0){n=c[2344]|0;c[k>>2]=26768;Jp(n,27062,k)|0;lb(1)}if(f<-1.0|f>1.0){n=c[2344]|0;c[l>>2]=26768;Jp(n,27147,l)|0;lb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=wh(b,g,h)|0;i=m;return n|0}return 0}function yh(a){a=a|0;Tc(c[a+12>>2]|0);id(c[a+16>>2]|0);Xp(c[a>>2]|0);Xp(a);return}function zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();f=n+16|0;m=n+8|0;g=n;h=a+8|0;if(!(c[h>>2]|0)){i=n;return}k=a+12|0;l=g+4|0;a=a+16|0;e=0;do{o=c[k>>2]|0;p=c[b+(e<<3)+4>>2]|0;c[g>>2]=c[b+(e<<3)>>2];c[l>>2]=p;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Sc(o,f);if(!e){Rc(c[k>>2]|0,m);jd(c[a>>2]|0,c[m>>2]|0,d)}e=e+1|0}while(e>>>0<(c[h>>2]|0)>>>0);i=n;return}function Ah(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2344]|0;c[e>>2]=26768;Jp(m,27233,e)|0;lb(1)}if(d>>>0>>0){m=c[2344]|0;c[f>>2]=26768;Jp(m,27301,f)|0;lb(1)}m=Wp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Wp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=Bh(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0>>0);d=Bh(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function Bh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2344]|0;c[e>>2]=26768;Jp(o,27380,e)|0;lb(1)}if(!d){o=c[2344]|0;c[f>>2]=26768;Jp(o,27452,f)|0;lb(1)}n=Wp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Wp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=hd(l,0)|0;e=e+1|0}while(e>>>0>>0);a=n+8|0;c[a>>2]=k;a=Pc(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;Qc(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=hd(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=Pc(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;Qc(a);i=p;return n|0}function Ch(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2344]|0;c[g>>2]=26768;Jp(n,27520,g)|0;lb(1)}if(!d){n=c[2344]|0;c[h>>2]=26768;Jp(n,27598,h)|0;lb(1)}if(e<0.0|e>1.0){n=c[2344]|0;c[k>>2]=26768;Jp(n,27675,k)|0;lb(1)}if(f<-1.0|f>1.0){n=c[2344]|0;c[l>>2]=26768;Jp(n,27764,l)|0;lb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=Ah(b,g,h)|0;i=m;return n|0}return 0}function Dh(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{id(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Xp(c[e>>2]|0);Tc(c[b+16>>2]|0);Xp(b);Xp(c[a>>2]|0);Xp(a);return}function Eh(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{id(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Tc(c[a+16>>2]|0);Xp(a);return}function Fh(a){a=a|0;Qc(c[(c[a+16>>2]|0)+16>>2]|0);return}function Gh(a){a=a|0;Qc(c[a+16>>2]|0);return}function Hh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();k=m+16|0;n=m;f=m+8|0;l=a+16|0;e=c[b+4>>2]|0;h=c[(c[l>>2]|0)+16>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];Sc(h,k);h=a+12|0;if(!(c[h>>2]|0)){i=m;return}a=0;while(1){e=c[l>>2]|0;f=d+(a<<3)|0;b=c[e+12>>2]|0;if(b>>>0<=a>>>0){e=4;break}Rc(c[e+16>>2]|0,k);jd(c[(c[e+20>>2]|0)+(a<<2)>>2]|0,c[k>>2]|0,f);p=+g[e+24>>2];e=d+(a<<3)+4|0;o=+g[e>>2]*p;g[f>>2]=+g[f>>2]*p;g[e>>2]=o;a=a+1|0;if(a>>>0>=(c[h>>2]|0)>>>0){e=6;break}}if((e|0)==4){m=c[2344]|0;c[n>>2]=a;c[n+4>>2]=b;Jp(m,27854,n)|0;lb(1)}else if((e|0)==6){i=m;return}}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d+8|0;f=d;a=c[a+16>>2]|0;g=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Sc(a,e);i=d;return}function Jh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){Rc(c[a+16>>2]|0,f);jd(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);m=+g[a+24>>2];h=d+4|0;l=+g[h>>2]*m;g[d>>2]=+g[d>>2]*m;g[h>>2]=l;i=k;return}else{k=c[2344]|0;c[h>>2]=b;c[h+4>>2]=e;Jp(k,27854,h)|0;lb(1)}}function Kh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2344]|0;c[g>>2]=26768;Jp(n,27923,g)|0;lb(1)}if(d>>>0<2){n=c[2344]|0;c[h>>2]=26768;Jp(n,28004,h)|0;lb(1)}if(!e){n=c[2344]|0;c[k>>2]=26768;Jp(n,28086,k)|0;lb(1)}if(f<0.0|f>1.0){n=c[2344]|0;c[l>>2]=26768;Jp(n,28159,l)|0;lb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=Bh(b,g,h)|0;i=m;return n|0}return 0}function Lh(a,b){a=a|0;b=+b;g[a+24>>2]=b;return}function Mh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();h=q+8|0;f=q;if(!b){p=c[2344]|0;c[f>>2]=26768;Jp(p,28244,f)|0;lb(1)}if(!e){p=c[2344]|0;c[h>>2]=26768;Jp(p,28305,h)|0;lb(1)}p=Wp(36)|0;c[p+16>>2]=b;l=p+20|0;c[l>>2]=e;o=e>>>0>b>>>0?e:b;n=p+12|0;c[n>>2]=o;c[p+24>>2]=0;k=p+4|0;c[k>>2]=Wp(e<<2)|0;f=Wp(b<<2)|0;c[p>>2]=f;m=+g[d>>2];h=0;do{g[f+(h<<2)>>2]=+g[a+(h<<2)>>2]/m;h=h+1|0}while(h>>>0>>0);e=c[k>>2]|0;f=c[l>>2]|0;h=0;do{g[e+(h<<2)>>2]=+g[d+(h<<2)>>2]/m;h=h+1|0}while(h>>>0>>0);e=Wp(o<<3)|0;c[p+8>>2]=e;if(!o){i=q;return p|0}f=c[n>>2]|0;h=0;do{g[e+(h<<3)>>2]=0.0;g[e+(h<<3)+4>>2]=0.0;h=h+1|0}while(h>>>0>>0);i=q;return p|0}function Nh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;var k=0,l=0,m=0,n=0,o=0,p=0;p=i;k=d<<((b|1|0)==3&1);o=k&1;n=(c|0)==0;o=((k-o|0)>>>1)+o|0;k=n?o*3|0:k+1|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();lh(a,b,c,d,e,f,g,h,l,m);b=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(k|0){d=k<<2;eq(b|0,l|0,d|0)|0;eq(c|0,m|0,d|0)|0}if(n){o=Oh(b,c,o)|0;i=p;return o|0}else{o=Mh(b,k,c,k)|0;i=p;return o|0}return 0}function Oh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=i;i=i+32|0;if((i|0)>=(j|0))ba();e=t;r=t+16|0;s=t+4|0;if(!d){q=c[2344]|0;c[e>>2]=26768;Jp(q,28368,e)|0;lb(1)}p=Wp(36)|0;c[p+24>>2]=1;c[p+32>>2]=d;q=Wp(d<<2)|0;c[p+28>>2]=q;c[p+12>>2]=d<<1;e=d*12|0;n=Wp(e)|0;c[p>>2]=n;o=Wp(e)|0;c[p+4>>2]=o;eq(n|0,a|0,e|0)|0;eq(o|0,b|0,e|0)|0;e=s+4|0;b=s+8|0;a=r+4|0;f=r+8|0;k=0;do{l=k*3|0;h=n+(l<<2)|0;l=o+(l<<2)|0;c[r>>2]=c[l>>2];c[r+4>>2]=c[l+4>>2];c[r+8>>2]=c[l+8>>2];c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[s+8>>2]=c[h+8>>2];h=Wp(96)|0;u=+g[r>>2];g[h>>2]=+g[s>>2]/u;g[h+4>>2]=+g[e>>2]/u;g[h+8>>2]=+g[b>>2]/u;g[h+12>>2]=1.0;g[h+16>>2]=+g[a>>2]/u;g[h+20>>2]=+g[f>>2]/u;l=h+24|0;m=l+72|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[q+(k<<2)>>2]=h;k=k+1|0}while(k>>>0>>0);i=t;return p|0}function Ph(a){a=a|0;var b=0,d=0,e=0;Xp(c[a>>2]|0);Xp(c[a+4>>2]|0);if((c[a+24>>2]|0)!=1){Xp(c[a+8>>2]|0);Xp(a);return}b=a+32|0;d=a+28|0;if(c[b>>2]|0){e=0;do{Xp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Xp(a);return}function Qh(a){a=a|0;var b=0,d=0,e=0,f=0;if((c[a+24>>2]|0)==1){f=a+32|0;if(!(c[f>>2]|0))return;a=a+28|0;b=0;do{d=(c[(c[a>>2]|0)+(b<<2)>>2]|0)+24|0;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));b=b+1|0}while(b>>>0<(c[f>>2]|0)>>>0);return}else{d=a+12|0;if(!(c[d>>2]|0))return;a=a+8|0;b=0;do{f=c[a>>2]|0;g[f+(b<<3)>>2]=0.0;g[f+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}}function Rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0;l=c[b>>2]|0;j=c[b+4>>2]|0;if(c[a+24>>2]|0){i=a+32|0;if(!(c[i>>2]|0)){h=0;b=0}else{f=(c[k>>2]=j,+g[k>>2]);b=a+28|0;h=0;e=(c[k>>2]=l,+g[k>>2]);do{a=c[(c[b>>2]|0)+(h<<2)>>2]|0;x=a+80|0;u=c[x>>2]|0;w=a+84|0;t=c[w>>2]|0;c[a+88>>2]=u;c[a+92>>2]=t;j=a+72|0;v=c[j>>2]|0;l=a+76|0;p=+g[l>>2];c[x>>2]=v;g[w>>2]=p;o=+g[a+16>>2];s=(c[k>>2]=v,+g[k>>2]);n=+g[a+20>>2];r=(c[k>>2]=u,+g[k>>2]);m=(c[k>>2]=t,+g[k>>2]);e=e-o*s-n*r;n=f-o*p-n*m;g[j>>2]=e;g[l>>2]=n;o=+g[a>>2];q=+g[a+4>>2];f=+g[a+8>>2];e=q*s+o*e+f*r;f=q*p+o*n+f*m;h=h+1|0}while(h>>>0<(c[i>>2]|0)>>>0);h=(g[k>>2]=e,c[k>>2]|0);b=(g[k>>2]=f,c[k>>2]|0)}c[d>>2]=h;c[d+4>>2]=b;return}b=c[a+12>>2]|0;h=b+-1|0;if(h|0){i=a+8|0;while(1){w=b+-2|0;b=c[i>>2]|0;x=c[b+(w<<3)+4>>2]|0;c[b+(h<<3)>>2]=c[b+(w<<3)>>2];c[b+(h<<3)+4>>2]=x;b=h+-1|0;if(!b)break;else{x=h;h=b;b=x}}}f=(c[k>>2]=l,+g[k>>2]);e=(c[k>>2]=j,+g[k>>2]);i=c[a+20>>2]|0;if(i>>>0>1){j=c[a+4>>2]|0;h=a+8|0;b=c[h>>2]|0;l=1;do{s=+g[j+(l<<2)>>2];f=f-+g[b+(l<<3)>>2]*s;e=e-+g[b+(l<<3)+4>>2]*s;l=l+1|0}while((l|0)!=(i|0))}else{b=a+8|0;h=b;b=c[b>>2]|0}g[b>>2]=f;g[b+4>>2]=e;j=c[a+16>>2]|0;if(!j){f=0.0;e=0.0}else{i=c[a>>2]|0;b=c[h>>2]|0;h=0;f=0.0;e=0.0;do{s=+g[i+(h<<2)>>2];f=+g[b+(h<<3)>>2]*s+f;e=+g[b+(h<<3)+4>>2]*s+e;h=h+1|0}while((h|0)!=(j|0))}g[d>>2]=f;g[d+4>>2]=e;return}function Sh(a,b){a=a|0;b=+b;return Nh(0,0,0,a,b,0.0,.10000000149011612,60.0)|0}function Th(a){a=+a;var b=0,c=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b+8|0;c=b;g[d>>2]=1.0;g[d+4>>2]=-1.0;g[c>>2]=1.0;g[c+4>>2]=a+-1.0;c=Mh(d,2,c,2)|0;i=b;return c|0}function Uh(a){a=a|0;if(cp(a,28449)|0)if(cp(a,28456)|0)if(cp(a,28459)|0)if(cp(a,28464)|0)if(cp(a,28469)|0)if(cp(a,28475)|0)if(cp(a,28484)|0)if(cp(a,28493)|0)if(cp(a,28501)|0)if(cp(a,28507)|0)if(cp(a,28511)|0)if(cp(a,28518)|0)if(cp(a,28525)|0)if(!(cp(a,28531)|0))a=14;else{a=(cp(a,28538)|0)==0;a=a?15:0}else a=13;else a=12;else a=11;else a=10;else a=9;else a=8;else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;return a|0}function Vh(a){a=a|0;c[a+16>>2]=c[a+8>>2];return}function Wh(a){a=a|0;var b=0,d=0;d=a+16|0;b=cd(c[d>>2]|0,c[a+4>>2]|0)|0;c[a+20>>2]=b;c[d>>2]=(c[d>>2]<<1|b)&c[a+12>>2];return b|0}function Xh(a){a=a|0;fq(a|0,42856,40)|0;return}function Yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a+-2|0)>>>0>13){Pp(20334,42,1,c[2344]|0)|0;lb(1)}g=Wp(24)|0;c[g>>2]=a;c[g+4>>2]=b>>>1;f=g+8|0;c[f>>2]=0;if(!a)b=0;else{b=0;e=0;while(1){b=b<<1|d&1;e=e+1|0;if(e>>>0>=a>>>0)break;else d=d>>>1}c[f>>2]=b}c[g+12>>2]=(1<>2]=b;c[g+20>>2]=0;return g|0}function Zh(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=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.0,G=0.0;E=i;i=i+48|0;if((i|0)>=(j|0))ba();x=E+32|0;y=E+24|0;z=E+16|0;A=E+8|0;B=E;if(!b){Pp(28548,62,1,c[2344]|0)|0;lb(1)}if(d<=0.0){Pp(28611,85,1,c[2344]|0)|0;lb(1)}C=Wp(80)|0;D=C+4|0;c[D>>2]=b;g[C+8>>2]=d;d=+(b>>>0);g[C+12>>2]=1.0/d;d=2.5132741603225375/d;w=C+28|0;g[w>>2]=d;u=~~+Z(+(+N(+(e/d))));v=C+24|0;u=u>>>0<2?2:u;c[v>>2]=u;g[C+32>>2]=+(u>>>0)*d;u=b<<3;k=Wp(u)|0;c[C>>2]=k;eq(k|0,a|0,u|0)|0;u=C+16|0;c[u>>2]=Pc(b)|0;k=C+60|0;c[k>>2]=Ec(c[D>>2]|0)|0;a=c[v>>2]|0;f=a<<2;l=C+20|0;c[l>>2]=Wp(f)|0;b=Wp(f)|0;m=C+36|0;c[m>>2]=b;n=C+44|0;c[n>>2]=Wp(f)|0;o=C+48|0;c[o>>2]=Wp(f)|0;c[C+40>>2]=Wp(f)|0;f=c[D>>2]|0;p=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!a){B=c[u>>2]|0;Qc(B);B=c[k>>2]|0;Fc(B);B=c[D>>2]|0;D=C+76|0;c[D>>2]=B;D=C+72|0;c[D>>2]=0;D=C+52|0;c[D>>2]=0;D=C+56|0;c[D>>2]=0;D=C+64|0;g[D>>2]=0.0;D=c[n>>2]|0;B=c[v>>2]|0;B=B<<2;dq(D|0,0,B|0)|0;B=c[o>>2]|0;D=c[v>>2]|0;D=D<<2;dq(B|0,0,D|0)|0;i=E;return C|0}q=z+4|0;r=y+4|0;s=B+4|0;t=A+4|0;h=0;while(1){g[b+(h<<2)>>2]=+g[w>>2]*(+(h>>>0)-+((a+-1|0)>>>0)*.5);if(!f)a=0;else{b=0;do{f=c[C>>2]|0;a=c[f+(b<<3)+4>>2]|0;c[z>>2]=c[f+(b<<3)>>2];c[q>>2]=a;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Jo(y,x);F=+g[y>>2];e=+g[r>>2];d=-(+(b>>>0)*+g[(c[m>>2]|0)+(h<<2)>>2]);g[B>>2]=-0.0;g[s>>2]=d;c[x>>2]=c[B>>2];c[x+4>>2]=c[B+4>>2];Ho(A,x);d=+g[A>>2];G=+g[t>>2];g[p+(b<<3)>>2]=d*F-G*e;g[p+(b<<3)+4>>2]=G*F+d*e;b=b+1|0;a=c[D>>2]|0}while(b>>>0>>0)}a=Xc(p,a)|0;c[(c[l>>2]|0)+(h<<2)>>2]=a;h=h+1|0;a=c[v>>2]|0;if(h>>>0>=a>>>0)break;b=c[m>>2]|0;f=c[D>>2]|0}B=c[u>>2]|0;Qc(B);B=c[k>>2]|0;Fc(B);B=c[D>>2]|0;D=C+76|0;c[D>>2]=B;D=C+72|0;c[D>>2]=0;D=C+52|0;c[D>>2]=0;D=C+56|0;c[D>>2]=0;D=C+64|0;g[D>>2]=0.0;D=c[n>>2]|0;B=c[v>>2]|0;B=B<<2;dq(D|0,0,B|0)|0;B=c[o>>2]|0;D=c[v>>2]|0;D=D<<2;dq(B|0,0,D|0)|0;i=E;return C|0}function _h(a){a=a|0;var b=0;Qc(c[a+16>>2]|0);Fc(c[a+60>>2]|0);c[a+76>>2]=c[a+4>>2];c[a+72>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;g[a+64>>2]=0.0;b=a+24|0;dq(c[a+44>>2]|0,0,c[b>>2]<<2|0)|0;dq(c[a+48>>2]|0,0,c[b>>2]<<2|0)|0;return}function $h(a){a=a|0;var b=0,d=0,e=0;Tc(c[a+16>>2]|0);b=a+24|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Zc(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Xp(c[a+36>>2]|0);Xp(c[a+40>>2]|0);Xp(c[a+44>>2]|0);Xp(c[a+48>>2]|0);Gc(c[a+60>>2]|0);Xp(c[a>>2]|0);Xp(a);return}function ai(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,l=0,m=0.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.0,F=0.0,G=0.0;D=i;i=i+48|0;if((i|0)>=(j|0))ba();v=D+32|0;x=D+24|0;y=D+8|0;w=D;A=D+16|0;l=a+16|0;C=c[l>>2]|0;B=c[b>>2]|0;t=c[b+4>>2]|0;c[A>>2]=B;c[A+4>>2]=t;c[v>>2]=c[A>>2];c[v+4>>2]=c[A+4>>2];Sc(C,v);h=(c[k>>2]=B,+g[k>>2]);m=(c[k>>2]=t,+g[k>>2]);c[y>>2]=B;c[y+4>>2]=t;c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];Jo(x,v);m=+g[x>>2]*h-+g[x+4>>2]*m;t=a+60|0;Ic(c[t>>2]|0,v);Hc(c[t>>2]|0,m);t=a+64|0;m=+g[t>>2]+m-+g[v>>2];m=m<1.1920928955078125e-07?1.1920928955078125e-07:m;g[t>>2]=m;t=a+12|0;B=a+68|0;g[B>>2]=m*+g[t>>2];C=a+76|0;b=c[C>>2]|0;if(b|0){c[C>>2]=b+-1;d=0;i=D;return d|0}A=a+44|0;z=a+48|0;s=a+24|0;fq(c[A>>2]|0,c[z>>2]|0,c[s>>2]<<2|0)|0;u=a+40|0;fq(c[z>>2]|0,c[u>>2]|0,c[s>>2]<<2|0)|0;Rc(c[l>>2]|0,x);if(!(c[s>>2]|0)){b=a+52|0;r=c[u>>2]|0;q=0}else{l=a+20|0;n=y+4|0;o=w+4|0;b=a+52|0;p=0;m=0.0;while(1){ed(c[(c[l>>2]|0)+(p<<2)>>2]|0,c[x>>2]|0,y);r=c[n>>2]|0;c[w>>2]=c[y>>2];c[o>>2]=r;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];h=+vo(v);h=+g[t>>2]*h/+O(+(+g[B>>2]));r=c[u>>2]|0;g[r+(p<<2)>>2]=h;if(h>m)c[b>>2]=p;else h=m;p=p+1|0;q=c[s>>2]|0;if(p>>>0>=q>>>0)break;else m=h}}l=c[b>>2]|0;m=+g[r+(l<<2)>>2];p=a+72|0;switch(c[p>>2]|0){case 0:{if(!(m>+g[a+8>>2])){d=0;i=D;return d|0}c[a+56>>2]=l;c[p>>2]=1;d=0;i=D;return d|0}case 1:{n=a+56|0;o=c[n>>2]|0;b=c[z>>2]|0;h=+g[b+(o<<2)>>2];if(m>h){c[n>>2]=l;d=0;i=D;return d|0}if((q|0)==1){g[e>>2]=0.0;h=0.0}else{E=+g[(c[A>>2]|0)+(o<<2)>>2];G=+g[((o|0)==0?b+4|0:b+(o+-1<<2)|0)>>2];F=+g[b+(((o|0)==(q+-1|0)?-1:1)+o<<2)>>2];m=+g[r+(o<<2)>>2];h=h*-2.0;g[e>>2]=+g[(c[a+36>>2]|0)+(o<<2)>>2]-(F-G)*.5*+g[a+28>>2]/(G+h+F);h=(m-E)*.5/(E+h+m);h=h<-.49900001287460327?-.49900001287460327:h;h=h>.49900001287460327?.49900001287460327:h}g[d>>2]=h;g[f>>2]=+O(+(+g[B>>2]));c[p>>2]=0;c[C>>2]=(c[a+4>>2]|0)>>>2;d=1;i=D;return d|0}default:{Pp(28697,69,1,c[2344]|0)|0;lb(1)}}return 0}function bi(a){a=a|0;if(!a)return;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function ci(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();e=a;b=Wp(36)|0;c[b>>2]=di(48)|0;c[b+8>>2]=2;c[b+12>>2]=1;d=ug(1,1,1,1)|0;c[b+4>>2]=d;d=xg(d)|0;c[b+24>>2]=d;f=d<<3;c[b+28>>2]=f;Up(e,f,2);c[b+16>>2]=Wp(((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)<<1)|0;c[b+32>>2]=d<<1;c[b+20>>2]=Wp(d<<3)|0;i=a;return b|0}function di(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();b=n;do switch(a|0){case 1:{m=ei(1)|0;i=n;return m|0}case 2:{m=ei(2)|0;i=n;return m|0}case 3:{m=ei(3)|0;i=n;return m|0}case 4:{m=ei(4)|0;i=n;return m|0}case 5:{m=ei(5)|0;i=n;return m|0}case 6:{m=ei(6)|0;i=n;return m|0}case 7:{m=ei(7)|0;i=n;return m|0}case 8:{m=ei(8)|0;i=n;return m|0}case 9:{b=Wp(252)|0;c[b>>2]=9;c[b+76>>2]=0;c[b+80>>2]=0;c[b+4>>2]=1;c[b+8>>2]=2;m=b+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[b+108>>2]=1.5707963705062866;a=b+104|0;g[a>>2]=0.0;g[b+12>>2]=1.5707963705062866;g[b+100>>2]=1.5707963705062866;c[m>>2]=1;c[b+240>>2]=2;g[b+84>>2]=1.0;g[b+88>>2]=0.0;c[b+92>>2]=1065353216;g[b+96>>2]=0.0;if(!(li(9)|0)){m=b;i=n;return m|0}g[a>>2]=0.0;m=b;i=n;return m|0}case 10:{a=Wp(252)|0;c[a>>2]=10;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=2;d=a+8|0;c[d>>2]=4;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.7853981852531433;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.7853981852531433;g[a+16>>2]=1.5707963705062866;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 11:{a=Wp(252)|0;c[a>>2]=11;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=3;d=a+8|0;c[d>>2]=8;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.39269909262657166;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.39269909262657166;g[a+16>>2]=.7853981852531433;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 12:{d=Wp(252)|0;c[d>>2]=12;c[d+76>>2]=0;c[d+80>>2]=0;e=d+4|0;c[e>>2]=4;f=d+8|0;c[f>>2]=16;h=d+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=d+100|0;l=d+108|0;g[l>>2]=.19634954631328583;m=d+104|0;g[m>>2]=0.0;a=d+12|0;g[a>>2]=.19634954631328583;g[d+16>>2]=.39269909262657166;if((c[e>>2]|0)>>>0>2){b=2;do{g[a+(b<<2)>>2]=+(1<>2];b=b+1|0}while(b>>>0<(c[e>>2]|0)>>>0)}l=c[d>>2]|0;g[k>>2]=(1.0-1.0/+((c[f>>2]|0)>>>0))*3.141592653589793;c[h>>2]=1;c[d+240>>2]=2;g[d+84>>2]=1.0;g[d+88>>2]=0.0;c[d+92>>2]=1065353216;g[d+96>>2]=0.0;if(!(li(l)|0)){m=d;i=n;return m|0}g[m>>2]=0.0;m=d;i=n;return m|0}case 13:{a=Wp(252)|0;c[a>>2]=13;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=5;d=a+8|0;c[d>>2]=32;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.09817477315664291;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.09817477315664291;g[a+16>>2]=.19634954631328583;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 14:{a=Wp(252)|0;c[a>>2]=14;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=6;d=a+8|0;c[d>>2]=64;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.04908738657832146;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.04908738657832146;g[a+16>>2]=.09817477315664291;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 15:{a=Wp(252)|0;c[a>>2]=15;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=7;d=a+8|0;c[d>>2]=128;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.02454369328916073;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.02454369328916073;g[a+16>>2]=.04908738657832146;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 16:{a=Wp(252)|0;c[a>>2]=16;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=8;d=a+8|0;c[d>>2]=256;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.012271846644580364;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.012271846644580364;g[a+16>>2]=.02454369328916073;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+(1<>2];m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 17:{a=Wp(252)|0;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[a+100>>2]=1.0;c[a>>2]=17;g[a+12>>2]=1.0;c[m>>2]=3;c[a+240>>2]=4;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(17)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 18:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=2;c[h+8>>2]=4;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.4472135901451111;c[h>>2]=18;f=h+12|0;g[f>>2]=.4472135901451111;g[h+16>>2]=.8944271802902222;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 19:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=3;c[h+8>>2]=8;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.2182178944349289;c[h>>2]=19;f=h+12|0;g[f>>2]=.2182178944349289;g[h+16>>2]=.4364357888698578;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 20:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=4;c[h+8>>2]=16;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.10846523195505142;c[h>>2]=20;f=h+12|0;g[f>>2]=.10846523195505142;g[h+16>>2]=.21693046391010284;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 21:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=5;c[h+8>>2]=32;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.05415303632616997;c[h>>2]=21;f=h+12|0;g[f>>2]=.05415303632616997;g[h+16>>2]=.10830607265233994;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 22:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=6;c[h+8>>2]=64;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.02706659771502018;c[h>>2]=22;f=h+12|0;g[f>>2]=.02706659771502018;g[h+16>>2]=.05413319543004036;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 23:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=7;c[h+8>>2]=128;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.013532060198485851;c[h>>2]=23;f=h+12|0;g[f>>2]=.013532060198485851;g[h+16>>2]=.027064120396971703;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 24:{h=Wp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=8;c[h+8>>2]=256;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.006765875034034252;c[h>>2]=24;f=h+12|0;g[f>>2]=.006765875034034252;g[h+16>>2]=.013531750068068504;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+(1<>2];b=b+1|0;a=c[d>>2]|0}while(b>>>0>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ki(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(li(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 25:{m=qi(2)|0;i=n;return m|0}case 26:{m=qi(3)|0;i=n;return m|0}case 27:{m=qi(4)|0;i=n;return m|0}case 28:{m=qi(5)|0;i=n;return m|0}case 29:{m=qi(6)|0;i=n;return m|0}case 30:{m=qi(7)|0;i=n;return m|0}case 31:{m=qi(8)|0;i=n;return m|0}case 32:{m=qi(9)|0;i=n;return m|0}case 33:{m=qi(10)|0;i=n;return m|0}case 34:{m=qi(11)|0;i=n;return m|0}case 35:{m=qi(12)|0;i=n;return m|0}case 36:{m=qi(13)|0;i=n;return m|0}case 37:{m=qi(14)|0;i=n;return m|0}case 38:{m=qi(15)|0;i=n;return m|0}case 39:{m=qi(16)|0;i=n;return m|0}case 40:{m=ti(2)|0;i=n;return m|0}case 41:{m=ti(3)|0;i=n;return m|0}case 42:{m=ti(4)|0;i=n;return m|0}case 43:{m=ti(5)|0;i=n;return m|0}case 44:{m=ti(6)|0;i=n;return m|0}case 45:{m=ti(7)|0;i=n;return m|0}case 46:{m=ti(8)|0;i=n;return m|0}case 47:{a=Wp(252)|0;c[a>>2]=47;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=5;c[a+240>>2]=6;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(47)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 48:{a=Wp(252)|0;c[a>>2]=48;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=2;c[a+8>>2]=4;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=7;c[a+240>>2]=8;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(48)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 49:{a=Wp(252)|0;c[a>>2]=49;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=9;c[a+240>>2]=10;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(49)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 50:{a=Wp(252)|0;c[a>>2]=50;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=5;c[a+8>>2]=32;b=a+236|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;d=Wp(64)|0;c[a+100>>2]=d;e=2408;f=d+64|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));c[b>>2]=11;c[a+240>>2]=12;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(50)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 51:{a=Wp(252)|0;c[a>>2]=51;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=7;c[a+8>>2]=128;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;l=Wp(256)|0;c[a+100>>2]=l;eq(l|0,2472,256)|0;c[m>>2]=13;c[a+240>>2]=14;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(li(51)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 52:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,2728,16);i=n;return m|0}case 53:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,3880,16);i=n;return m|0}case 54:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=5;c[m+8>>2]=32;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(32,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,4008,32);i=n;return m|0}case 55:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,4264,64);i=n;return m|0}case 56:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=7;c[m+8>>2]=128;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(128,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,4776,128);i=n;return m|0}case 57:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=8;c[m+8>>2]=256;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(256,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,5800,256);i=n;return m|0}case 58:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,2856,64);i=n;return m|0}case 59:{m=Wp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Yp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Ii(m,3368,64);i=n;return m|0}case 60:{Pp(29628,105,1,c[2344]|0)|0;lb(1);break}default:{n=c[2344]|0;c[b>>2]=a;Jp(n,29734,b)|0;lb(1)}}while(0);return 0}function ei(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0;i=Wp(252)|0;switch(a|0){case 1:{c[i>>2]=1;break}case 2:{c[i>>2]=2;break}case 3:{c[i>>2]=3;break}case 4:{c[i>>2]=4;break}case 5:{c[i>>2]=5;break}case 6:{c[i>>2]=6;break}case 7:{c[i>>2]=7;break}case 8:{c[i>>2]=8;break}default:{Pp(28767,57,1,c[2344]|0)|0;lb(1)}}j=i+76|0;c[j>>2]=0;k=i+80|0;c[k>>2]=0;l=i+4|0;c[l>>2]=a;a=1<>2]=a;h=i+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;m=3.141592653589793/+(a>>>0);a=i+100|0;b=i+104|0;g[b>>2]=m;d=i+12|0;g[d>>2]=m;if((c[l>>2]|0)>>>0>1){e=1;do{g[d+(e<<2)>>2]=+g[b>>2]*+(1<>>0<(c[l>>2]|0)>>>0)}f=c[f>>2]|0;g[a>>2]=(1.0-1.0/+(f>>>0))*3.141592653589793;c[h>>2]=17;c[i+240>>2]=18;c[j>>2]=Wp(f<<3)|0;ji(i);c[k>>2]=1;if((c[l>>2]|0)>>>0>2)ki(i,2);g[i+84>>2]=1.0;g[i+88>>2]=0.0;c[i+92>>2]=1065353216;g[i+96>>2]=0.0;if(!(li(c[i>>2]|0)|0))return i|0;g[b>>2]=0.0;return i|0}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+((gi(b)|0)<<1>>>0);e=e*+g[a+104>>2];d=+R(+e);g[c>>2]=+Q(+e);g[c+4>>2]=d;return}function gi(a){a=a|0;return a>>>1^a^a>>>2^a>>>3^a>>>4^a>>>5^a>>>6^a>>>7^a>>>8^a>>>9^a>>>10^a>>>11^a>>>12^a>>>13^a>>>14^a>>>15^a>>>16|0}function hi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();m=q+8|0;n=q;p=c[b>>2]|0;o=c[b+4>>2]|0;c[n>>2]=p;c[n+4>>2]=o;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+Ao(m);e=e-+g[a+100>>2];f=e;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;e=f<-3.141592653589793?f+6.283185307179586:e;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=+g[a+12+(k+n<<2)>>2]+e;h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}n=ii(b)|0;c[d>>2]=n;e=+((gi(n)|0)<<1>>>0);e=e*+g[a+104>>2];f=+R(+e);g[a+92>>2]=+Q(+e);g[a+96>>2]=f;c[a+84>>2]=p;c[a+88>>2]=o;i=q;return}function ii(a){a=a|0;return a>>>1^a|0}function ji(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+76|0;b=c[f>>2]|0;if(!b){Pp(28825,65,1,c[2344]|0)|0;lb(1)}g=a+8|0;e=c[g>>2]|0;if((e+-1|0)>>>0>65535){Pp(28891,60,1,c[2344]|0)|0;lb(1)}h=a+236|0;d=c[h>>2]|0;if(!d){Pp(28952,70,1,c[2344]|0)|0;lb(1)}if(!e)return;ub[d&31](a,0,b);if((c[g>>2]|0)>>>0>1)b=1;else return;do{ub[c[h>>2]&31](a,b,(c[f>>2]|0)+(b<<3)|0);b=b+1|0}while(b>>>0<(c[g>>2]|0)>>>0);return}function ki(b,e){b=b|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0.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;A=i;i=i+16|0;if((i|0)>=(j|0))ba();v=A+8|0;w=A;h=b+8|0;y=c[h>>2]|0;if((y+-1|0)>>>0>>0){Pp(29023,63,1,c[2344]|0)|0;lb(1)}c[b+248>>2]=e;z=b+244|0;c[z>>2]=Wp(_(y,e)|0)|0;x=i;i=i+((1*(y<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=(y|0)==0;if(q){i=A;return}k=b+80|0;l=b+236|0;m=b+76|0;if(!y){u=c[2344]|0;Pp(29087,65,1,u)|0;lb(1)}else{n=x;f=0}while(1){if(!(c[k>>2]|0))ub[c[l>>2]&31](b,f,n);else{t=c[m>>2]|0;u=c[t+(f<<3)+4>>2]|0;c[n>>2]=c[t+(f<<3)>>2];c[x+(f<<3)+4>>2]=u}f=f+1|0;if(f>>>0>=y>>>0)break;if((c[h>>2]|0)>>>0>f>>>0)n=x+(f<<3)|0;else{p=10;break}}if((p|0)==10){u=c[2344]|0;Pp(29087,65,1,u)|0;lb(1)}if(q){i=A;return}f=y&255;if(e|0){k=0;do{h=_(k,e)|0;l=0;do{a[(c[z>>2]|0)+(l+h)>>0]=f;l=l+1|0}while((l|0)!=(e|0));k=k+1|0}while((k|0)!=(y|0));if(q){i=A;return}}l=(e|0)==0;m=w+4|0;s=0;do{if(!l){n=x+(s<<3)|0;b=x+(s<<3)+4|0;p=_(s,e)|0;u=0;do{q=u+p|0;r=1.0e9;t=0;while(1){h=c[z>>2]|0;k=0;f=(s|0)!=(t|0)&1;do{f=(d[h+(k+p)>>0]|0|0)==(t|0)?0:f;k=k+1|0}while((k|0)!=(e|0));o=+g[b>>2]-+g[x+(t<<3)+4>>2];g[w>>2]=+g[n>>2]-+g[x+(t<<3)>>2];g[m>>2]=o;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];o=+vo(v);if((f|0)!=0&o>2]|0)+q>>0]=t;else o=r;t=t+1|0;if((t|0)==(y|0))break;else r=o}u=u+1|0}while((u|0)!=(e|0))}s=s+1|0}while((s|0)!=(y|0));i=A;return}function li(a){a=a|0;return (a+-9|0)>>>0<8|0}function mi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+((gi(b)|0)<<1>>>0);b=a+104|0;d=d*+g[a+108>>2]+ +g[b>>2];d=d-(d>6.283185307179586?6.283185307179586:0.0);g[b>>2]=d;e=+Q(+d);d=+R(+d);g[c>>2]=e;g[c+4>>2]=d;g[a+84>>2]=e;g[a+88>>2]=d;return}function ni(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();n=r+16|0;l=r+8|0;m=r;q=c[b>>2]|0;o=c[b+4>>2]|0;c[l>>2]=q;c[l+4>>2]=o;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];p=+Ao(n);c[m>>2]=q;c[m+4>>2]=o;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];e=+Ao(n);n=a+104|0;e=e-+g[n>>2];g[n>>2]=p;e=e-+g[a+100>>2];f=e;if(!(f>3.141592653589793)){if(f<-3.141592653589793)e=f+6.283185307179586}else e=f+-6.283185307179586;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=+g[a+12+(k+n<<2)>>2]+e;h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}c[d>>2]=ii(b)|0;f=p-e;p=+R(+f);g[a+92>>2]=+Q(+f);g[a+96>>2]=p;c[a+84>>2]=q;c[a+88>>2]=o;i=r;return}function oi(a,b,d){a=a|0;b=b|0;d=d|0;b=(gi(b)|0)<<1;g[d>>2]=+(1-(c[a+8>>2]|0)+b|0)*+g[a+100>>2];g[d+4>>2]=0.0;return}function pi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,i=0,j=0,l=0,m=0,n=0;l=c[a+4>>2]|0;if(!l){f=c[b>>2]|0;e=0}else{h=+g[b>>2];m=l+-1|0;f=(g[k>>2]=h,c[k>>2]|0);j=0;n=0;e=0;while(1){e=e<<1;if(h>0.0){h=h-+g[a+12+(j+m<<2)>>2];e=e|1}else h=+g[a+12+(j+m<<2)>>2]+h;i=n+1|0;if((i|0)==(l|0))break;else{j=~n;n=i}}}n=ii(e)|0;c[d>>2]=n;d=(gi(n)|0)<<1;g[a+92>>2]=+(1-(c[a+8>>2]|0)+d|0)*+g[a+100>>2];g[a+96>>2]=0.0;b=c[b+4>>2]|0;c[a+84>>2]=f;c[a+88>>2]=b;return}function qi(a){a=a|0;var b=0,d=0,e=0.0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!a){Pp(29153,66,1,c[2344]|0)|0;lb(1)}m=Wp(252)|0;if(a>>>0>16){Pp(29220,64,1,c[2344]|0)|0;lb(1)}i=m+76|0;c[i>>2]=0;j=m+80|0;c[j>>2]=0;k=m+4|0;c[k>>2]=a;d=1<>2]=d;h=m+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;if(!(a&1)){b=a>>>1;c[m+100>>2]=b;f=m+104|0;c[f>>2]=b;a=b}else{n=(a+1|0)>>>1;c[m+100>>2]=n;b=(a+-1|0)>>>1;f=m+104|0;c[f>>2]=b;a=n}c[m+108>>2]=1<>2]=1<=512){if((d|0)<8192)switch(d|0){case 512:{g[m+116>>2]=.048450157046318054;c[m>>2]=32;e=.048450157046318054;break a}case 1024:{g[m+116>>2]=.03829197958111763;c[m>>2]=33;e=.03829197958111763;break a}case 2048:{g[m+116>>2]=.02421087585389614;c[m>>2]=34;e=.02421087585389614;break a}case 4096:{g[m+116>>2]=.01913897506892681;c[m>>2]=35;e=.01913897506892681;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}if((d|0)<32768)if((d|0)<16384)switch(d|0){case 8192:{g[m+116>>2]=.012103663757443428;c[m>>2]=36;e=.012103663757443428;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}else switch(d|0){case 16384:{g[m+116>>2]=.009568611159920692;c[m>>2]=37;e=.009568611159920692;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}else if((d|0)<65536)switch(d|0){case 32768:{g[m+116>>2]=6.0516102239489555e-03;c[m>>2]=38;e=6.0516102239489555e-03;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}else switch(d|0){case 65536:{g[m+116>>2]=.004784196149557829;c[m>>2]=39;e=.004784196149557829;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}}else switch(d|0){case 4:{g[m+116>>2]=.7071067690849304;c[m>>2]=25;e=.7071067690849304;break a}case 8:{g[m+116>>2]=.40824830532073975;c[m>>2]=26;e=.40824830532073975;break a}case 16:{g[m+116>>2]=.3162277638912201;c[m>>2]=27;e=.3162277638912201;break a}case 32:{g[m+116>>2]=.1961161345243454;c[m>>2]=28;e=.1961161345243454;break a}case 64:{g[m+116>>2]=.15430335700511932;c[m>>2]=29;e=.15430335700511932;break a}case 128:{g[m+116>>2]=.09712858498096466;c[m>>2]=30;e=.09712858498096466;break a}case 256:{g[m+116>>2]=.0766965001821518;c[m>>2]=31;e=.0766965001821518;break a}default:{n=c[2344]|0;Pp(29285,58,1,n)|0;lb(1)}}while(0);b=m+116|0;d=m+12|0;g[d>>2]=e;if((c[k>>2]|0)>>>0>1){a=1;do{g[d+(a<<2)>>2]=+g[b>>2]*+(1<>>0<(c[k>>2]|0)>>>0)}a=c[l>>2]|0;c[h>>2]=19;c[m+240>>2]=20;c[i>>2]=Wp(a<<3)|0;ji(m);c[j>>2]=1;a=c[k>>2]|0;if((a|0)!=3){if(a>>>0>3)ki(m,4)}else ki(m,3);g[m+84>>2]=1.0;g[m+88>>2]=0.0;c[m+92>>2]=1065353216;g[m+96>>2]=0.0;if(!(li(c[m>>2]|0)|0))return m|0;g[f>>2]=0.0;return m|0}function ri(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0;i=c[a+104>>2]|0;h=gi(b>>>i)|0;b=gi((1<>2];e=+((b<<1|1)-(c[a+112>>2]|0)|0)*f;g[d>>2]=+((h<<1|1)-(c[a+108>>2]|0)|0)*f;g[d+4>>2]=e;return}function si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0;p=+g[b>>2];j=c[a+100>>2]|0;if(!j){o=p;n=0}else{k=j+-1|0;f=p;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=+g[a+12+(i+k<<2)>>2]+f;h=l+1|0;if((h|0)==(j|0)){o=f;n=e;break}else{i=~l;l=h}}}m=+g[b+4>>2];b=a+104|0;j=c[b>>2]|0;if(!j){f=m;e=0}else{k=j+-1|0;f=m;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=+g[a+12+(i+k<<2)>>2]+f;h=l+1|0;if((h|0)==(j|0))break;else{i=~l;l=h}}}l=ii(n)|0;n=ii(e)|0;c[d>>2]=(l<>2])+n;g[a+92>>2]=p-o;g[a+96>>2]=m-f;g[a+84>>2]=p;g[a+88>>2]=m;return}function ti(a){a=a|0;var b=0,d=0,e=0,f=0,h=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;v=i;i=i+16|0;if((i|0)>=(j|0))ba();b=v;switch(a|0){case 2:{u=1960;break}case 3:{u=2008;break}case 4:{u=2056;break}case 5:{u=2116;break}case 6:{u=2188;break}case 7:{u=2272;break}case 8:{u=2380;break}default:{t=c[2344]|0;c[b>>2]=a;Jp(t,29344,b)|0;lb(1)}}p=Wp(252)|0;c[p>>2]=c[u>>2];q=p+76|0;c[q>>2]=0;r=p+80|0;c[r>>2]=0;s=p+4|0;c[s>>2]=a;t=p+8|0;c[t>>2]=1<>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;l=c[u+4>>2]|0;n=p+100|0;c[n>>2]=l;if(l){a=c[u+8>>2]|0;d=p+104|0;e=c[u+12>>2]|0;f=p+136|0;h=c[u+16>>2]|0;k=p+200|0;l=0;do{c[d+(l<<2)>>2]=c[a+(l<<2)>>2];c[f+(l<<2)>>2]=c[e+(l<<2)>>2];c[k+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0;b=c[n>>2]|0}while(l>>>0>>0);if((b|0)!=1)m=12}else m=12;if((m|0)==12){b=c[u+20>>2]|0;a=p+168|0;d=0;do{c[a+(d<<2)>>2]=c[b+(d<<2)>>2];d=d+1|0}while(d>>>0<((c[n>>2]|0)+-1|0)>>>0)}n=c[t>>2]|0;m=Wp(n)|0;c[p+232>>2]=m;fq(m|0,c[u+24>>2]|0,n|0)|0;c[o>>2]=21;c[p+240>>2]=22;switch(c[s>>2]|0){case 2:{ki(p,3);break}case 3:{ki(p,3);break}case 4:{ki(p,4);break}case 5:{ki(p,4);break}case 6:{ki(p,4);break}case 7:{ki(p,5);break}case 8:{ki(p,5);break}default:{}}c[q>>2]=Wp(c[t>>2]<<3)|0;ji(p);c[r>>2]=1;g[p+84>>2]=1.0;g[p+88>>2]=0.0;c[p+92>>2]=1065353216;g[p+96>>2]=0.0;if(!(li(c[p>>2]|0)|0)){i=v;return p|0}g[p+104>>2]=0.0;i=v;return p|0}function ui(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;if((c[a+8>>2]|0)>>>0<=b>>>0){Pp(29407,59,1,c[2344]|0)|0;return}j=d[(c[a+232>>2]|0)+b>>0]|0;f=c[a+100>>2]|0;a:do if(!f){h=0;b=0}else{h=0;i=0;while(1){b=(c[a+104+(h<<2)>>2]|0)+i|0;if(j>>>0>>0){b=i;break a}h=h+1|0;if(h>>>0>=f>>>0){h=0;break}else i=b}}while(0);l=+g[a+136+(h<<2)>>2];m=+g[a+200+(h<<2)>>2]+ +((j-b|0)>>>0)*2.0*3.141592653589793/+((c[a+104+(h<<2)>>2]|0)>>>0);k=+R(+m)*l;g[e>>2]=+Q(+m)*l;g[e+4>>2]=k;return}function vi(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();k=p+16|0;m=p+8|0;l=p;o=c[b>>2]|0;n=c[b+4>>2]|0;c[m>>2]=o;c[m+4>>2]=n;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];f=+vo(k);b=(c[a+100>>2]|0)+-1|0;a:do if(!b)h=0;else{h=0;while(1){if(f<+g[a+168+(h<<2)>>2])break a;h=h+1|0;if(h>>>0>=b>>>0){h=b;break}}}while(0);c[l>>2]=o;c[l+4>>2]=n;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];f=+Ao(k);if(f<0.0)f=f+6.283185307179586;b=c[a+104+(h<<2)>>2]|0;b=(~~+cq(+((f-+g[a+200+(h<<2)>>2])/(6.283185307179586/+(b>>>0))))>>>0>>>0)%(b>>>0)|0;if(h){k=0;do{b=(c[a+104+(k<<2)>>2]|0)+b|0;k=k+1|0}while((k|0)!=(h|0))}m=a+8|0;k=c[m>>2]|0;b:do if(!k)h=0;else{l=c[a+232>>2]|0;h=0;while(1){if((d[l+h>>0]|0|0)==(b|0))break b;h=h+1|0;if(h>>>0>=k>>>0){h=0;break}}}while(0);c[e>>2]=h;b=a+92|0;if((c[m>>2]|0)>>>0<=h>>>0){Pp(29087,65,1,c[2344]|0)|0;lb(1)}if(!(c[a+80>>2]|0)){ub[c[a+236>>2]&31](a,h,b);e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}else{m=c[a+76>>2]|0;e=c[m+(h<<3)+4>>2]|0;c[b>>2]=c[m+(h<<3)>>2];c[a+96>>2]=e;e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}}function wi(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?-1.0:1.0;g[c+4>>2]=0.0;return}function xi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>0.0);c[d>>2]=f&1;g[a+92>>2]=f?-1.0:1.0;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function yi(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b&1|0?-.7071067690849304:.7071067690849304;g[c+4>>2]=b&2|0?-.7071067690849304:.7071067690849304;return}function zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0;f=+g[b>>2];h=!(f>0.0);e=+g[b+4>>2];b=e>0.0;c[d>>2]=(b?0:2)|h&1;g[a+92>>2]=h?-.7071067690849304:.7071067690849304;g[a+96>>2]=b?.7071067690849304:-.7071067690849304;g[a+84>>2]=f;g[a+88>>2]=e;return}function Ai(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?0.0:1.4142135381698608;g[c+4>>2]=0.0;return}function Bi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>.7071067811865476);c[d>>2]=f&1;g[a+92>>2]=f?0.0:1.4142135381698608;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function Ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&7;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>3&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Jo(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Jo(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Di(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+24|0;u=y+16|0;v=y+8|0;w=y;h=y+64|0;k=y+56|0;l=y+48|0;m=y+40|0;o=y+32|0;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Jo(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Jo(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}k=a+100|0;b=o+4|0;m=c[k>>2]|0;e=q-+g[m+4>>2];g[o>>2]=p-+g[m>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+vo(s);c[d>>2]=0;m=c[k>>2]|0;f=q-+g[m+12>>2];g[o>>2]=p-+g[m+8>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+vo(s);if(f>2]=1;e=f}m=c[k>>2]|0;f=q-+g[m+20>>2];g[o>>2]=p-+g[m+16>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+vo(s);if(f>2]=2;e=f}m=c[k>>2]|0;f=q-+g[m+28>>2];g[o>>2]=p-+g[m+24>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+vo(s);if(f>2]=3;e=f}m=c[k>>2]|0;f=q-+g[m+36>>2];g[o>>2]=p-+g[m+32>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+vo(s);if(f>2]=4;else f=e;m=c[k>>2]|0;e=q-+g[m+44>>2];g[o>>2]=p-+g[m+40>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+vo(s);if(e>2]=5;f=e}m=c[k>>2]|0;e=q-+g[m+52>>2];g[o>>2]=p-+g[m+48>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+vo(s);if(e>2]=6;else e=f;m=c[k>>2]|0;q=q-+g[m+60>>2];g[o>>2]=p-+g[m+56>>2];g[b>>2]=q;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];if(+vo(s)>2]=7;b=7}else b=c[d>>2]|0;o=b|n<<3;c[d>>2]=o;h=a+92|0;d=b&7;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>3&3|0){case 0:{g[h>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Jo(t,s);w=c[t+4>>2]|0;c[h>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Jo(v,s);q=-+g[v+4>>2];g[h>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[h>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&31;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>5&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Jo(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Jo(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+64|0;u=y+40|0;v=y+24|0;w=y+16|0;h=y+56|0;k=y+48|0;l=y+32|0;m=y+8|0;o=y;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Jo(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Jo(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}k=a+100|0;b=o+4|0;f=0.0;h=0;while(1){m=c[k>>2]|0;e=q-+g[m+(h<<3)+4>>2];g[o>>2]=p-+g[m+(h<<3)>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+vo(s);if((h|0)==0|e>2]=h;else e=f;h=h+1|0;if((h|0)==32)break;else f=e}m=c[d>>2]|0;o=m|n<<5;c[d>>2]=o;b=a+92|0;d=m&31;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>5&3|0){case 0:{g[b>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Jo(t,s);w=c[t+4>>2]|0;c[b>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Jo(v,s);q=-+g[v+4>>2];g[b>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[b>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Gi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0>b>>>0){e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}else{Pp(29467,52,1,c[2344]|0)|0;lb(1)}}function Hi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();f=t+8|0;h=t;s=a+8|0;if(!(c[s>>2]|0))e=0;else{l=+g[b>>2];m=+g[b+4>>2];n=a+76|0;o=h+4|0;p=0.0;q=0;e=0;while(1){r=c[n>>2]|0;k=m-+g[r+(q<<3)+4>>2];g[h>>2]=l-+g[r+(q<<3)>>2];g[o>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];k=+vo(f);r=(q|0)==0|k>>0>=(c[s>>2]|0)>>>0)break;else p=r?k:p}}c[d>>2]=e;if((c[s>>2]|0)>>>0>e>>>0){s=c[a+76>>2]|0;d=c[s+(e<<3)+4>>2]|0;c[a+92>>2]=c[s+(e<<3)>>2];c[a+96>>2]=d;d=c[b+4>>2]|0;c[a+84>>2]=c[b>>2];c[a+88>>2]=d;i=t;return}else{Pp(29467,52,1,c[2344]|0)|0;lb(1)}}function Ii(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();n=q+8|0;o=q;if((c[a>>2]|0)!=60){Pp(29520,56,1,c[2344]|0)|0;lb(1)}p=a+8|0;if((c[p>>2]|0)!=(d|0)){Pp(29577,50,1,c[2344]|0)|0;lb(1)}if(d){e=a+76|0;h=0;do{s=c[b+(h<<3)+4>>2]|0;r=c[e>>2]|0;c[r+(h<<3)>>2]=c[b+(h<<3)>>2];c[r+(h<<3)+4>>2]=s;h=h+1|0}while((h|0)!=(d|0));if((c[a>>2]|0)!=60)e=c[p>>2]|0;else l=10}else l=10;if((l|0)==10){d=c[p>>2]|0;if(!d){i=q;return}h=a+76|0;b=c[h>>2]|0;e=0;f=0.0;k=0.0;do{f=+g[b+(e<<3)>>2]+f;k=+g[b+(e<<3)+4>>2]+k;e=e+1|0}while((e|0)!=(d|0));t=+(d>>>0);m=f/t;f=k/t;e=b+4|0;k=+g[e>>2]-f;g[b>>2]=+g[b>>2]-m;g[e>>2]=k;e=c[p>>2]|0;if(e>>>0>1){d=1;do{e=c[h>>2]|0;s=e+(d<<3)|0;e=e+(d<<3)+4|0;t=+g[e>>2]-f;g[s>>2]=+g[s>>2]-m;g[e>>2]=t;d=d+1|0;e=c[p>>2]|0}while(d>>>0>>0)}}if(!e){i=q;return}h=a+76|0;d=o+4|0;f=0.0;b=0;do{s=c[h>>2]|0;e=c[s+(b<<3)+4>>2]|0;c[o>>2]=c[s+(b<<3)>>2];c[d>>2]=e;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];t=+vo(n);f=t*t+f;b=b+1|0;e=c[p>>2]|0}while(b>>>0>>0);f=+O(+(f/+(e>>>0)));if(!e){i=q;return}else e=0;do{s=c[h>>2]|0;r=s+(e<<3)|0;s=s+(e<<3)+4|0;t=+g[s>>2]/f;g[r>>2]=+g[r>>2]/f;g[s>>2]=t;e=e+1|0}while(e>>>0<(c[p>>2]|0)>>>0);i=q;return}function Ji(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,k=0,l=0,m=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();l=h;m=a+12|0;c[m>>2]=b;b=Ki(c[a>>2]|0,g)|0;c[a>>2]=b;k=a+8|0;c[k>>2]=Ni(b)|0;b=a+4|0;f=vg(c[b>>2]|0,c[m>>2]|0,d,e,f)|0;c[b>>2]=f;f=xg(f)|0;c[a+24>>2]=f;f=f<<3;c[a+28>>2]=f;Up(l,f,c[k>>2]|0);f=((c[l+4>>2]|0)!=0&1)+(c[l>>2]|0)|0;b=a+32|0;c[b>>2]=f;g=a+16|0;c[g>>2]=Zp(c[g>>2]|0,_(c[k>>2]|0,f)|0)|0;a=a+20|0;c[a>>2]=Zp(c[a>>2]|0,c[b>>2]<<2)|0;i=h;return 0}function Ki(a,b){a=a|0;b=b|0;if((c[a>>2]|0)==(b|0)){b=a;return b|0}Li(a);b=di(b)|0;return b|0}function Li(a){a=a|0;var b=0;b=c[a+76>>2]|0;if(b|0)Xp(b);b=c[a+244>>2]|0;if(b|0)Xp(b);b=c[a>>2]|0;switch(b|0){case 50:{Xp(c[a+100>>2]|0);Xp(a);return}case 51:{Xp(c[a+100>>2]|0);Xp(a);return}default:{if(!(Mi(b)|0)){Xp(a);return}Xp(c[a+232>>2]|0);Xp(a);return}}}function Mi(a){a=a|0;return (a+-40|0)>>>0<7|0}function Ni(a){a=a|0;return c[a+4>>2]|0}function Oi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+24|0;d=o+16|0;l=o+8|0;m=o;if(!a){Pp(29801,66,1,c[2344]|0)|0;lb(1)}if(b>>>0<2){Pp(29868,68,1,c[2344]|0)|0;lb(1)}n=Wp(20)|0;c[n>>2]=a;c[n+4>>2]=b;Up(d,a,b+-1|0);h=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;c[n+8>>2]=h;c[n+12>>2]=h+a;b=Wp(h<<3)|0;c[n+16>>2]=b;d=ad(Pi(h)|0)|0;if(!h){dd(d);i=o;return n|0}a=m+4|0;e=l+4|0;f=0;do{q=+((bd(d,2)|0)>>>0)*1.5707963267948966+.7853981633974483;g[m>>2]=0.0;g[a>>2]=q;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];Ho(l,k);p=c[e>>2]|0;c[b+(f<<3)>>2]=c[l>>2];c[b+(f<<3)+4>>2]=p;f=f+1|0}while(f>>>0>>0);dd(d);i=o;return n|0}function Pi(a){a=a|0;var b=0;if(!a){Pp(29937,58,1,c[2344]|0)|0;lb(1)}a=a+-1|0;if(!a){b=0;return b|0}else b=0;do{a=a>>>1;b=b+1|0}while((a|0)!=0);a=b;return a|0}function Qi(a){a=a|0;wg(c[a+4>>2]|0);Li(c[a>>2]|0);Xp(c[a+16>>2]|0);Xp(c[a+20>>2]|0);Xp(a);return}function Ri(a){a=a|0;Xp(c[a+16>>2]|0);Xp(a);return}function Si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+20|0;e=c[f>>2]|0;g=a+16|0;Bg(c[a+4>>2]|0,b,c[g>>2]|0);b=a+32|0;dq(c[f>>2]|0,0,c[b>>2]<<2|0)|0;Ti(c[g>>2]|0,c[a+24>>2]|0,c[a+8>>2]|0,c[b>>2]|0,e);if(!(c[b>>2]|0))return;e=0;do{Ui(c[a>>2]|0,c[(c[f>>2]|0)+(e<<2)>>2]|0,d+(e<<3)|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0);return}function Ti(a,b,e,f,g){a=a|0;b=b|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;n=b<<3;if(!((f|0)!=0&(n|0)!=0))return;if(!e){h=(n|0)!=0;i=0;do{c[g+(i<<2)>>2]=0;i=i+1|0}while(i>>>0>>0&h);return}else{p=0;q=0}do{o=g+(p<<2)|0;h=q>>>3;if(h>>>0>>0){m=e;i=q-(h<<3)|0;l=h;h=0;while(1){j=8-i|0;r=m>>>0>>0?m:j;h=255>>>(8-r|0)&255&(d[a+l>>0]|0)>>>(j-r|0)|h<>>0>7;l=(k&1)+l|0;i=m-r|0;if(!((m|0)!=(r|0)&l>>>0>>0))break;else{m=i;i=k?j&7:j}}}else{i=e;h=0}c[o>>2]=h<>>0>>0&q>>>0>>0);return}function Ui(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0<=b>>>0){Pp(29087,65,1,c[2344]|0)|0;lb(1)}if(!(c[a+80>>2]|0)){ub[c[a+236>>2]&31](a,b,d);return}else{e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}}function Vi(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;h=a+12|0;if(!(c[h>>2]|0))return;i=a+4|0;f=a+16|0;g=0;a=0;e=0;do{if(!((g>>>0)%((c[i>>2]|0)>>>0)|0)){k=c[f>>2]|0;j=c[k+(e<<3)+4>>2]|0;c[d+(g<<3)>>2]=c[k+(e<<3)>>2];c[d+(g<<3)+4>>2]=j;e=e+1|0}else{k=c[b+(a<<3)+4>>2]|0;c[d+(g<<3)>>2]=c[b+(a<<3)>>2];c[d+(g<<3)+4>>2]=k;a=a+1|0}g=g+1|0}while(g>>>0<(c[h>>2]|0)>>>0);return}function Wi(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();m=r+8|0;n=r;if(!b){Pp(29996,70,1,c[2344]|0)|0;lb(1)}if((e+-2|0)>>>0>78){Pp(30067,76,1,c[2344]|0)|0;lb(1)}if((f+-1|0)>>>0>99){Pp(30144,71,1,c[2344]|0)|0;lb(1)}if(h<0.0|h>1.0){Pp(30216,80,1,c[2344]|0)|0;lb(1)}o=(f<<1)+b|0;p=_(o,e)|0;q=Wp(p<<3)|0;d=Ch(d,e,f,h,0.0)|0;if(!o){Dh(d);b=Xi(q,p)|0;Xp(q);i=r;return b|0}f=n+4|0;l=0;do{if(l>>>0>>0){h=+g[a+(l<<3)>>2];k=+g[a+(l<<3)+4>>2]}else{h=0.0;k=0.0}s=q+((_(l,e)|0)<<3)|0;g[n>>2]=h;g[f>>2]=k;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];Hh(d,m,s);l=l+1|0}while((l|0)!=(o|0));Dh(d);s=Xi(q,p)|0;Xp(q);i=r;return s|0}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!b){Pp(30297,63,1,c[2344]|0)|0;lb(1)}else{d=Wp(96)|0;c[d>>2]=b;h=b<<3;m=Wp(h)|0;i=d+4|0;c[i>>2]=m;eq(m|0,a|0,h|0)|0;g[d+12>>2]=+nd(m,b);m=1<<(Pi(c[d>>2]<<1)|0);b=d+32|0;c[b>>2]=m;h=m<<3;l=Wp(h)|0;e=d+16|0;c[e>>2]=l;k=Wp(h)|0;a=d+20|0;c[a>>2]=k;f=d+24|0;c[f>>2]=Wp(h)|0;j=d+28|0;c[j>>2]=Wp(h)|0;h=d+36|0;c[h>>2]=Ld(m,l,k,1,0)|0;c[d+40>>2]=Ld(c[b>>2]|0,c[f>>2]|0,c[j>>2]|0,-1,0)|0;j=c[b>>2]<<3;f=d+8|0;c[f>>2]=Wp(j)|0;dq(c[e>>2]|0,0,j|0)|0;fq(c[e>>2]|0,c[i>>2]|0,c[d>>2]<<3|0)|0;Gg(c[h>>2]|0);fq(c[f>>2]|0,c[a>>2]|0,c[b>>2]<<3|0)|0;a=c[b>>2]|0;c[d+44>>2]=a>>>1;c[d+56>>2]=0;g[d+60>>2]=0.0;g[d+64>>2]=0.0;c[d+88>>2]=0;c[d+92>>2]=0;dq(c[e>>2]|0,0,a<<3|0)|0;a=d+72|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[d+48>>2]=.5;b=~~(+((c[b>>2]|0)>>>0)*.30000001192092896*.15915494309189535);c[d+52>>2]=(b|0)<0?0:b;return d|0}return 0}function Yi(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;if(b<=0.0|b>2.0){a=c[2344]|0;h[d>>3]=b;Jp(a,30361,d)|0;i=e;return}else{g[a+48>>2]=b;i=e;return}}function Zi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();l=p+24|0;d=p+16|0;m=p+8|0;n=p;if(!a){Pp(30413,67,1,c[2344]|0)|0;lb(1)}if(b>>>0<2){Pp(30481,69,1,c[2344]|0)|0;lb(1)}o=Wp(48)|0;c[o>>2]=a;c[o+4>>2]=b;Up(d,a,b+-1|0);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;h=o+8|0;c[h>>2]=f;c[o+12>>2]=f+a;b=Wp(f<<3)|0;c[o+16>>2]=b;k=ad(Pi(f)|0)|0;if(!f)b=0;else{d=n+4|0;a=m+4|0;e=0;do{r=+((bd(k,2)|0)>>>0)*1.5707963267948966+.7853981633974483;g[n>>2]=0.0;g[d>>2]=r;c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];Ho(m,l);q=c[a>>2]|0;c[b+(e<<3)>>2]=c[m>>2];c[b+(e<<3)+4>>2]=q;e=e+1|0}while(e>>>0>>0);b=c[h>>2]|0}dd(k);b=1<<(Pi((b>>>1)+b|0)|0);c[o+20>>2]=b;a=b<<3;d=Wp(a)|0;c[o+24>>2]=d;a=Wp(a)|0;c[o+28>>2]=a;c[o+32>>2]=Ld(b,d,a,1,0)|0;a=0;do{g[d+(a<<3)>>2]=0.0;g[d+(a<<3)+4>>2]=0.0;a=a+1|0}while(a>>>0>>0);g[o+36>>2]=0.0;g[o+40>>2]=0.0;g[o+44>>2]=1.0;i=p;return o|0}function _i(a){a=a|0;return}function $i(a){a=a|0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;c[a+1036>>2]=0;g[a+1040>>2]=0.0;g[a+1044>>2]=1.0;return}function aj(a){a=a|0;Xp(c[a+4>>2]|0);Xp(c[a+8>>2]|0);Xp(c[a+16>>2]|0);Xp(c[a+20>>2]|0);Xp(c[a+24>>2]|0);Xp(c[a+28>>2]|0);ie(c[a+36>>2]|0);ie(c[a+40>>2]|0);Xp(a);return}function bj(a){a=a|0;Xp(c[a+16>>2]|0);Xp(c[a+24>>2]|0);Xp(c[a+28>>2]|0);ie(c[a+32>>2]|0);Xp(a);return}function cj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();d=g+16|0;e=g+8|0;f=g;switch(c[a+88>>2]|0){case 0:{f=c[b+4>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=f;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];dj(a,d);break}case 1:{e=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];fj(a,d);break}default:{}}d=a+92|0;if(!(c[d>>2]|0)){a=0;i=g;return a|0}c[d>>2]=0;a=c[a+28>>2]|0;i=g;return a|0}function dj(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0.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.0,J=0,K=0.0,L=0.0,M=0.0,N=0,P=0;H=i;i=i+48|0;if((i|0)>=(j|0))ba();x=H+32|0;y=H+24|0;z=H+16|0;A=H+8|0;B=H;F=c[b>>2]|0;E=c[b+4>>2]|0;G=a+44|0;b=c[G>>2]|0;c[G>>2]=b+1;D=a+16|0;C=c[D>>2]|0;c[C+(b<<3)>>2]=F;c[C+(b<<3)+4>>2]=E;m=(c[k>>2]=F,+g[k>>2]);d=(c[k>>2]=E,+g[k>>2]);E=a+64|0;g[E>>2]=d*d+m*m+ +g[E>>2];F=a+32|0;b=c[F>>2]|0;if((c[G>>2]|0)>>>0>>0){i=H;return}c[G>>2]=b>>>1;Gg(c[a+36>>2]|0);C=a+60|0;d=+O(+(+g[E>>2]+ +g[C>>2]));f=c[F>>2]|0;I=+(f>>>0);m=+O(+(+((c[a>>2]|0)>>>0)/I));m=1.0/(I*d*+O(+(+g[a+12>>2]))*m);n=a+52|0;w=c[n>>2]|0;b=0-w|0;if((w|0)<(b|0)){e=0;b=0;d=0.0}else{o=a+40|0;p=a+28|0;q=A+4|0;r=B+4|0;s=a+20|0;t=a+8|0;u=z+4|0;v=y+4|0;w=a+24|0;l=b;e=0;b=0;d=0.0;while(1){if(f|0){h=0;do{N=((h-l+f|0)>>>0)%(f>>>0)|0;P=c[s>>2]|0;L=+g[P+(h<<3)>>2];I=+g[P+(h<<3)+4>>2];P=c[t>>2]|0;J=c[P+(N<<3)+4>>2]|0;c[z>>2]=c[P+(N<<3)>>2];c[u>>2]=J;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Jo(y,x);K=+g[y>>2];M=+g[v>>2];J=c[w>>2]|0;g[J+(h<<3)>>2]=K*L-M*I;g[J+(h<<3)+4>>2]=M*L+K*I;h=h+1|0;f=c[F>>2]|0}while(h>>>0>>0)}Gg(c[o>>2]|0);P=c[p>>2]|0;N=c[F>>2]|0;g[A>>2]=m;g[q>>2]=0.0;c[x>>2]=c[A>>2];c[x+4>>2]=c[A+4>>2];ej(P,N,x,P);if(!(c[F>>2]|0))f=0;else{h=0;do{P=c[p>>2]|0;f=c[P+(h<<3)+4>>2]|0;c[B>>2]=c[P+(h<<3)>>2];c[r>>2]=f;c[x>>2]=c[B>>2];c[x+4>>2]=c[B+4>>2];M=+vo(x);f=M>d;d=f?M:d;e=f?h:e;b=f?l:b;h=h+1|0;f=c[F>>2]|0}while(h>>>0>>0)}if((l|0)<(c[n>>2]|0))l=l+1|0;else break}}P=a+56|0;c[P>>2]=(c[P>>2]|0)+1;if(d>+g[a+48>>2]?e>>>0<(f-(c[a>>2]|0)|0)>>>0:0){c[a+88>>2]=1;c[a+68>>2]=b;P=c[D>>2]|0;fq(P|0,P+(e<<3)|0,f-e<<3|0)|0;c[G>>2]=(c[F>>2]|0)-e;i=H;return}N=c[D>>2]|0;P=f>>>1;fq(N|0,N+(P<<3)|0,P<<3|0)|0;c[C>>2]=c[E>>2];g[E>>2]=0.0;i=H;return}function ej(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0.0,m=0.0;i=b&-4;if(!i)e=0;else{f=+g[c>>2];h=+g[c+4>>2];e=b&-4;j=0;do{l=+g[a+(j<<3)>>2];m=+g[a+(j<<3)+4>>2];g[d+(j<<3)>>2]=f*l-h*m;g[d+(j<<3)+4>>2]=h*l+f*m;k=j|1;m=+g[a+(k<<3)>>2];l=+g[a+(k<<3)+4>>2];g[d+(k<<3)>>2]=f*m-h*l;g[d+(k<<3)+4>>2]=h*m+f*l;k=j|2;l=+g[a+(k<<3)>>2];m=+g[a+(k<<3)+4>>2];g[d+(k<<3)>>2]=f*l-h*m;g[d+(k<<3)+4>>2]=h*l+f*m;k=j|3;m=+g[a+(k<<3)>>2];l=+g[a+(k<<3)+4>>2];g[d+(k<<3)>>2]=f*m-h*l;g[d+(k<<3)+4>>2]=h*m+f*l;j=j+4|0}while(j>>>0>>0)}if(e>>>0>=b>>>0)return;h=+g[c>>2];f=+g[c+4>>2];do{l=+g[a+(e<<3)>>2];m=+g[a+(e<<3)+4>>2];g[d+(e<<3)>>2]=h*l-f*m;g[d+(e<<3)+4>>2]=f*l+h*m;e=e+1|0}while((e|0)!=(b|0));return}function fj(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,h=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0,N=0.0,P=0.0;I=i;i=i+112|0;if((i|0)>=(j|0))ba();G=I+104|0;q=I+96|0;r=I+88|0;s=I+80|0;t=I+72|0;u=I+64|0;w=I+56|0;x=I+48|0;y=I+40|0;z=I+32|0;A=I+24|0;B=I+16|0;C=I+8|0;H=I;o=c[b>>2]|0;p=c[b+4>>2]|0;D=a+44|0;F=c[D>>2]|0;c[D>>2]=F+1;E=a+16|0;v=c[E>>2]|0;c[v+(F<<3)>>2]=o;c[v+(F<<3)+4>>2]=p;F=a+32|0;if((c[D>>2]|0)>>>0<(c[F>>2]|0)>>>0){i=I;return}v=a+36|0;Gg(c[v>>2]|0);b=c[F>>2]|0;if(b|0){k=a+68|0;l=a+20|0;m=a+8|0;n=r+4|0;o=q+4|0;p=a+24|0;f=0;do{L=((b+f-(c[k>>2]|0)|0)>>>0)%(b>>>0)|0;M=c[l>>2]|0;d=+g[M+(f<<3)>>2];h=+g[M+(f<<3)+4>>2];M=c[m>>2]|0;J=c[M+(L<<3)+4>>2]|0;c[r>>2]=c[M+(L<<3)>>2];c[n>>2]=J;c[G>>2]=c[r>>2];c[G+4>>2]=c[r+4>>2];Jo(q,G);e=+g[q>>2];K=+g[o>>2];J=c[p>>2]|0;g[J+(f<<3)>>2]=e*d-K*h;g[J+(f<<3)+4>>2]=K*d+e*h;f=f+1|0;b=c[F>>2]|0}while(f>>>0>>0)}Gg(c[a+40>>2]|0);L=(c[F>>2]|0)+-1|0;n=a+28|0;J=c[n>>2]|0;M=c[J+(L<<3)+4>>2]|0;c[s>>2]=c[J+(L<<3)>>2];c[s+4>>2]=M;c[G>>2]=c[s>>2];c[G+4>>2]=c[s+4>>2];e=+O(+(+vo(G)));M=c[n>>2]|0;L=c[M+4>>2]|0;c[t>>2]=c[M>>2];c[t+4>>2]=L;c[G>>2]=c[t>>2];c[G+4>>2]=c[t+4>>2];K=+O(+(+vo(G)));L=c[n>>2]|0;M=c[L+12>>2]|0;c[u>>2]=c[L+8>>2];c[u+4>>2]=M;c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];h=+O(+(+vo(G)));d=(h+e)*.5-K;e=(h-e)*.5;h=-e/(d*2.0);g[a+72>>2]=h;K=(h*d+e)*h+K;M=c[F>>2]|0;g[a+76>>2]=K*K/(+(M>>>0)*+g[a+12>>2]);fq(c[n>>2]|0,c[E>>2]|0,M<<3|0)|0;if(c[F>>2]|0){b=a+4|0;f=x+4|0;k=w+4|0;l=0;do{if(l>>>0<(c[a>>2]|0)>>>0){L=c[b>>2]|0;M=c[L+(l<<3)+4>>2]|0;c[x>>2]=c[L+(l<<3)>>2];c[f>>2]=M;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];Jo(w,G);d=+g[k>>2];e=+g[w>>2]}else{d=0.0;e=0.0}M=c[E>>2]|0;L=M+(l<<3)|0;K=+g[L>>2];M=M+(l<<3)+4|0;h=+g[M>>2];g[L>>2]=K*e-h*d;g[M>>2]=h*e+K*d;l=l+1|0}while(l>>>0<(c[F>>2]|0)>>>0)}Gg(c[v>>2]|0);m=a+20|0;if(!(c[F>>2]|0)){f=0;b=0;d=0.0}else{k=y+4|0;l=0;b=0;d=0.0;do{M=c[m>>2]|0;f=c[M+(l<<3)+4>>2]|0;c[y>>2]=c[M+(l<<3)>>2];c[k>>2]=f;c[G>>2]=c[y>>2];c[G+4>>2]=c[y+4>>2];K=+vo(G);f=K>d;b=f?l:b;d=f?K:d;l=l+1|0;f=c[F>>2]|0}while(l>>>0>>0)}J=((b+-1+f|0)>>>0)%(f>>>0)|0;M=((b+1|0)>>>0)%(f>>>0)|0;f=c[m>>2]|0;L=c[f+(J<<3)+4>>2]|0;c[z>>2]=c[f+(J<<3)>>2];c[z+4>>2]=L;c[G>>2]=c[z>>2];c[G+4>>2]=c[z+4>>2];K=+vo(G);L=c[m>>2]|0;f=c[L+(M<<3)+4>>2]|0;c[A>>2]=c[L+(M<<3)>>2];c[A+4>>2]=f;c[G>>2]=c[A>>2];c[G+4>>2]=c[A+4>>2];h=+vo(G);K=(h-K)*-.5/(((h+K)*.5-d)*2.0)+ +(b>>>0);f=c[F>>2]|0;d=+(f>>>0);d=(b>>>0>f>>>1>>>0?K-d:K)*2.0*3.141592653589793/d;f=a+80|0;g[f>>2]=d;a:do if(!(c[a>>2]|0)){e=0.0;d=0.0}else{k=C+4|0;l=B+4|0;h=d;b=0;e=0.0;d=0.0;while(1){M=c[E>>2]|0;K=+g[M+(b<<3)>>2];N=+g[M+(b<<3)+4>>2];g[C>>2]=-0.0;g[k>>2]=-(+(b>>>0)*h);c[G>>2]=c[C>>2];c[G+4>>2]=c[C+4>>2];Ho(B,G);P=+g[B>>2];h=+g[l>>2];e=P*K+e-h*N;d=P*N+d+h*K;b=b+1|0;if(b>>>0>=(c[a>>2]|0)>>>0)break a;h=+g[f>>2]}}while(0);g[H>>2]=e;g[H+4>>2]=d;c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];g[a+84>>2]=+Ao(G);c[a+92>>2]=1;M=(c[F>>2]|0)>>>1;fq(c[E>>2]|0,(c[n>>2]|0)+(M<<3)|0,M<<3|0)|0;c[a+88>>2]=0;g[a+60>>2]=+nd(c[E>>2]|0,(c[F>>2]|0)>>>1);g[a+64>>2]=0.0;c[D>>2]=(c[F>>2]|0)>>>1;i=I;return}function gj(a){a=a|0;return +(+g[a+72>>2])}function hj(a){a=a|0;return +(+g[a+76>>2])}function ij(a){a=a|0;return +(+g[a+80>>2])}function jj(a){a=a|0;return +(+g[a+84>>2])}function kj(a){a=a|0;return c[a+32>>2]|0}function lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0;rb[c[a+1048>>2]&31](a);i=+g[b>>2];e=+g[b+4>>2];f=+g[a+1044>>2];h=-+g[a+1040>>2];g[d>>2]=f*i-e*h;g[d+4>>2]=i*h+f*e;return}function mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.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,G=0.0,H=0,I=0.0,J=0.0;E=i;i=i+112|0;if((i|0)>=(j|0))ba();B=E+96|0;e=E+88|0;k=E+80|0;s=E+72|0;t=E+64|0;u=E+56|0;v=E+48|0;w=E+40|0;x=E+32|0;y=E+24|0;A=E+16|0;C=E+8|0;D=E;z=a+8|0;if(c[z>>2]|0){l=a+4|0;m=a+16|0;n=k+4|0;o=e+4|0;p=a+24|0;q=0;do{H=_(c[l>>2]|0,q)|0;f=+g[b+(H<<3)>>2];r=+g[b+(H<<3)+4>>2];H=c[m>>2]|0;F=c[H+(q<<3)+4>>2]|0;c[k>>2]=c[H+(q<<3)>>2];c[n>>2]=F;c[B>>2]=c[k>>2];c[B+4>>2]=c[k+4>>2];Jo(e,B);h=+g[e>>2];G=+g[o>>2];F=c[p>>2]|0;g[F+(q<<3)>>2]=h*f-G*r;g[F+(q<<3)+4>>2]=G*f+h*r;q=q+1|0}while(q>>>0<(c[z>>2]|0)>>>0)}Gg(c[a+32>>2]|0);p=a+20|0;o=a+28|0;if(!(c[p>>2]|0)){e=0;k=0;f=0.0}else{l=t+4|0;m=s+4|0;n=0;k=0;f=0.0;do{if(!((n|0)!=0?(F=c[o>>2]|0,H=c[F+(n<<3)+4>>2]|0,c[s>>2]=c[F+(n<<3)>>2],c[m>>2]=H,c[B>>2]=c[s>>2],c[B+4>>2]=c[s+4>>2],!(+vo(B)>f)):0)){H=c[o>>2]|0;k=c[H+(n<<3)+4>>2]|0;c[t>>2]=c[H+(n<<3)>>2];c[l>>2]=k;c[B>>2]=c[t>>2];c[B+4>>2]=c[t+4>>2];k=n;f=+vo(B)}n=n+1|0;e=c[p>>2]|0}while(n>>>0>>0)}s=((k+-1+e|0)>>>0)%(e>>>0)|0;q=((k+1|0)>>>0)%(e>>>0)|0;H=c[o>>2]|0;e=c[H+(q<<3)+4>>2]|0;c[u>>2]=c[H+(q<<3)>>2];c[u+4>>2]=e;c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];G=+vo(B);e=c[o>>2]|0;q=c[e+(s<<3)+4>>2]|0;c[v>>2]=c[e+(s<<3)>>2];c[v+4>>2]=q;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];r=+vo(B);f=(G-r)*-.5/(((r+G)*.5-f)*2.0)+ +(k>>>0);q=c[p>>2]|0;s=a+4|0;e=c[s>>2]|0;f=(k>>>0>q>>>1>>>0?f-+(q>>>0):f)*2.0*3.141592653589793/+((_(e,q)|0)>>>0);q=a+36|0;g[q>>2]=f;a:do if(!(c[z>>2]|0)){h=0.0;f=0.0}else{l=a+24|0;m=x+4|0;n=w+4|0;r=f;k=0;h=0.0;f=0.0;while(1){H=c[l>>2]|0;G=+g[H+(k<<3)>>2];I=+g[H+(k<<3)+4>>2];g[x>>2]=-0.0;g[m>>2]=-(+(k>>>0)*r*+(e>>>0));c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];Ho(w,B);J=+g[w>>2];r=+g[n>>2];h=J*G+h-r*I;f=J*I+f+r*G;k=k+1|0;if(k>>>0>=(c[z>>2]|0)>>>0)break a;e=c[s>>2]|0;r=+g[q>>2]}}while(0);g[y>>2]=h;g[y+4>>2]=f;c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];p=a+40|0;g[p>>2]=+Ao(B);g[A>>2]=h;g[A+4>>2]=f;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];f=+vo(B);f=f/+((c[z>>2]|0)>>>0);g[a+44>>2]=f;f=1.0/f;m=a+12|0;e=c[m>>2]|0;if(!e){i=E;return}n=D+4|0;o=C+4|0;l=0;k=0;do{if((l>>>0)%((c[s>>2]|0)>>>0)|0){G=+g[b+(l<<3)>>2]*f;J=+g[b+(l<<3)+4>>2]*f;I=-(+g[q>>2]*+(l>>>0)+ +g[p>>2]);g[D>>2]=-0.0;g[n>>2]=I;c[B>>2]=c[D>>2];c[B+4>>2]=c[D+4>>2];Ho(C,B);I=+g[C>>2];r=+g[o>>2];g[d+(k<<3)>>2]=I*G-r*J;g[d+(k<<3)+4>>2]=r*G+I*J;e=c[m>>2]|0;k=k+1|0}l=l+1|0}while(l>>>0>>0);i=E;return}function nj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();f=p+16|0;o=p+8|0;g=p;h=a+32|0;if(!(c[h>>2]|0)){n=a+16|0;o=a+4|0;o=c[o>>2]|0;a=c[n>>2]|0;a=Dg(o,a,d)|0;i=p;return a|0}k=g+4|0;e=a+16|0;l=a+24|0;m=a+8|0;n=0;do{q=c[a>>2]|0;r=c[b+(n<<3)+4>>2]|0;c[g>>2]=c[b+(n<<3)>>2];c[k>>2]=r;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];oj(q,f,o);q=c[m>>2]|0;r=_(q,n)|0;af(c[e>>2]|0,c[l>>2]|0,r,q,c[o>>2]|0);n=n+1|0}while(n>>>0<(c[h>>2]|0)>>>0);q=a+4|0;q=c[q>>2]|0;r=c[e>>2]|0;r=Dg(q,r,d)|0;i=p;return r|0}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e+8|0;h=e;g=c[a+240>>2]|0;k=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];ub[g&31](a,f,d);i=e;return}function pj(a){a=a|0;return +(+g[a+8>>2])}function qj(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0;b=Wp(140)|0;c[b>>2]=2;c[b+4>>2]=7;g[b+8>>2]=.25;c[b+12>>2]=Ch(7,2,7,.25,0.0)|0;d=Wp(512)|0;c[b+64>>2]=d;e=Yh(7,137,1)|0;f=0;do{i=(Wh(e)|0)!=0;h=d+(f<<3)+4|0;g[d+(f<<3)>>2]=i?.7071067690849304:-.7071067690849304;g[h>>2]=0.0;i=(Wh(e)|0)!=0;g[h>>2]=+g[h>>2]+(i?.7071067811865476:-.7071067811865476);f=f+1|0}while((f|0)!=64);dd(e);i=b+120|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[b+68>>2]=0;c[b+88>>2]=0;c[b+100>>2]=0;c[b+80>>2]=0;c[b+92>>2]=0;c[b+72>>2]=14;i=ci()|0;c[b+108>>2]=i;c[b+104>>2]=64;i=rj(i)|0;c[b+112>>2]=i;c[b+116>>2]=Wp(i<<3)|0;sj(b,a)|0;uj(b,0)|0;return b|0}function rj(a){a=a|0;return c[a+32>>2]|0}function sj(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Pp(30551,81,1,c[2344]|0)|0;a=-1;return a|0}if(!b){sj(a,9280)|0;return 0}if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(30633,63,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(30697,63,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(30697,63,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(30761,70,1,c[2344]|0)|0;lb(1)}fq(a+32|0,b|0,16)|0;tj(a);d=0;return d|0}function tj(a){a=a|0;var b=0,d=0;d=a+108|0;Ji(c[d>>2]|0,c[a+104>>2]|0,c[a+32>>2]|0,c[a+36>>2]|0,c[a+40>>2]|0,c[a+44>>2]|0)|0;d=rj(c[d>>2]|0)|0;c[a+112>>2]=d;b=a+116|0;a=Zp(c[b>>2]|0,d<<3)|0;c[b>>2]=a;if(!a){Pp(30832,71,1,c[2344]|0)|0;lb(1)}else return}function uj(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Pp(30904,89,1,c[2344]|0)|0;a=-1;return a|0}b=(b|0)==0?9296:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(30994,71,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(31066,71,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(31066,71,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(31138,78,1,c[2344]|0)|0;lb(1)}fq(a+48|0,b|0,16)|0;vj(a,c[a+72>>2]|0);d=0;return d|0}function vj(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+128>>2]|0){Pp(30551,81,1,c[2344]|0)|0;return}c[a+72>>2]=b;d=b+6|0;e=a+76|0;c[e>>2]=d;b=a+68|0;c[b>>2]=Zp(c[b>>2]|0,d)|0;b=a+80|0;d=c[b>>2]|0;if(d|0)Qi(d);d=ci()|0;c[b>>2]=d;Ji(d,c[e>>2]|0,c[a+48>>2]|0,c[a+52>>2]|0,c[a+56>>2]|0,c[a+60>>2]|0)|0;e=rj(c[b>>2]|0)|0;b=a+84|0;c[b>>2]=e;d=a+88|0;c[d>>2]=Zp(c[d>>2]|0,e<<3)|0;d=a+92|0;e=c[d>>2]|0;if(e|0)Ri(e);e=Oi(c[b>>2]|0,16)|0;c[d>>2]=e;e=wj(e)|0;c[a+96>>2]=e;a=a+100|0;c[a>>2]=Zp(c[a>>2]|0,e<<3)|0;return}function wj(a){a=a|0;return c[a+12>>2]|0}function xj(a){a=a|0;a=a+120|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function yj(a){a=a|0;Dh(c[a+12>>2]|0);Qi(c[a+80>>2]|0);Ri(c[a+92>>2]|0);Qi(c[a+108>>2]|0);Xp(c[a+64>>2]|0);Xp(c[a+68>>2]|0);Xp(c[a+88>>2]|0);Xp(c[a+100>>2]|0);Xp(c[a+116>>2]|0);Xp(a);return}function zj(a){a=a|0;return c[a+128>>2]|0}function Aj(a){a=a|0;if(!(c[a+128>>2]|0)){Pp(31217,58,1,c[2344]|0)|0;a=0;return a|0}else{a=_((c[a+96>>2]|0)+64+(c[a+112>>2]|0)+(c[a+4>>2]<<1)|0,c[a>>2]|0)|0;return a|0}return 0}function Bj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=b+120|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=b+104|0;c[k>>2]=g;g=b+68|0;h=c[g>>2]|0;i=b+72|0;j=c[i>>2]|0;if(!e)dq(h|0,0,j|0)|0;else fq(h|0,e|0,j|0)|0;e=c[i>>2]|0;a[(c[g>>2]|0)+e>>0]=102;a[(c[g>>2]|0)+(e+1)>>0]=(c[k>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[k>>2];a[(c[g>>2]|0)+(e+3)>>0]=c[b+44>>2];k=e+4|0;a[(c[g>>2]|0)+k>>0]=c[b+32>>2]<<5;k=(c[g>>2]|0)+k|0;a[k>>0]=d[k>>0]|0|c[b+36>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+40>>2]&31;e=b+88|0;Si(c[b+80>>2]|0,c[g>>2]|0,c[e>>2]|0);Vi(c[b+92>>2]|0,c[e>>2]|0,c[b+100>>2]|0);tj(b);Si(c[b+108>>2]|0,f,c[b+116>>2]|0);c[b+128>>2]=1;return}function Cj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();f=q+16|0;g=q+8|0;h=q;if(!d){p=a+132|0;p=c[p>>2]|0;i=q;return p|0}k=a+124|0;l=g+4|0;m=a+12|0;n=a+16|0;o=h+4|0;e=c[k>>2]|0;p=0;do{if(!e){Dj(g,a);r=c[l>>2]|0;e=c[m>>2]|0;c[h>>2]=c[g>>2];c[o>>2]=r;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Hh(e,f,n);e=c[k>>2]|0}r=c[a+16+(e<<3)+4>>2]|0;c[b+(p<<3)>>2]=c[a+16+(e<<3)>>2];c[b+(p<<3)+4>>2]=r;e=(((c[k>>2]|0)+1|0)>>>0)%((c[a>>2]|0)>>>0)|0;c[k>>2]=e;p=p+1|0}while((p|0)!=(d|0));r=a+132|0;r=c[r>>2]|0;i=q;return r|0}function Dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;e=b+128|0;if(!(c[e>>2]|0)){g[a>>2]=0.0;g[a+4>>2]=0.0;return}h=b+136|0;switch(c[h>>2]|0){case 0:{f=b+120|0;e=c[f>>2]|0;i=e+1|0;c[f>>2]=i;b=c[b+64>>2]|0;d=c[b+(e<<3)>>2]|0;e=c[b+(e<<3)+4>>2]|0;if((i|0)==64){c[f>>2]=0;c[h>>2]=1}c[a>>2]=d;c[a+4>>2]=e;return}case 1:{d=b+120|0;f=c[d>>2]|0;i=f+1|0;c[d>>2]=i;j=c[b+100>>2]|0;e=c[j+(f<<3)>>2]|0;f=c[j+(f<<3)+4>>2]|0;if((i|0)==(c[b+96>>2]|0)){c[d>>2]=0;c[h>>2]=2}c[a>>2]=e;c[a+4>>2]=f;return}case 2:{d=b+120|0;f=c[d>>2]|0;j=f+1|0;c[d>>2]=j;i=c[b+116>>2]|0;e=c[i+(f<<3)>>2]|0;f=c[i+(f<<3)+4>>2]|0;if((j|0)==(c[b+112>>2]|0)){c[d>>2]=0;c[h>>2]=3}c[a>>2]=e;c[a+4>>2]=f;return}case 3:{d=b+120|0;j=(c[d>>2]|0)+1|0;c[d>>2]=j;if((j|0)==(c[b+4>>2]<<1|0)){c[d>>2]=0;c[b+132>>2]=1;c[e>>2]=0}c[a>>2]=0;c[a+4>>2]=0;return}default:{Pp(31276,74,1,c[2344]|0)|0;lb(1)}}}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;h=Wp(244)|0;c[h>>2]=a;c[h+4>>2]=b;a=h+64|0;c[a>>2]=7;b=h+68|0;g[b>>2]=.30000001192092896;d=h+116|0;c[d>>2]=Wp(512)|0;c[h+120>>2]=Wp(512)|0;e=Yh(7,137,1)|0;f=0;do{i=(Wh(e)|0)!=0;j=c[d>>2]|0;g[j+(f<<3)>>2]=i?.7071067690849304:-.7071067690849304;g[j+(f<<3)+4>>2]=0.0;j=(Wh(e)|0)!=0;i=(c[d>>2]|0)+(f<<3)+4|0;g[i>>2]=+g[i>>2]+(j?.7071067811865476:-.7071067811865476);f=f+1|0}while((f|0)!=64);dd(e);j=Wi(c[d>>2]|0,64,7,2,c[a>>2]|0,+g[b>>2])|0;c[h+72>>2]=j;Yi(j,.5);c[h+104>>2]=32;j=h+100|0;c[j>>2]=Kh(7,32,2,c[a>>2]|0,+g[b>>2])|0;f=h+92|0;c[f>>2]=Uc(0)|0;e=Uc(0)|0;i=h+96|0;c[i>>2]=e;Fj(e,9.999999747378752e-05);c[h+128>>2]=0;c[h+140>>2]=0;c[h+160>>2]=0;c[h+136>>2]=0;c[h+148>>2]=0;c[h+152>>2]=14;c[h+124>>2]=0;Gj(h,0)|0;c[h+188>>2]=di(48)|0;e=h+208|0;c[e>>2]=64;b=ci()|0;d=h+200|0;c[d>>2]=b;Ji(b,c[e>>2]|0,5,1,7,47)|0;d=rj(c[d>>2]|0)|0;c[h+196>>2]=d;c[h+192>>2]=Wp(d<<3)|0;c[h+204>>2]=Wp(c[e>>2]|0)|0;c[h+184>>2]=0;bi(h+48|0);e=h+228|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;$i(c[f>>2]|0);$i(c[i>>2]|0);Gh(c[j>>2]|0);c[h+224>>2]=0;c[h+216>>2]=0;c[h+220>>2]=0;g[h+8>>2]=0.0;return h|0}function Fj(a,b){a=a|0;b=+b;if(b<0.0){Pp(31351,59,1,c[2344]|0)|0;lb(1)}else{g[a+1052>>2]=b;g[a+1056>>2]=+O(+b);return}}function Gj(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?9296:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(31411,72,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(31484,72,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(31484,72,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(31557,79,1,c[2344]|0)|0;lb(1)}else{fq(a+168|0,b|0,16)|0;Hj(a,c[a+152>>2]|0);return 0}return 0}function Hj(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+152>>2]=b;e=b+6|0;b=a+156|0;c[b>>2]=e;d=a+160|0;c[d>>2]=Zp(c[d>>2]|0,e)|0;d=a+148|0;e=c[d>>2]|0;if(e|0)Qi(e);e=ci()|0;c[d>>2]=e;Ji(e,c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0,c[a+180>>2]|0)|0;e=rj(c[d>>2]|0)|0;b=a+144|0;c[b>>2]=e;d=a+140|0;c[d>>2]=Zp(c[d>>2]|0,e<<3)|0;d=a+136|0;e=c[d>>2]|0;if(e|0)bj(e);e=Zi(c[b>>2]|0,16)|0;c[d>>2]=e;e=Ij(e)|0;c[a+132>>2]=e;a=a+128|0;c[a>>2]=Zp(c[a>>2]|0,e<<3)|0;return}function Ij(a){a=a|0;return c[a+12>>2]|0}function Jj(a){a=a|0;if(c[a+232>>2]|0)Tc(c[a+240>>2]|0);Xp(c[a+116>>2]|0);Xp(c[a+120>>2]|0);Xp(c[a+128>>2]|0);Xp(c[a+140>>2]|0);Xp(c[a+160>>2]|0);Xp(c[a+192>>2]|0);Xp(c[a+204>>2]|0);bj(c[a+136>>2]|0);Qi(c[a+148>>2]|0);Li(c[a+188>>2]|0);Qi(c[a+200>>2]|0);aj(c[a+72>>2]|0);Eh(c[a+100>>2]|0);Yc(c[a+92>>2]|0);Yc(c[a+96>>2]|0);Xp(a);return}function Kj(a,b){a=a|0;b=b|0;c[a+124>>2]=b;return}function Lj(a,b){a=a|0;b=b|0;c[a+184>>2]=b;return}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;w=i;i=i+48|0;if((i|0)>=(j|0))ba();e=w+40|0;f=w+32|0;g=w+24|0;o=w+16|0;p=w+8|0;q=w;if(!d){i=w;return}r=a+228|0;s=a+224|0;t=g+4|0;u=o+4|0;h=p+4|0;k=q+4|0;l=a+236|0;m=a+240|0;n=f+4|0;v=0;a:while(1){if(c[r>>2]|0?(c[l>>2]|0)==0:0){x=c[m>>2]|0;y=c[b+(v<<3)+4>>2]|0;c[f>>2]=c[b+(v<<3)>>2];c[n>>2]=y;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Sc(x,e)}switch(c[s>>2]|0){case 0:{y=c[b+(v<<3)+4>>2]|0;c[g>>2]=c[b+(v<<3)>>2];c[t>>2]=y;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Nj(a,e);break}case 1:{y=c[b+(v<<3)+4>>2]|0;c[o>>2]=c[b+(v<<3)>>2];c[u>>2]=y;c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];Oj(a,e);break}case 2:{y=c[b+(v<<3)+4>>2]|0;c[p>>2]=c[b+(v<<3)>>2];c[h>>2]=y;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];Pj(a,e);break}case 3:{y=c[b+(v<<3)+4>>2]|0;c[q>>2]=c[b+(v<<3)>>2];c[k>>2]=y;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];Yj(a,e);break}default:{e=11;break a}}v=v+1|0;if(v>>>0>=d>>>0){e=13;break}}if((e|0)==11){Pp(32160,58,1,c[2344]|0)|0;lb(1)}else if((e|0)==13){i=w;return}}function Nj(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+8|0;h=n;m=a+72|0;k=c[m>>2]|0;f=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=f;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];l=cj(k,l)|0;if(!l){i=n;return}k=a+76|0;g[k>>2]=+gj(c[m>>2]|0);e=a+88|0;g[e>>2]=+hj(c[m>>2]|0);f=a+80|0;g[f>>2]=+ij(c[m>>2]|0);h=a+84|0;g[h>>2]=+jj(c[m>>2]|0);d=+g[k>>2];k=c[a+104>>2]|0;if(d>0.0){d=+(k>>>0)*d;b=0}else{d=+(k>>>0)*(d+1.0);b=1}c[a+112>>2]=(~~d>>>0>>>0)%(k>>>0)|0;c[a+108>>2]=b;Lh(c[a+100>>2]|0,.5/+g[e>>2]);k=a+92|0;_c(c[k>>2]|0,+g[f>>2]);$c(c[k>>2]|0,+g[h>>2]);c[a+224>>2]=1;k=a+236|0;c[k>>2]=1;Mj(a,l,kj(c[m>>2]|0)|0);c[k>>2]=0;i=n;return}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+32|0;if((i|0)>=(j|0))ba();f=k+24|0;e=k+16|0;l=k+8|0;g=k;m=c[b+4>>2]|0;d=a+92|0;h=c[d>>2]|0;c[l>>2]=c[b>>2];c[l+4>>2]=m;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];lj(h,f,e);gd(c[d>>2]|0);d=a+100|0;h=c[d>>2]|0;b=e+4|0;l=c[b>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=l;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Ih(h,f);Jh(c[d>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){g=c[e>>2]|0;h=c[b>>2]|0;c[d>>2]=f+-1}else{g=0;h=0}if((f|0)<0){i=k;return}d=c[a+64>>2]<<1;e=a+216|0;b=c[e>>2]|0;if(b>>>0>=d>>>0){b=b-d|0;m=c[a+120>>2]|0;c[m+(b<<3)>>2]=g;c[m+(b<<3)+4>>2]=h;b=c[e>>2]|0}c[e>>2]=b+1;if((b|0)!=(d+63|0)){i=k;return}c[a+224>>2]=2;i=k;return}function Pj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;if((i|0)>=(j|0))ba();o=q+24|0;e=q+16|0;d=q+8|0;f=q;m=c[b+4>>2]|0;p=a+92|0;n=c[p>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=m;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];lj(n,o,e);gd(c[p>>2]|0);n=a+100|0;d=c[n>>2]|0;b=e+4|0;m=c[b>>2]|0;c[f>>2]=c[e>>2];c[f+4>>2]=m;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];Ih(d,o);Jh(c[n>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){l=c[e>>2]|0;m=c[b>>2]|0;c[d>>2]=f+-1;b=l;d=m}else{b=0;d=0}if((f|0)<0){i=q;return}m=a+220|0;l=c[m>>2]|0;k=c[a+128>>2]|0;c[k+(l<<3)>>2]=b;c[k+(l<<3)+4>>2]=d;l=(c[m>>2]|0)+1|0;c[m>>2]=l;if((l|0)!=(c[a+132>>2]|0)){i=q;return}Qj(a);b=a+164|0;if(c[b>>2]|0){c[m>>2]=0;c[a+224>>2]=3;i=q;return}l=a+48|0;c[l>>2]=(c[l>>2]|0)+1;if(c[a>>2]|0){f=a+8|0;g[f>>2]=0.0;g[a+12>>2]=+xp(+g[a+88>>2])*20.0;g[a+16>>2]=+pj(c[p>>2]|0);k=a+20|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;k=c[a>>2]|0;l=c[a+160>>2]|0;b=c[b>>2]|0;d=c[a+4>>2]|0;e=o;h=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));pb[k&1](l,b,0,0,0,o,d)|0}$i(c[p>>2]|0);$i(c[a+96>>2]|0);Gh(c[n>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[m>>2]=0;g[a+8>>2]=0.0;i=q;return}function Qj(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();l=p;h=b+136|0;f=b+140|0;mj(c[h>>2]|0,c[b+128>>2]|0,c[f>>2]|0);e=c[b+148>>2]|0;f=c[f>>2]|0;k=b+160|0;g=c[k>>2]|0;if(!(c[b+124>>2]|0))e=nj(e,f,g)|0;else e=Rj(e,f,g)|0;o=b+164|0;c[o>>2]=e;if(!e){i=p;return}r=+Wj(c[h>>2]|0);q=+Xj(c[h>>2]|0);n=b+96|0;_c(c[n>>2]|0,r);$c(c[n>>2]|0,+((c[b+132>>2]|0)>>>0)*r+q);n=c[b+152>>2]|0;m=c[k>>2]|0;e=a[m+n>>0]|0;if(e<<24>>24!=102){b=c[2344]|0;c[l>>2]=e&255;c[l+4>>2]=102;Jp(b,31705,l)|0;c[o>>2]=0;i=p;return}f=(d[m+(n+1)>>0]|0)<<8|(d[m+(n+2)>>0]|0);g=b+208|0;c[g>>2]=f;s=a[m+(n+3)>>0]|0;h=s&255;l=d[m+(n+4)>>0]|0;k=l>>>5;l=l&31;e=(d[m+(n+5)>>0]|0)&31;if((s+-1&255)>59){Pp(31788,66,1,c[2344]|0)|0;c[o>>2]=0;i=p;return}switch(k|0){case 0:case 7:{Pp(31855,70,1,c[2344]|0)|0;c[o>>2]=0;i=p;return}default:{}}if((l+-1|0)>>>0>26){Pp(31926,78,1,c[2344]|0)|0;c[o>>2]=0;i=p;return}if((e+-1|0)>>>0>26){Pp(32005,78,1,c[2344]|0)|0;c[o>>2]=0;i=p;return}n=b+188|0;c[n>>2]=Ki(c[n>>2]|0,h)|0;n=b+200|0;Ji(c[n>>2]|0,f,k,l,e,h)|0;n=rj(c[n>>2]|0)|0;c[b+196>>2]=n;s=b+192|0;c[s>>2]=Zp(c[s>>2]|0,n<<3)|0;n=b+204|0;b=Zp(c[n>>2]|0,c[g>>2]|0)|0;c[n>>2]=b;if(!((b|0)==0|(c[s>>2]|0)==0)){i=p;return}Pp(32084,75,1,c[2344]|0)|0;c[o>>2]=0;i=p;return}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();f=p+16|0;o=p+8|0;g=p;h=a+32|0;if(!(c[h>>2]|0)){n=a+16|0;o=a+4|0;o=c[o>>2]|0;a=c[n>>2]|0;a=Fg(o,a,d)|0;i=p;return a|0}e=a+16|0;k=g+4|0;l=a+8|0;m=0;n=0;while(1){r=c[a>>2]|0;s=c[b+(m<<3)+4>>2]|0;q=(c[e>>2]|0)+n|0;c[g>>2]=c[b+(m<<3)>>2];c[k>>2]=s;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Sj(r,f,o,q);m=m+1|0;if(m>>>0>=(c[h>>2]|0)>>>0)break;else n=(c[l>>2]|0)+n|0}r=a+4|0;r=c[r>>2]|0;s=c[e>>2]|0;s=Fg(r,s,d)|0;i=p;return s|0} +function Sj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;n=o+8|0;m=o;switch(c[b>>2]|0){case 60:{n=c[d+4>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=n;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Tj(b,h,e,f);i=o;return}case 47:{p=+g[d>>2];d=c[d+4>>2]|0;n=~~(127.0-p*128.0);n=(n|0)>255?255:n;a[f>>0]=(n|0)<0?0:n;n=!(p>0.0);g[b+92>>2]=n?-1.0:1.0;g[b+96>>2]=0.0;g[b+84>>2]=p;c[b+88>>2]=d;c[e>>2]=n&1;i=o;return}case 48:{q=+g[d>>2];p=+g[d+4>>2];d=~~(127.0-p*185.60000610351562);d=(d|0)>255?255:d;a[f>>0]=(d|0)<0?0:d;d=~~(127.0-q*185.60000610351562);d=(d|0)>255?255:d;a[f+1>>0]=(d|0)<0?0:d;d=!(q>0.0);n=p>0.0;c[e>>2]=(n?0:2)|d&1;g[b+92>>2]=d?-.7071067690849304:.7071067690849304;g[b+96>>2]=n?.7071067690849304:-.7071067690849304;g[b+84>>2]=q;g[b+88>>2]=p;i=o;return}default:{if(c[b+244>>2]|0?c[b+248>>2]|0:0){n=c[d+4>>2]|0;c[l>>2]=c[d>>2];c[l+4>>2]=n;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Uj(b,h,e,f);i=o;return}l=c[b+240>>2]|0;k=c[d+4>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=k;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];ub[l&31](b,h,n);n=c[n>>2]|0;c[e>>2]=n;Vj(n,c[b+4>>2]|0,f);i=o;return}}}function Tj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=i;i=i+32|0;if((i|0)>=(j|0))ba();w=G+16|0;x=G+8|0;y=G;C=c[b+4>>2]|0;D=b+8|0;z=c[D>>2]|0;A=+(z>>>0);E=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();F=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=(C|0)==0;if(!B){k=0;do{g[E+(k<<2)>>2]=4.0;g[F+(k<<2)>>2]=4.0;k=k+1|0}while((k|0)!=(C|0))}a:do if(!z)l=0;else{r=b+76|0;s=+g[d>>2];t=+g[d+4>>2];u=y+4|0;v=x+4|0;o=C+-1|0;if(B){m=0.0;k=0;l=0;while(1){n=c[r>>2]|0;H=s-+g[n+(k<<3)>>2];h=t-+g[n+(k<<3)+4>>2];g[y>>2]=H;g[u>>2]=h;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];Jo(x,w);h=+g[x>>2]*H-+g[v>>2]*h;n=(k|0)==0|h>2]|0;H=s-+g[q+(p<<3)>>2];h=t-+g[q+(p<<3)+4>>2];g[y>>2]=H;g[u>>2]=h;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];Jo(x,w);h=+g[x>>2]*H-+g[v>>2]*h;q=(p|0)==0|h>2])g[k>>2]=h}else{k=F+(n<<2)|0;if(h<+g[k>>2])g[k>>2]=h}n=n+1|0}while((n|0)!=(C|0));p=p+1|0;if((p|0)==(z|0))break;else m=q?h:m}}while(0);if(!B){h=A*19.200000762939453;k=0;do{B=~~(h*(+g[E+(k<<2)>>2]-+g[F+(k<<2)>>2])+127.0);B=(B|0)>255?255:B;a[f+k>>0]=(B|0)<0?0:B;k=k+1|0}while((k|0)!=(C|0))}c[e>>2]=l;if((c[D>>2]|0)>>>0>l>>>0){e=c[b+76>>2]|0;f=c[e+(l<<3)+4>>2]|0;c[b+92>>2]=c[e+(l<<3)>>2];c[b+96>>2]=f;f=c[d+4>>2]|0;c[b+84>>2]=c[d>>2];c[b+88>>2]=f;i=G;return}else{Pp(29467,52,1,c[2344]|0)|0;lb(1)}}function Uj(b,e,f,h){b=b|0;e=e|0;f=f|0;h=h|0;var l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+48|0;if((i|0)>=(j|0))ba();n=I+32|0;D=I+24|0;H=I+8|0;o=I+16|0;p=I;m=c[e>>2]|0;e=c[e+4>>2]|0;E=c[b+240>>2]|0;c[D>>2]=m;c[D+4>>2]=e;c[n>>2]=c[D>>2];c[n+4>>2]=c[D+4>>2];ub[E&31](b,n,H);E=c[b+4>>2]|0;A=b+8|0;B=+((c[A>>2]|0)>>>0);F=i;i=i+((1*(E<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();G=i;i=i+((1*(E<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();C=(E|0)==0;z=(c[k>>2]=m,+g[k>>2]);y=(c[k>>2]=e,+g[k>>2]);if(!C){e=0;do{g[F+(e<<2)>>2]=8.0;g[G+(e<<2)>>2]=8.0;e=e+1|0}while((e|0)!=(E|0))}w=c[b+244>>2]|0;x=c[b+248>>2]|0;q=z-+g[b+92>>2];l=y-+g[b+96>>2];g[p>>2]=q;g[p+4>>2]=l;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];Jo(o,n);l=+g[o>>2]*q-+g[o+4>>2]*l;if(!C){e=c[H>>2]|0;m=E+-1|0;n=0;do{if(!(e&1<>2]=l;else g[G+(n<<2)>>2]=l;n=n+1|0}while((n|0)!=(E|0))}a:do if(x|0){r=b+80|0;s=b+236|0;t=D+4|0;u=E+-1|0;v=b+76|0;if(C){m=0;while(1){e=d[w+((_(c[H>>2]|0,x)|0)+m)>>0]|0;if(!(c[r>>2]|0)){if((c[A>>2]|0)>>>0<=e>>>0)break;ub[c[s>>2]&31](b,e,D)}else{o=c[v>>2]|0;p=c[o+(e<<3)+4>>2]|0;c[D>>2]=c[o+(e<<3)>>2];c[t>>2]=p}m=m+1|0;if(m>>>0>=x>>>0)break a}p=c[2344]|0;Pp(29087,65,1,p)|0;lb(1)}m=c[H>>2]|0;p=0;while(1){e=d[w+((_(m,x)|0)+p)>>0]|0;if(!(c[r>>2]|0)){if((c[A>>2]|0)>>>0<=e>>>0)break;ub[c[s>>2]&31](b,e,D);l=+g[D>>2];q=+g[t>>2];m=c[H>>2]|0}else{o=c[v>>2]|0;n=c[o+(e<<3)>>2]|0;o=c[o+(e<<3)+4>>2]|0;c[D>>2]=n;c[t>>2]=o;l=(c[k>>2]=n,+g[k>>2]);q=(c[k>>2]=o,+g[k>>2])}l=z-l;q=y-q;l=q*q+l*l;n=d[w+((_(m,x)|0)+p)>>0]|0;o=0;do{if(!(n&1<>2])g[e>>2]=l}else{e=G+(o<<2)|0;if(l<+g[e>>2])g[e>>2]=l}o=o+1|0}while((o|0)!=(E|0));p=p+1|0;if(p>>>0>=x>>>0)break a}b=c[2344]|0;Pp(29087,65,1,b)|0;lb(1)}while(0);if(C){H=c[H>>2]|0;c[f>>2]=H;i=I;return}l=B*19.200000762939453;e=0;do{b=~~(l*(+g[F+(e<<2)>>2]-+g[G+(e<<2)>>2])+127.0);b=(b|0)>255?255:b;a[h+e>>0]=(b|0)<0?0:b;e=e+1|0}while((e|0)!=(E|0));H=c[H>>2]|0;c[f>>2]=H;i=I;return}function Vj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;if(d>>>0>16){g=c[2344]|0;c[f>>2]=16;Jp(g,31637,f)|0;lb(1)}if(!d){i=h;return}f=d+-1|0;g=0;do{a[e+g>>0]=((1<>31;g=g+1|0}while((g|0)!=(d|0));i=h;return}function Wj(a){a=a|0;return +(+g[a+36>>2])}function Xj(a){a=a|0;return +(+g[a+40>>2])}function Yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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.0,x=0.0;v=i;i=i+96|0;if((i|0)>=(j|0))ba();t=v+48|0;k=v+32|0;d=v+16|0;e=v+8|0;m=v;f=v+40|0;h=v+24|0;l=m+4|0;g[m>>2]=0.0;g[l>>2]=0.0;r=c[b+4>>2]|0;u=a+92|0;s=c[u>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=r;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];lj(s,t,k);gd(c[u>>2]|0);s=a+100|0;d=c[s>>2]|0;b=k+4|0;r=c[b>>2]|0;c[e>>2]=c[k>>2];c[e+4>>2]=r;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];Ih(d,t);Jh(c[s>>2]|0,c[a+112>>2]|0,k);d=a+108|0;e=c[d>>2]|0;c[d>>2]=e+1;if((e|0)>-1){q=c[k>>2]|0;r=c[b>>2]|0;c[m>>2]=q;c[l>>2]=r;c[d>>2]=e+-1;b=q;d=r}else{b=0;d=0}if((e|0)<0){i=v;return}r=a+96|0;p=c[r>>2]|0;c[f>>2]=b;c[f+4>>2]=d;c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];lj(p,t,m);p=a+188|0;n=c[p>>2]|0;q=c[l>>2]|0;c[h>>2]=c[m>>2];c[h+4>>2]=q;c[t>>2]=c[h>>2];c[t+4>>2]=c[h+4>>2];oj(n,t,k);x=+Zj(c[p>>2]|0);w=+_j(c[p>>2]|0);$j(c[r>>2]|0,x);gd(c[r>>2]|0);p=a+8|0;g[p>>2]=+g[p>>2]+w*w;n=c[l>>2]|0;q=a+220|0;o=c[q>>2]|0;k=a+192|0;f=c[k>>2]|0;c[f+(o<<3)>>2]=c[m>>2];c[f+(o<<3)+4>>2]=n;o=(c[q>>2]|0)+1|0;c[q>>2]=o;f=a+196|0;if((o|0)!=(c[f>>2]|0)){i=v;return}h=a+200|0;b=c[h>>2]|0;d=c[k>>2]|0;l=a+204|0;e=c[l>>2]|0;if(!(c[a+184>>2]|0))b=nj(b,d,e)|0;else b=Rj(b,d,e)|0;d=a+212|0;c[d>>2]=b;o=a+48|0;c[o>>2]=(c[o>>2]|0)+1;o=a+52|0;c[o>>2]=(c[o>>2]|0)+1;o=a+56|0;c[o>>2]=(c[o>>2]|0)+b;b=a+208|0;o=a+60|0;c[o>>2]=(c[o>>2]|0)+(c[b>>2]|0);if(c[a>>2]|0){m=ak(c[h>>2]|0)|0;g[p>>2]=+xp(+g[p>>2]/+((c[f>>2]|0)>>>0))*10.0;g[a+12>>2]=+xp(+g[a+88>>2])*20.0;g[a+16>>2]=+pj(c[u>>2]|0);c[a+20>>2]=c[k>>2];c[a+24>>2]=c[f>>2];c[a+28>>2]=m;c[a+32>>2]=c[964+(m<<4)+12>>2];c[a+36>>2]=ck(c[h>>2]|0)|0;c[a+40>>2]=dk(c[h>>2]|0)|0;c[a+44>>2]=ek(c[h>>2]|0)|0;m=c[a>>2]|0;n=c[a+160>>2]|0;o=c[a+164>>2]|0;l=c[l>>2]|0;k=c[b>>2]|0;e=c[d>>2]|0;f=c[a+4>>2]|0;h=t;b=p;d=h+40|0;do{c[h>>2]=c[b>>2];h=h+4|0;b=b+4|0}while((h|0)<(d|0));pb[m&1](n,o,l,k,e,t,f)|0}$i(c[u>>2]|0);$i(c[r>>2]|0);Gh(c[s>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[q>>2]=0;g[a+8>>2]=0.0;i=v;return}function Zj(a){a=a|0;var b=0,d=0.0,e=0,f=0.0,h=0,k=0,l=0;b=i;i=i+32|0;if((i|0)>=(j|0))ba();h=b+16|0;e=b+8|0;k=b;d=+g[a+84>>2];f=+g[a+88>>2];l=c[a+96>>2]|0;c[k>>2]=c[a+92>>2];c[k+4>>2]=l;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Jo(e,h);i=b;return +(+g[e>>2]*f+ +g[e+4>>2]*d)}function _j(a){a=a|0;var b=0,d=0.0,e=0,f=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();e=b+8|0;f=b;d=+g[a+96>>2]-+g[a+88>>2];g[f>>2]=+g[a+92>>2]-+g[a+84>>2];g[f+4>>2]=d;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];d=+vo(e);i=b;return +d}function $j(a,b){a=a|0;b=+b;var c=0;c=a+8|0;g[c>>2]=+g[c>>2]+ +g[a+1052>>2]*b;c=a+4|0;b=+g[c>>2]+ +g[a+1056>>2]*b;g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function ak(a){a=a|0;return bk(c[a>>2]|0)|0}function bk(a){a=a|0;return c[a>>2]|0}function ck(a){a=a|0;return yg(c[a+4>>2]|0)|0}function dk(a){a=a|0;return zg(c[a+4>>2]|0)|0}function ek(a){a=a|0;return Ag(c[a+4>>2]|0)|0}function fk(a){a=a|0;var b=0;b=a+232|0;if(c[b>>2]|0)return;c[a+240>>2]=Pc(2e3)|0;c[a+228>>2]=1;c[b>>2]=1;return}function gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=i;i=i+256|0;if((i|0)>=(j|0))ba();w=x+248|0;v=x+224|0;s=x+200|0;r=x+192|0;q=x+168|0;p=x+144|0;o=x+136|0;n=x+112|0;m=x+88|0;l=x+64|0;k=x+40|0;f=x+16|0;e=x+8|0;d=x;u=x+252|0;if(!(c[a+232>>2]|0)){Pp(32219,90,1,c[2344]|0)|0;i=x;return}t=Dp(b,37214)|0;c[d>>2]=b;Jp(t,33933,d)|0;Pp(37782,2,1,t)|0;Pp(37353,11,1,t)|0;Pp(33960,12,1,t)|0;c[e>>2]=2e3;Jp(t,37365,e)|0;Pp(32310,54,1,t)|0;Pp(37591,16,1,t)|0;Rc(c[a+240>>2]|0,u);d=0;do{e=c[u>>2]|0;z=+g[e+(d<<3)>>2];y=+g[e+(d<<3)+4>>2];d=d+1|0;c[f>>2]=d;h[f+8>>3]=z;h[f+16>>3]=y;Jp(t,37608,f)|0}while((d|0)!=2e3);Pp(37782,2,1,t)|0;Pp(32365,18,1,t)|0;Pp(34043,48,1,t)|0;Pp(39386,9,1,t)|0;Pp(37686,24,1,t)|0;Pp(37711,30,1,t)|0;Pp(32384,27,1,t)|0;d=c[a+116>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[k>>2]=1;h[k+8>>3]=y;h[k+16>>3]=z;Jp(t,32412,k)|0;d=1;do{k=c[u>>2]|0;y=+g[k+(d<<3)>>2];z=+g[k+(d<<3)+4>>2];d=d+1|0;c[l>>2]=d;h[l+8>>3]=y;h[l+16>>3]=z;Jp(t,32412,l)|0}while((d|0)!=64);Pp(32452,27,1,t)|0;d=c[a+120>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[m>>2]=1;h[m+8>>3]=y;h[m+16>>3]=z;Jp(t,32480,m)|0;d=1;do{m=c[u>>2]|0;y=+g[m+(d<<3)>>2];z=+g[m+(d<<3)+4>>2];d=d+1|0;c[n>>2]=d;h[n+8>>3]=y;h[n+16>>3]=z;Jp(t,32480,n)|0}while((d|0)!=64);e=a+144|0;c[o>>2]=c[e>>2];Jp(t,32520,o)|0;d=c[a+140>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(o=d,y=+g[o>>2],z=+g[o+4>>2],c[p>>2]=1,h[p+8>>3]=y,h[p+16>>3]=z,Jp(t,32547,p)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{p=c[u>>2]|0;y=+g[p+(d<<3)>>2];z=+g[p+(d<<3)+4>>2];d=d+1|0;c[q>>2]=d;h[q+8>>3]=y;h[q+16>>3]=z;Jp(t,32547,q)|0}while(d>>>0<(c[e>>2]|0)>>>0)}e=a+196|0;c[r>>2]=c[e>>2];Jp(t,32585,r)|0;d=c[a+192>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(r=d,y=+g[r>>2],z=+g[r+4>>2],c[s>>2]=1,h[s+8>>3]=y,h[s+16>>3]=z,Jp(t,32613,s)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{s=c[u>>2]|0;y=+g[s+(d<<3)>>2];z=+g[s+(d<<3)+4>>2];d=d+1|0;c[v>>2]=d;h[v+8>>3]=y;h[v+16>>3]=z;Jp(t,32613,v)|0}while(d>>>0<(c[e>>2]|0)>>>0)}Pp(32652,20,1,t)|0;Pp(32673,45,1,t)|0;Pp(32719,20,1,t)|0;Pp(32740,28,1,t)|0;Pp(39386,9,1,t)|0;Pp(32769,23,1,t)|0;Pp(39372,13,1,t)|0;Pp(32793,34,1,t)|0;Pp(32828,20,1,t)|0;Pp(32849,47,1,t)|0;Pp(32719,20,1,t)|0;Pp(32740,28,1,t)|0;Pp(39386,9,1,t)|0;Pp(32769,23,1,t)|0;Pp(39372,13,1,t)|0;Pp(32897,35,1,t)|0;Pp(37782,2,1,t)|0;Gp(t)|0;c[w>>2]=b;Qp(32933,w)|0;i=x;return}function hk(){var a=0,b=0,d=0,e=0;a=Wp(100)|0;c[a+4>>2]=2;c[a+8>>2]=3;g[a+12>>2]=.5;c[a+16>>2]=63;d=a+24|0;c[d>>2]=0;c[a+28>>2]=6;e=ik(2,3,.5)|0;c[a>>2]=e;b=a+32|0;c[b>>2]=Yh(6,109,1)|0;jk(e);c[a+84>>2]=0;Vh(c[b>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;kk(a,8);c[a+72>>2]=0;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;b=ug(0,6,1,1)|0;c[a+56>>2]=b;b=xg(b)|0;c[a+76>>2]=b;c[d>>2]=b<<3;c[a+80>>2]=Wp(b)|0;return a|0}function ik(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0;if(a>>>0<2){Pp(32977,59,1,c[2344]|0)|0;lb(1)}if(!b){Pp(33037,57,1,c[2344]|0)|0;lb(1)}if(d<=0.0|d>=1.0){Pp(33095,65,1,c[2344]|0)|0;lb(1)}else{e=Wp(32)|0;c[e>>2]=a;c[e+4>>2]=b;g[e+8>>2]=d;g[e+28>>2]=1.0/+(a>>>0);f=_(a<<1,b)|0|1;c[e+12>>2]=f;f=Wp(f<<2)|0;c[e+16>>2]=f;ue(a,b,d,0.0,f);b=bh(11,a,b,d,0.0)|0;c[e+20>>2]=b;g[e+24>>2]=0.0;eh(b);return e|0}return 0}function jk(a){a=a|0;g[a+24>>2]=0.0;eh(c[a+20>>2]|0);return}function kk(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+88>>2]|0){Pp(33161,87,1,c[2344]|0)|0;return}c[a+36>>2]=b;d=b+5|0;e=a+44|0;c[e>>2]=Zp(c[e>>2]|0,d)|0;e=a+52|0;b=c[e>>2]|0;if(b|0)wg(b);b=ug(d,6,6,1)|0;c[e>>2]=b;b=xg(b)|0;e=a+40|0;c[e>>2]=b;d=a+48|0;c[d>>2]=Zp(c[d>>2]|0,b)|0;c[a+20>>2]=c[e>>2]<<3;return}function lk(a){a=a|0;jk(c[a>>2]|0);c[a+84>>2]=0;Vh(c[a+32>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;return}function mk(a){a=a|0;nk(c[a>>2]|0);dd(c[a+32>>2]|0);Xp(c[a+44>>2]|0);Xp(c[a+48>>2]|0);wg(c[a+52>>2]|0);Xp(c[a+80>>2]|0);wg(c[a+56>>2]|0);Xp(a);return}function nk(a){a=a|0;ch(c[a+20>>2]|0);Xp(c[a+16>>2]|0);Xp(a);return}function ok(a){a=a|0;return c[a+88>>2]|0}function pk(a){a=a|0;if(!(c[a+88>>2]|0)){Pp(33249,58,1,c[2344]|0)|0;a=0;return a|0}else{a=_((c[a+20>>2]|0)+(c[a+16>>2]|0)+(c[a+24>>2]|0)+(c[a+8>>2]<<1)|0,c[a+4>>2]|0)|0;return a|0}return 0}function qk(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;m=b+72|0;n=b+60|0;if((((c[m>>2]|0)==(g|0)?(c[n>>2]|0)==(h|0):0)?(l=b+64|0,(c[l>>2]|0)==(i|0)):0)?(k=b+68|0,(c[k>>2]|0)==(j|0)):0){h=b+56|0;i=b+80|0}else{c[m>>2]=g;c[n>>2]=h;l=b+64|0;c[l>>2]=i;k=b+68|0;c[k>>2]=j;o=b+56|0;h=vg(c[o>>2]|0,g,h,i,j)|0;c[o>>2]=h;h=xg(h)|0;c[b+76>>2]=h;c[b+24>>2]=h<<3;i=b+80|0;c[i>>2]=Zp(c[i>>2]|0,h)|0;h=o}c[b+88>>2]=1;g=b+44|0;o=b+36|0;fq(c[g>>2]|0,e|0,c[o>>2]|0)|0;o=c[o>>2]|0;a[(c[g>>2]|0)+o>>0]=4;a[(c[g>>2]|0)+(o+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(o+2)>>0]=c[m>>2];e=o+3|0;a[(c[g>>2]|0)+e>>0]=c[n>>2]<<5;e=(c[g>>2]|0)+e|0;a[e>>0]=d[e>>0]|0|c[l>>2]&31;a[(c[g>>2]|0)+(o+4)>>0]=c[k>>2]&31;o=b+48|0;Bg(c[b+52>>2]|0,c[g>>2]|0,c[o>>2]|0);Cg(c[o>>2]|0,c[b+40>>2]|0);Bg(c[h>>2]|0,f,c[i>>2]|0);return}function rk(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;g=a+84|0;switch(c[g>>2]|0){case 0:{sk(a,b);break}case 1:{e=a+96|0;Up(f,c[e>>2]|0,8);tk(c[a>>2]|0,(d[(c[a+48>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+20>>2]|0)){c[e>>2]=0;c[g>>2]=2}break}case 2:{e=a+96|0;Up(f,c[e>>2]|0,8);tk(c[a>>2]|0,(d[(c[a+80>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+24>>2]|0)){c[e>>2]=0;c[g>>2]=3}break}case 3:{uk(a,b);break}default:{Pp(33308,70,1,c[2344]|0)|0;lb(1)}}e=a+92|0;if(!(c[e>>2]|0)){a=0;i=h;return a|0}jk(c[a>>2]|0);c[g>>2]=0;Vh(c[a+32>>2]|0);c[a+88>>2]=0;c[e>>2]=0;c[a+96>>2]=0;a=1;i=h;return a|0}function sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;k=a+32|0;l=Wh(c[k>>2]|0)|0;tk(c[a>>2]|0,l&255,b);l=a+96|0;d=c[l>>2]|0;j=a+8|0;h=c[j>>2]|0;a:do if(d>>>0>>0?(i=a+4|0,e=c[i>>2]|0,(e|0)!=0):0){f=0;while(1){n=+Hg((_(d,e)|0)+f|0,_(e<<1,h)|0);d=b+(f<<3)|0;e=b+(f<<3)+4|0;m=+g[e>>2]*n;g[d>>2]=+g[d>>2]*n;g[e>>2]=m;f=f+1|0;e=c[i>>2]|0;d=c[l>>2]|0;if(f>>>0>=e>>>0)break a;h=c[j>>2]|0}}while(0);b=d+1|0;c[l>>2]=b;if((b|0)!=(c[a+16>>2]|0))return;Vh(c[k>>2]|0);c[l>>2]=0;c[a+84>>2]=1;return}function tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0.0;k=i;e=+g[a+28>>2];h=i;i=i+((1*(c[a>>2]<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();gh(c[a+20>>2]|0,(b|0)==0?-e:e,h);if(!(c[a>>2]|0)){i=k;return}b=a+24|0;f=0;do{l=+g[b>>2]+ +g[h+(f<<2)>>2];e=l;l=e>3.141592653589793?e+-6.283185307179586:l;e=l;l=e<-3.141592653589793?e+6.283185307179586:l;g[b>>2]=l;e=+R(+l);g[d+(f<<3)>>2]=+Q(+l);g[d+(f<<3)+4>>2]=e;f=f+1|0}while(f>>>0<(c[a>>2]|0)>>>0);i=k;return}function uk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0;k=(Mp()|0)%2|0;tk(c[a>>2]|0,k&255,b);k=a+96|0;d=c[k>>2]|0;i=a+8|0;h=c[i>>2]|0;if(d>>>0>=h>>>0?(j=a+4|0,e=c[j>>2]|0,(e|0)!=0):0){f=0;while(1){m=+Hg((_(d,e)|0)+f|0,_(e<<1,h)|0);h=b+(f<<3)|0;e=b+(f<<3)+4|0;l=+g[e>>2]*m;g[h>>2]=+g[h>>2]*m;g[e>>2]=l;f=f+1|0;e=c[j>>2]|0;if(f>>>0>=e>>>0)break;d=c[k>>2]|0;h=c[i>>2]|0}d=c[k>>2]|0}b=d+1|0;c[k>>2]=b;if((b|0)!=(c[a+28>>2]|0))return;c[k>>2]=0;c[a+92>>2]=1;return}function vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;q=Wp(256)|0;c[q+16>>2]=a;c[q+20>>2]=b;n=q+4|0;c[n>>2]=2;o=q+8|0;c[o>>2]=3;p=q+12|0;g[p>>2]=.5;c[q>>2]=Sh(3,.375)|0;m=q+132|0;c[m>>2]=63;f=q+136|0;c[f>>2]=Wp(252)|0;c[q+140>>2]=Wp(252)|0;k=i;i=i+((1*((c[n>>2]|0)*63<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=Yh(6,109,1)|0;b=ik(c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;if((c[o>>2]|0)!=(0-(c[m>>2]|0)|0)){h=0;do{d=Wh(a)|0;d=d&255;if(h>>>0<(c[m>>2]|0)>>>0)g[(c[f>>2]|0)+(h<<2)>>2]=d|0?1.0:-1.0;e=c[o>>2]|0;if(h>>>0>>0)tk(b,d,k);else tk(b,d,k+((_(c[n>>2]|0,h-e|0)|0)<<3)|0);h=h+1|0}while(h>>>0<((c[o>>2]|0)+(c[m>>2]|0)|0)>>>0)}nk(b);dd(a);l=q+108|0;c[l>>2]=Zh(k,_(c[n>>2]|0,c[m>>2]|0)|0,.5,.05000000074505806)|0;h=q+124|0;c[h>>2]=Pc(_((c[o>>2]|0)+(c[m>>2]|0)|0,c[n>>2]|0)|0)|0;a=q+84|0;c[a>>2]=32;e=q+76|0;c[e>>2]=jh(12,32,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;f=q+80|0;c[f>>2]=kh(12,c[a>>2]|0,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;a=q+128|0;c[a>>2]=Uc(0)|0;d=q+156|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;wk(q,8);d=q+196|0;c[d>>2]=1;c[q+180>>2]=6;c[q+184>>2]=1;c[q+188>>2]=1;b=ug(1,6,1,1)|0;c[q+208>>2]=b;b=xg(b)|0;c[q+192>>2]=b;c[q+204>>2]=Wp(c[d>>2]|0)|0;c[q+200>>2]=Wp(b)|0;b=q+216|0;d=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Qc(c[h>>2]|0);_h(c[l>>2]|0);$i(c[a>>2]|0);g[q+64>>2]=0.0;g[q+68>>2]=0.0;g[q+72>>2]=0.0;fh(c[e>>2]|0);fh(c[f>>2]|0);g[q+88>>2]=0.0;i=r;return q|0}function wk(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+144>>2]=b;b=b+5|0;d=a+164|0;c[d>>2]=Zp(c[d>>2]|0,b)|0;d=a+168|0;e=c[d>>2]|0;if(e|0)wg(e);b=ug(b,6,6,1)|0;c[d>>2]=b;b=xg(b)|0;e=a+148|0;c[e>>2]=b;d=a+160|0;c[d>>2]=Zp(c[d>>2]|0,b)|0;e=c[e>>2]<<3;c[a+152>>2]=e;a=a+156|0;c[a>>2]=Zp(c[a>>2]|0,e)|0;return}function xk(a){a=a|0;if(c[a+236>>2]|0){Tc(c[a+240>>2]|0);Oc(c[a+244>>2]|0);Oc(c[a+248>>2]|0);Oc(c[a+252>>2]|0)}Ph(c[a>>2]|0);dh(c[a+76>>2]|0);dh(c[a+80>>2]|0);Yc(c[a+128>>2]|0);$h(c[a+108>>2]|0);Tc(c[a+124>>2]|0);Xp(c[a+136>>2]|0);Xp(c[a+140>>2]|0);wg(c[a+168>>2]|0);Xp(c[a+156>>2]|0);Xp(c[a+160>>2]|0);Xp(c[a+164>>2]|0);wg(c[a+208>>2]|0);Xp(c[a+200>>2]|0);Xp(c[a+204>>2]|0);Xp(a);return}function yk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0;l=i;i=i+48|0;if((i|0)>=(j|0))ba();d=l+40|0;e=l+8|0;f=l;g=l+32|0;h=l+24|0;k=l+16|0;switch(c[a+216>>2]|0){case 0:{h=c[b>>2]|0;k=c[b+4>>2]|0;b=c[a+124>>2]|0;c[e>>2]=h;c[e+4>>2]=k;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];Sc(b,d);b=c[a+108>>2]|0;c[f>>2]=h;c[f+4>>2]=k;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];if(ai(b,d,a+112|0,a+116|0,a+120|0)|0)zk(a);i=l;return}case 1:{k=c[b+4>>2]|0;c[g>>2]=c[b>>2];c[g+4>>2]=k;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];Ak(a,d);i=l;return}case 2:{k=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=k;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];Ck(a,d);i=l;return}case 3:{h=c[b+4>>2]|0;c[k>>2]=c[b>>2];c[k+4>>2]=h;c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];Fk(a,d);i=l;return}default:{i=l;return}}}function zk(a){a=a|0;var b=0,d=0,e=0.0,f=0,h=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,I=0,J=0;E=i;i=i+64|0;if((i|0)>=(j|0))ba();B=E+56|0;t=E+48|0;u=E+40|0;w=E+24|0;D=E+16|0;A=E;x=E+32|0;C=E+8|0;y=a+76|0;fh(c[y>>2]|0);z=a+80|0;fh(c[z>>2]|0);Rc(c[a+124>>2]|0,D);v=a+4|0;l=a+8|0;b=_(c[v>>2]<<1,c[l>>2]|0)|0;f=c[a+84>>2]|0;r=+(f>>>0);e=-(+g[a+112>>2]*r);h=a+92|0;g[h>>2]=e;d=~~+cq(+e);k=a+96|0;c[k>>2]=d;b=b+-1|0;if((d|0)<0){do{d=f+d|0;e=e+r;b=b+-1|0}while((d|0)<0);c[k>>2]=d;g[h>>2]=e}c[a+100>>2]=0;q=a+128|0;_c(c[q>>2]|0,+g[a+116>>2]);s=_((c[l>>2]|0)+(c[a+132>>2]|0)|0,c[v>>2]|0)|0;if(b|0){d=x+4|0;f=A+4|0;h=a+64|0;k=a+68|0;l=u+4|0;m=t+4|0;n=w+4|0;o=a+72|0;p=0;do{H=c[q>>2]|0;J=c[D>>2]|0;I=c[J+(p<<3)+4>>2]|0;c[x>>2]=c[J+(p<<3)>>2];c[d>>2]=I;c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];lj(H,B,A);gd(c[q>>2]|0);F=+g[A>>2];e=+g[f>>2];H=c[k>>2]|0;c[u>>2]=c[h>>2];c[l>>2]=H;c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];Jo(t,B);r=+g[t>>2];G=+g[m>>2];g[w>>2]=r*F-G*e;g[n>>2]=G*F+r*e;c[B>>2]=c[w>>2];c[B+4>>2]=c[w+4>>2];r=+Ao(B);r=+((c[v>>2]|0)>>>0)*r;g[o>>2]=r;g[h>>2]=F;g[k>>2]=e;hh(c[y>>2]|0,r);hh(c[z>>2]|0,+g[o>>2]);p=p+1|0}while((p|0)!=(b|0))}c[a+216>>2]=1;if(b>>>0>=s>>>0){i=E;return}d=C+4|0;do{I=c[D>>2]|0;J=c[I+(b<<3)+4>>2]|0;c[C>>2]=c[I+(b<<3)>>2];c[d>>2]=J;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];yk(a,B);b=b+1|0}while((b|0)!=(s|0));i=E;return}function Ak(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();l=o+40|0;d=o+32|0;e=o+24|0;f=o+8|0;k=o;h=o+16|0;m=a+220|0;n=a+132|0;if((c[m>>2]|0)==(c[n>>2]|0)){Pp(33379,64,1,c[2344]|0)|0;i=o;return}t=a+128|0;u=c[t>>2]|0;v=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=v;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];lj(u,l,k);gd(c[t>>2]|0);r=+g[k>>2];q=+g[k+4>>2];b=a+64|0;k=a+68|0;h=c[k>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=h;c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];Jo(d,l);p=+g[d>>2];s=+g[d+4>>2];g[f>>2]=p*r-s*q;g[f+4>>2]=s*r+p*q;c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];p=+Ao(l);d=a+4|0;p=+((c[d>>2]|0)>>>0)*p;g[a+72>>2]=p;g[b>>2]=r;g[k>>2]=q;g[l>>2]=0.0;if(Bk(a,p,l)|0?(v=c[m>>2]|0,g[(c[a+140>>2]|0)+(v<<2)>>2]=+g[l>>2]/+((c[d>>2]|0)>>>0),v=v+1|0,c[m>>2]=v,(v|0)==(c[n>>2]|0)):0)c[a+216>>2]=2;i=o;return}function Bk(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();f=s+24|0;r=s+20|0;n=s+16|0;h=s+8|0;k=s;l=a+76|0;hh(c[l>>2]|0,b);m=a+80|0;hh(c[m>>2]|0,b);g[r>>2]=0.0;g[n>>2]=0.0;if(c[a+232>>2]|0){Nc(c[a+244>>2]|0,+g[a+72>>2]);ih(c[l>>2]|0,c[a+96>>2]|0,r);Nc(c[a+248>>2]|0,+g[r>>2])}q=a+100|0;e=c[q>>2]|0;if((e|0)>=1){n=e;p=0;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}c[q>>2]=2;p=a+96|0;ih(c[l>>2]|0,c[p>>2]|0,r);ih(c[m>>2]|0,c[p>>2]|0,n);l=a+88|0;b=+g[l>>2]*.9900000095367432;c[k>>2]=c[r>>2];g[k+4>>2]=0.0;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];Jo(h,f);b=+g[h>>2]*.05000000074505806*+g[n>>2]+b;g[l>>2]=b;l=a+92|0;b=b+ +g[l>>2];g[l>>2]=b;f=~~+cq(+b);c[p>>2]=f;k=c[a+84>>2]|0;if((f|0)<0){o=+(k>>>0);e=c[q>>2]|0;do{f=k+f|0;b=b+o;e=e+-1|0}while((f|0)<0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e}h=k+-1|0;if(f>>>0<=h>>>0){n=c[q>>2]|0;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}o=+(k>>>0);e=c[q>>2]|0;do{f=f-k|0;b=b-o;e=e+1|0}while(f>>>0>h>>>0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e;n=e;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}function Ck(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0;r=i;i=i+80|0;if((i|0)>=(j|0))ba();p=r+40|0;e=r+32|0;l=r+16|0;o=r+8|0;m=r;k=r+24|0;q=b+128|0;n=c[q>>2]|0;h=c[d+4>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=h;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];lj(n,p,m);gd(c[q>>2]|0);u=+g[m>>2];t=+g[m+4>>2];m=b+64|0;n=b+68|0;k=c[n>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=k;c[p>>2]=c[l>>2];c[p+4>>2]=c[l+4>>2];Jo(e,p);s=+g[e>>2];v=+g[e+4>>2];g[o>>2]=s*u-v*t;g[o+4>>2]=v*u+s*t;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];s=+Ao(p);s=+((c[b+4>>2]|0)>>>0)*s;o=b+72|0;g[o>>2]=s;g[m>>2]=u;g[n>>2]=t;g[e>>2]=0.0;if(!(Bk(b,s,e)|0)){i=r;return}l=b+224|0;a[(c[b+156>>2]|0)+(c[l>>2]|0)>>0]=+g[e>>2]>0.0&1;m=(c[l>>2]|0)+1|0;c[l>>2]=m;if((m|0)!=(c[b+152>>2]|0)){i=r;return}Dk(b);d=b+172|0;do if(!(c[d>>2]|0)){e=c[b+16>>2]|0;if(e|0){l=b+24|0;g[b+28>>2]=+xp(+g[b+120>>2])*20.0;g[l>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;f=c[b+164>>2]|0;h=c[b+20>>2]|0;k=p;m=k+40|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));pb[e&1](f,0,0,0,0,p,h)|0;p=b+216|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;Qc(c[b+124>>2]|0);_h(c[b+108>>2]|0);$i(c[q>>2]|0);g[b+64>>2]=0.0;g[n>>2]=0.0;g[o>>2]=0.0;fh(c[b+76>>2]|0);fh(c[b+80>>2]|0);g[b+88>>2]=0.0;if(c[d>>2]|0)break}p=b+216|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;Qc(c[b+124>>2]|0);_h(c[b+108>>2]|0);$i(c[q>>2]|0);g[b+64>>2]=0.0;g[n>>2]=0.0;g[o>>2]=0.0;fh(c[b+76>>2]|0);fh(c[b+80>>2]|0);g[b+88>>2]=0.0;i=r;return}while(0);c[b+216>>2]=3;i=r;return}function Dk(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=b+160|0;e=b+148|0;Ek(c[b+156>>2]|0,c[b+152>>2]|0,c[f>>2]|0,c[e>>2]|0,n);Eg(c[f>>2]|0,c[e>>2]|0);e=b+164|0;f=Dg(c[b+168>>2]|0,c[f>>2]|0,c[e>>2]|0)|0;m=b+172|0;c[m>>2]=f;if(!f){i=n;return}h=c[b+144>>2]|0;g=c[e>>2]|0;if((a[g+h>>0]|0)!=4){Pp(33483,64,1,c[2344]|0)|0;c[m>>2]=0;i=n;return}l=d[g+(h+1)>>0]<<8|d[g+(h+2)>>0];e=d[g+(h+3)>>0]|0;k=e>>>5;e=e&31;h=d[g+(h+4)>>0]&31;if((k|0)==7){Pp(33548,70,1,c[2344]|0)|0;c[m>>2]=0;f=0;g=0}else g=k;if(e>>>0>27){Pp(33619,78,1,c[2344]|0)|0;c[m>>2]=0;f=0;e=0}if(h>>>0>27){Pp(33698,78,1,c[2344]|0)|0;c[m>>2]=0;i=n;return}if(!f){i=n;return}m=b+196|0;c[m>>2]=l;c[b+180>>2]=g;c[b+184>>2]=e;c[b+188>>2]=h;f=b+208|0;k=vg(c[f>>2]|0,l,g,e,h)|0;c[f>>2]=k;k=xg(k)|0;c[b+192>>2]=k;l=b+200|0;c[l>>2]=Zp(c[l>>2]|0,k)|0;b=b+204|0;c[b>>2]=Zp(c[b>>2]|0,c[m>>2]|0)|0;i=n;return}function Ek(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;Up(m,e,8);if((((c[m+4>>2]|0)>0&1)+(c[m>>2]|0)|0)>>>0>g>>>0){Pp(33444,38,1,c[2344]|0)|0;lb(-1)}if(!e){n=0;c[h>>2]=n;i=o;return}else{m=0;g=0}a:while(1){k=0;while(1){k=(d[b+g>>0]|0)&1|k&254;g=g+1|0;if(!(g&7)){l=k;break}if(g>>>0>>0)k=k<<1;else{b=k;k=m;n=8;break a}}k=m+1|0;a[f+m>>0]=l;if(g>>>0>>0)m=k;else{l=g;g=0;break}}if((n|0)==8){l=g;g=b&127}if(!(l&7)){n=k;c[h>>2]=n;i=o;return}a[f+k>>0]=g;n=k+1|0;c[h>>2]=n;i=o;return}function Fk(b,e){b=b|0;e=e|0;var f=0,h=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.0,x=0.0,y=0.0,z=0.0;v=i;i=i+80|0;if((i|0)>=(j|0))ba();t=v+40|0;f=v+32|0;p=v+16|0;s=v+8|0;q=v;o=v+24|0;u=b+128|0;r=c[u>>2]|0;n=c[e+4>>2]|0;c[o>>2]=c[e>>2];c[o+4>>2]=n;c[t>>2]=c[o>>2];c[t+4>>2]=c[o+4>>2];lj(r,t,q);gd(c[u>>2]|0);y=+g[q>>2];x=+g[q+4>>2];q=b+64|0;r=b+68|0;o=c[r>>2]|0;c[p>>2]=c[q>>2];c[p+4>>2]=o;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];Jo(f,t);w=+g[f>>2];z=+g[f+4>>2];g[s>>2]=w*y-z*x;g[s+4>>2]=z*y+w*x;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];w=+Ao(t);w=+((c[b+4>>2]|0)>>>0)*w;s=b+72|0;g[s>>2]=w;g[q>>2]=y;g[r>>2]=x;g[f>>2]=0.0;if(!(Bk(b,w,f)|0)){i=v;return}p=b+176|0;q=((d[p>>0]|0)<<1|+g[f>>2]>0.0)&255;a[p>>0]=q;p=b+228|0;e=b+200|0;a[(c[e>>2]|0)+((c[p>>2]|0)>>>3)>>0]=q;q=(c[p>>2]|0)+1|0;c[p>>2]=q;if((q|0)!=(c[b+192>>2]<<3|0)){i=v;return}f=b+204|0;n=Dg(c[b+208>>2]|0,c[e>>2]|0,c[f>>2]|0)|0;c[b+212>>2]=n;o=c[b+16>>2]|0;if(o|0){l=b+24|0;g[b+28>>2]=+xp(+g[b+120>>2])*20.0;g[l>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=c[b+180>>2];c[b+56>>2]=c[b+184>>2];c[b+60>>2]=c[b+188>>2];p=c[b+164>>2]|0;q=c[b+172>>2]|0;e=c[f>>2]|0;f=c[b+196>>2]|0;h=c[b+20>>2]|0;k=t;m=k+40|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));pb[o&1](p,q,e,f,n,t,h)|0}t=b+216|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;Qc(c[b+124>>2]|0);_h(c[b+108>>2]|0);$i(c[u>>2]|0);g[b+64>>2]=0.0;g[r>>2]=0.0;g[s>>2]=0.0;fh(c[b+76>>2]|0);fh(c[b+80>>2]|0);g[b+88>>2]=0.0;i=v;return}function Gk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+48|0;if((i|0)>=(j|0))ba();e=s+32|0;r=s+8|0;f=s+24|0;g=s+16|0;h=s;if(!d){i=s;return}k=f+4|0;l=a+232|0;m=r+4|0;n=h+4|0;o=a+240|0;p=g+4|0;q=0;do{t=c[a>>2]|0;u=c[b+(q<<3)+4>>2]|0;c[f>>2]=c[b+(q<<3)>>2];c[k>>2]=u;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Rh(t,e,r);if(c[l>>2]|0){u=c[o>>2]|0;t=c[m>>2]|0;c[g>>2]=c[r>>2];c[p>>2]=t;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Sc(u,e)}u=c[m>>2]|0;c[h>>2]=c[r>>2];c[n>>2]=u;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];yk(a,e);q=q+1|0}while((q|0)!=(d|0));i=s;return}function Hk(a){a=a|0;var b=0;b=a+236|0;if(c[b>>2]|0){a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}c[a+240>>2]=Pc(2e3)|0;c[a+244>>2]=Jc(2e3)|0;c[a+248>>2]=Jc(2e3)|0;c[a+252>>2]=Jc(2e3)|0;a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}function Ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+96|0;if((i|0)>=(j|0))ba();n=p+80|0;m=p+64|0;k=p+48|0;o=p+24|0;f=p+16|0;e=p+8|0;d=p;if(!(c[a+236>>2]|0)){Pp(33777,86,1,c[2344]|0)|0;i=p;return}l=Dp(b,37214)|0;if(!l){o=c[2344]|0;c[d>>2]=b;Jp(o,33864,d)|0;i=p;return}c[e>>2]=b;Jp(l,33933,e)|0;Pp(37782,2,1,l)|0;Pp(37353,11,1,l)|0;Pp(33960,12,1,l)|0;c[f>>2]=2e3;Jp(l,33973,f)|0;Pp(33992,23,1,l)|0;Pp(34016,26,1,l)|0;Rc(c[a+240>>2]|0,f);d=0;do{e=c[f>>2]|0;r=+g[e+(d<<3)>>2];q=+g[e+(d<<3)+4>>2];d=d+1|0;c[o>>2]=d;h[o+8>>3]=r;h[o+16>>3]=q;Jp(l,37608,o)|0}while((d|0)!=2e3);Pp(37782,2,1,l)|0;Pp(37637,8,1,l)|0;Pp(34043,48,1,l)|0;Pp(37711,30,1,l)|0;Pp(37782,2,1,l)|0;Pp(34092,27,1,l)|0;Mc(c[a+244>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[k>>2]=d;h[k+8>>3]=r;Jp(l,34120,k)|0}while((d|0)!=2e3);Pp(37782,2,1,l)|0;Pp(37637,8,1,l)|0;Pp(34139,23,1,l)|0;Pp(34163,23,1,l)|0;Pp(37782,2,1,l)|0;Pp(34187,27,1,l)|0;Mc(c[a+248>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[m>>2]=d;h[m+8>>3]=r;Jp(l,34215,m)|0}while((d|0)!=2e3);Pp(37782,2,1,l)|0;Pp(37637,8,1,l)|0;Pp(34234,23,1,l)|0;Pp(34258,21,1,l)|0;Pp(37782,2,1,l)|0;Gp(l)|0;c[n>>2]=b;Qp(34280,n)|0;i=p;return}function Jk(a){a=a|0;var b=0;b=Mp()|0;return (b>>>0)%((c[a+8>>2]|0)>>>0)|0|0}function Kk(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;if(a>>>0<2){Pp(34326,75,1,c[2344]|0)|0;lb(1)}if(a&1|0){Pp(34402,69,1,c[2344]|0)|0;lb(1)}j=Wp(184)|0;c[j>>2]=a;k=j+4|0;c[k>>2]=b;l=j+8|0;c[l>>2]=d;b=a+b|0;i=j+36|0;c[i>>2]=b;c[j+40>>2]=Wp(a<<3)|0;c[j+44>>2]=Wp(b<<3)|0;g=j+48|0;c[g>>2]=b;b=Wp(a)|0;h=j+12|0;c[h>>2]=b;if(!e){Lk(a,b);d=c[h>>2]|0;b=c[j>>2]|0}else{eq(b|0,e|0,a|0)|0;d=b;b=a}Mk(d,b,j+16|0,j+20|0,j+24|0);a=j+52|0;c[a>>2]=Nk(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[h>>2]|0)|0;l=j+64|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[j+84>>2]=8;Qk(j,0);c[j+104>>2]=1;l=ug(1,1,1,1)|0;c[j+100>>2]=l;l=xg(l)|0;c[j+120>>2]=l;c[j+112>>2]=Wp(l)|0;c[j+124>>2]=1;c[j+116>>2]=Wp(4)|0;c[j+108>>2]=di(48)|0;Sk(j,f);f=j+128|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[g>>2]=c[i>>2];Uk(c[a>>2]|0);return j|0}function Lk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(b>>>0<6)Pp(34472,66,1,c[2344]|0)|0;e=(b>>>0)/10|0;h=b>>>0>34?8:4;j=h>>>1;if(b|0)dq(d|0,0,b|0)|0;i=(b>>>1)-(e>>>0<2?2:e)|0;e=i>>>0>1;if(!e)return;f=h+-1|0;g=1;do{a[d+g>>0]=(g+j&f|0)==0?1:2;g=g+1|0}while(g>>>0>>0);if(!e)return;e=h+-1|0;f=1;do{a[d+(b-f)>>0]=(f+j&e|0)==0?1:2;f=f+1|0}while(f>>>0>>0);return}function Mk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;if((i|0)>=(j|0))ba();r=s;a:do if(!d){o=0;p=0;q=0}else{m=0;k=0;l=0;n=0;b:while(1){h=a[b+n>>0]|0;switch(h<<24>>24){case 0:{h=m;k=k+1|0;break}case 1:{h=m;l=l+1|0;break}case 2:{h=m+1|0;break}default:break b}n=n+1|0;if(n>>>0>=d>>>0){o=h;p=k;q=l;break a}else m=h}n=c[2344]|0;c[r>>2]=h&255;Jp(n,34539,r)|0;lb(1)}while(0);c[e>>2]=p;c[f>>2]=q;c[g>>2]=o;i=s;return}function Nk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;if(a>>>0<2){Pp(34605,71,1,c[2344]|0)|0;lb(1)}if(a&1|0){Pp(34677,65,1,c[2344]|0)|0;lb(1)}if(b>>>0>a>>>0){Pp(34743,72,1,c[2344]|0)|0;lb(1)}if(d>>>0>b>>>0){Pp(34816,71,1,c[2344]|0)|0;lb(1)}k=Wp(80)|0;c[k>>2]=a;c[k+4>>2]=b;i=k+12|0;c[i>>2]=d;b=Wp(a)|0;h=k+8|0;c[h>>2]=b;if(!e){Lk(a,b);b=c[h>>2]|0;d=c[k>>2]|0}else{eq(b|0,e|0,a|0)|0;d=a}a=k+28|0;j=k+32|0;Mk(b,d,k+24|0,a,j);b=c[a>>2]|0;d=c[j>>2]|0;if((b|0)==(0-d|0)){Pp(34888,72,1,c[2344]|0)|0;lb(1)}if(!d){Pp(34961,70,1,c[2344]|0)|0;lb(1)}if(b>>>0<2){Pp(35032,71,1,c[2344]|0)|0;lb(1)}l=c[k>>2]|0;m=l<<3;n=Wp(m)|0;c[k+52>>2]=n;m=Wp(m)|0;c[k+56>>2]=m;c[k+48>>2]=Ld(l,n,m,-1,0)|0;m=c[k>>2]|0;n=m<<3;l=Wp(n)|0;c[k+60>>2]=l;e=Wp(n)|0;c[k+64>>2]=e;d=k+68|0;c[d>>2]=Wp(n)|0;b=k+72|0;c[b>>2]=Wp(n)|0;Ok(c[h>>2]|0,m,l,e,k+36|0);Pk(c[h>>2]|0,c[k>>2]|0,c[d>>2]|0,c[b>>2]|0,k+40|0);b=c[i>>2]|0;d=Wp(b<<2)|0;c[k+16>>2]=d;c[k+20>>2]=Wp(b<<3)|0;if(!b){m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;f=+(m>>>0);f=+O(+f);f=1.0/f;m=k+44|0;g[m>>2]=f;m=ad(8)|0;n=k+76|0;c[n>>2]=m;return k|0}f=+(b>>>0);e=0;do{o=+R(+((+(e>>>0)+.5)/f*1.5707963267948966));g[d+(e<<2)>>2]=o*o;e=e+1|0}while(e>>>0>>0);m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;o=+(m>>>0);o=+O(+o);o=1.0/o;m=k+44|0;g[m>>2]=o;m=ad(8)|0;n=k+76|0;c[n>>2]=m;return k|0}function Ok(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Pi(d)|0;m=ad(m>>>0<4?4:m>>>0>8?8:m)|0;n=(d|0)==0;if(n){dd(m);k=c[2344]|0;Pp(35104,69,1,k)|0;lb(1)}else{i=0;l=0}do{k=(bd(m,3)|0)&1;do if(a[b+l>>0]|0)if(!(l&1)){g[e+(l<<3)>>2]=k|0?1.0:-1.0;g[e+(l<<3)+4>>2]=0.0;i=i+1|0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0}while(0);l=l+1|0}while((l|0)!=(d|0));dd(m);if(!i){m=c[2344]|0;Pp(35104,69,1,m)|0;lb(1)}c[h>>2]=i;Kd(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=+g[n>>2]*j;g[e>>2]=+g[e>>2]*j;g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function Pk(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Pi(d)|0;m=ad(m>>>0<4?5:(m>>>0>8?8:m)+1|0)|0;n=(d|0)==0;if(n){dd(m);k=c[2344]|0;Pp(35174,69,1,k)|0;lb(1)}else{i=0;l=0}do{k=bd(m,3)|0;if(!(a[b+l>>0]|0))j=0.0;else{j=k&1|0?1.0:-1.0;i=i+1|0}g[e+(l<<3)>>2]=j;g[e+(l<<3)+4>>2]=0.0;l=l+1|0}while((l|0)!=(d|0));dd(m);if(!i){m=c[2344]|0;Pp(35174,69,1,m)|0;lb(1)}c[h>>2]=i;Kd(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=+g[n>>2]*j;g[e>>2]=+g[e>>2]*j;g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function Qk(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?9328:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(35244,67,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(35312,67,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(35312,67,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(35380,74,1,c[2344]|0)|0;lb(1)}else{fq(a+168|0,b|0,16)|0;Rk(a,c[a+84>>2]|0);return}}function Rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();g=k+8|0;h=k;c[a+84>>2]=b;e=b+6|0;b=a+88|0;c[b>>2]=e;d=a+72|0;c[d>>2]=Zp(c[d>>2]|0,e)|0;d=a+68|0;e=c[d>>2]|0;if(e|0)wg(e);b=ug(c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0)|0;c[d>>2]=b;b=xg(b)|0;e=a+92|0;c[e>>2]=b;f=a+76|0;c[f>>2]=Zp(c[f>>2]|0,b)|0;f=a+180|0;Up(g,c[e>>2]<<3,c[964+(c[f>>2]<<4)+12>>2]|0);e=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;b=a+96|0;c[b>>2]=e;d=a+80|0;c[d>>2]=Zp(c[d>>2]|0,e)|0;d=a+64|0;e=c[d>>2]|0;if(e|0)Li(e);c[d>>2]=di(c[f>>2]|0)|0;Up(h,c[b>>2]|0,c[a+24>>2]|0);c[a+56>>2]=((c[h+4>>2]|0)!=0&1)+(c[h>>2]|0);i=k;return}function Sk(a,b){a=a|0;b=b|0;var d=0;while(1)if(!b)b=9312;else break;if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(35244,67,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(35312,67,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(35312,67,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(35380,74,1,c[2344]|0)|0;lb(1)}else{fq(a+152|0,b|0,16)|0;Tk(a);return}}function Tk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();g=b+8|0;e=b;f=a+100|0;d=vg(c[f>>2]|0,c[a+104>>2]|0,c[a+152>>2]|0,c[a+156>>2]|0,c[a+160>>2]|0)|0;c[f>>2]=d;d=xg(d)|0;f=a+120|0;c[f>>2]=d;h=a+112|0;c[h>>2]=Zp(c[h>>2]|0,d)|0;h=a+108|0;d=a+164|0;c[h>>2]=Ki(c[h>>2]|0,c[d>>2]|0)|0;Up(g,c[f>>2]<<3,c[964+(c[d>>2]<<4)+12>>2]|0);g=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;d=a+124|0;c[d>>2]=g;f=a+116|0;c[f>>2]=Zp(c[f>>2]|0,g<<2)|0;Up(e,c[d>>2]|0,c[a+24>>2]|0);d=c[e>>2]|0;e=c[e+4>>2]|0;c[a+60>>2]=((e>>>0>0|(e|0)==0&d>>>0>4294967295)&1)+d;i=b;return}function Uk(a){a=a|0;var b=0,d=0,e=0;Vh(c[a+76>>2]|0);d=a+12|0;if(!(c[d>>2]|0))return;a=a+20|0;b=0;do{e=c[a>>2]|0;g[e+(b<<3)>>2]=0.0;g[e+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}function Vk(a){a=a|0;var b=0;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[a+48>>2]=c[a+36>>2];Uk(c[a+52>>2]|0);return}function Wk(a){a=a|0;Xk(c[a+52>>2]|0);wg(c[a+68>>2]|0);Li(c[a+64>>2]|0);wg(c[a+100>>2]|0);Li(c[a+108>>2]|0);Xp(c[a+112>>2]|0);Xp(c[a+116>>2]|0);Xp(c[a+40>>2]|0);Xp(c[a+44>>2]|0);Xp(c[a+12>>2]|0);Xp(c[a+72>>2]|0);Xp(c[a+76>>2]|0);Xp(c[a+80>>2]|0);Xp(a);return}function Xk(a){a=a|0;Xp(c[a+8>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);ie(c[a+48>>2]|0);Xp(c[a+16>>2]|0);Xp(c[a+20>>2]|0);Xp(c[a+60>>2]|0);Xp(c[a+64>>2]|0);Xp(c[a+68>>2]|0);Xp(c[a+72>>2]|0);dd(c[a+76>>2]|0);Xp(a);return}function Yk(a){a=a|0;return c[a+136>>2]|0}function Zk(a){a=a|0;return (c[a+56>>2]|0)+3+(c[a+60>>2]|0)|0}function _k(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=b+128|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[b+48>>2]=c[b+36>>2];Uk(c[b+52>>2]|0);m=b+104|0;if((c[m>>2]|0)!=(g|0)){c[m>>2]=g;Tk(b)}c[b+136>>2]=1;g=b+72|0;h=c[g>>2]|0;k=b+84|0;l=c[k>>2]|0;if(!e)dq(h|0,0,l|0)|0;else fq(h|0,e|0,l|0)|0;e=c[k>>2]|0;a[(c[g>>2]|0)+e>>0]=105;a[(c[g>>2]|0)+(e+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[m>>2];m=b+164|0;a[(c[g>>2]|0)+(e+3)>>0]=c[m>>2];l=e+4|0;a[(c[g>>2]|0)+l>>0]=c[b+152>>2]<<5;l=(c[g>>2]|0)+l|0;a[l>>0]=d[l>>0]|0|c[b+156>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+160>>2]&31;e=b+76|0;Bg(c[b+68>>2]|0,c[g>>2]|0,c[e>>2]|0);l=b+92|0;Cg(c[e>>2]|0,c[l>>2]|0);$k(c[e>>2]|0,8,c[l>>2]|0,c[b+80>>2]|0,c[964+(c[b+180>>2]<<4)+12>>2]|0,c[b+96>>2]|0,n);l=b+112|0;Bg(c[b+100>>2]|0,f,c[l>>2]|0);f=b+116|0;e=b+124|0;dq(c[f>>2]|0,0,c[e>>2]<<2|0)|0;Ti(c[l>>2]|0,c[b+120>>2]|0,c[964+(c[m>>2]<<4)+12>>2]|0,c[e>>2]|0,c[f>>2]|0);i=n;return}function $k(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+32|0;if((i|0)>=(j|0))ba();l=v;u=v+16|0;t=_(e,d)|0;Up(u,t,g);u=((c[u+4>>2]|0)>0&1)+(c[u>>2]|0)|0;if(u>>>0>h>>>0){s=c[2344]|0;Pp(35455,40,1,s)|0;c[l>>2]=e;c[l+4>>2]=d;c[l+8>>2]=h;c[l+12>>2]=g;Jp(s,35496,l)|0;lb(-1)}if(!t){l=0;h=0;e=0}else{p=d+-1|0;o=g+-1|0;q=0;n=0;l=0;s=0;h=0;m=0;e=0;while(1){if(!s){r=n+1|0;m=a[b+n>>0]|0}else r=n;e=((m&255)>>>(p-s|0)&1|(e&255)<<1)&255;if((h|0)==(o|0)){a[f+l>>0]=e;l=l+1|0;e=0}h=((h+1|0)>>>0)%(g>>>0)|0;q=q+1|0;if((q|0)==(t|0))break;else{n=r;s=((s+1|0)>>>0)%(d>>>0)|0}}}if((l|0)==(u|0)){f=u;c[k>>2]=f;i=v;return}if(h>>>0>>0)do{e=(e&255)<<1&255;h=h+1|0}while((h|0)!=(g|0));a[f+l>>0]=e;f=l+1|0;c[k>>2]=f;i=v;return}function al(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;if(!d){i=a+140|0;i=c[i>>2]|0;return i|0}f=a+48|0;g=a+36|0;h=a+44|0;i=0;do{e=c[f>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){bl(a);c[f>>2]=0;e=0}c[f>>2]=e+1;k=c[h>>2]|0;j=c[k+(e<<3)+4>>2]|0;c[b+(i<<3)>>2]=c[k+(e<<3)>>2];c[b+(i<<3)+4>>2]=j;i=i+1|0}while((i|0)!=(d|0));k=a+140|0;k=c[k>>2]|0;return k|0}function bl(a){a=a|0;var b=0,d=0,e=0,f=0,h=0;b=a+128|0;c[b>>2]=(c[b>>2]|0)+1;f=a+132|0;switch(c[f>>2]|0){case 0:{cl(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=1;return}case 1:{dl(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=2;return}case 2:{el(c[a+52>>2]|0,c[a+44>>2]|0);c[b>>2]=0;c[f>>2]=3;return}case 3:{fl(a);return}case 4:{hl(a);return}case 5:{d=a+36|0;b=a+44|0;if(c[d>>2]|0){e=0;do{h=c[b>>2]|0;g[h+(e<<3)>>2]=0.0;g[h+(e<<3)+4>>2]=0.0;e=e+1|0}while(e>>>0<(c[d>>2]|0)>>>0)}il(c[a+52>>2]|0,c[b>>2]|0);c[a+140>>2]=1;c[a+136>>2]=0;c[f>>2]=6;return}case 6:{e=a+36|0;if(!(c[e>>2]|0))return;b=a+44|0;d=0;do{h=c[b>>2]|0;g[h+(d<<3)>>2]=0.0;g[h+(d<<3)+4>>2]=0.0;d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0);return}default:{Pp(35558,74,1,c[2344]|0)|0;lb(1)}}}function cl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;d=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;if((e|0)!=(0-d|0)){i=a+64|0;f=0;do{k=((d+f-(e<<1)|0)>>>0)%(d>>>0)|0;l=c[i>>2]|0;j=c[l+(k<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[l+(k<<3)>>2];c[b+(f<<3)+4>>2]=j;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}f=a+12|0;if(!(c[f>>2]|0))return;d=a+16|0;e=0;do{n=+g[(c[d>>2]|0)+(e<<2)>>2];k=b+(e<<3)|0;l=b+(e<<3)+4|0;m=+g[l>>2]*n;g[k>>2]=+g[k>>2]*n;g[l>>2]=m;e=e+1|0}while(e>>>0<(c[f>>2]|0)>>>0);return}function dl(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=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;g=a+64|0;if((e|0)!=(0-d|0)){f=0;do{j=((d+f-e|0)>>>0)%(d>>>0)|0;k=c[g>>2]|0;i=c[k+(j<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[k+(j<<3)>>2];c[b+(f<<3)+4>>2]=i;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}fq(c[a+20>>2]|0,c[g>>2]|0,c[a+12>>2]<<3|0)|0;return}function el(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;i=a+56|0;fq(c[i>>2]|0,c[a+72>>2]|0,c[a>>2]<<3|0)|0;e=a+4|0;h=c[e>>2]|0;fq(b|0,(c[i>>2]|0)+((c[a>>2]|0)-h<<3)|0,h<<3|0)|0;fq(b+(c[e>>2]<<3)|0,c[i>>2]|0,c[a>>2]<<3|0)|0;e=a+12|0;if(!(c[e>>2]|0)){b=0;h=a+20|0;h=c[h>>2]|0;i=c[i>>2]|0;fq(h|0,i|0,b|0)|0;return}f=a+16|0;h=a+20|0;d=0;do{j=+g[(c[f>>2]|0)+(d<<2)>>2];k=b+(d<<3)|0;a=b+(d<<3)+4|0;l=+g[k>>2]*j;j=+g[a>>2]*j;g[k>>2]=l;g[a>>2]=j;m=c[h>>2]|0;n=+g[(c[f>>2]|0)+((c[e>>2]|0)+~d<<2)>>2];j=n*+g[m+(d<<3)+4>>2]+j;g[k>>2]=n*+g[m+(d<<3)>>2]+l;g[a>>2]=j;d=d+1|0;a=c[e>>2]|0}while(d>>>0>>0);m=a<<3;b=h;b=c[b>>2]|0;k=c[i>>2]|0;fq(b|0,k|0,m|0)|0;return}function fl(b){b=b|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!(c[b>>2]|0))e=b+40|0;else{i=b+12|0;j=b+144|0;k=b+96|0;l=b+64|0;m=b+80|0;e=b+40|0;n=0;do{do if((a[(c[i>>2]|0)+n>>0]|0)==2){f=c[j>>2]|0;h=c[l>>2]|0;if(f>>>0<(c[k>>2]|0)>>>0){c[j>>2]=f+1;Ui(h,d[(c[m>>2]|0)+f>>0]|0,(c[e>>2]|0)+(n<<3)|0);break}else{h=Jk(h)|0;Ui(c[l>>2]|0,h,(c[e>>2]|0)+(n<<3)|0);break}}else{h=c[e>>2]|0;g[h+(n<<3)>>2]=0.0;g[h+(n<<3)+4>>2]=0.0}while(0);n=n+1|0}while(n>>>0<(c[b>>2]|0)>>>0)}gl(c[b+52>>2]|0,c[e>>2]|0,c[b+44>>2]|0);e=b+128|0;if((c[e>>2]|0)!=(c[b+56>>2]|0))return;c[e>>2]=0;c[b+132>>2]=4;return}function gl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;f=c[b>>2]|0;a:do if(f|0){i=b+8|0;j=b+44|0;k=b+52|0;l=b+76|0;h=0;while(1){f=(((f>>>1)+h|0)>>>0)%(f>>>0)|0;switch(a[(c[i>>2]|0)+f>>0]|0){case 0:{m=c[k>>2]|0;g[m+(f<<3)>>2]=0.0;g[m+(f<<3)+4>>2]=0.0;break}case 1:{n=(Wh(c[l>>2]|0)|0)!=0;m=c[k>>2]|0;g[m+(f<<3)>>2]=(n?1.0:-1.0)*+g[j>>2];g[m+(f<<3)+4>>2]=0.0;break}default:{p=+g[j>>2];o=p*+g[d+(f<<3)+4>>2];n=c[k>>2]|0;g[n+(f<<3)>>2]=p*+g[d+(f<<3)>>2];g[n+(f<<3)+4>>2]=o}}h=h+1|0;f=c[b>>2]|0;if(h>>>0>=f>>>0)break a}}while(0);Gg(c[b+48>>2]|0);i=b+4|0;n=c[i>>2]|0;l=b+56|0;fq(e|0,(c[l>>2]|0)+((c[b>>2]|0)-n<<3)|0,n<<3|0)|0;fq(e+(c[i>>2]<<3)|0,c[l>>2]|0,c[b>>2]<<3|0)|0;i=b+12|0;if(!(c[i>>2]|0)){n=0;e=b+20|0;e=c[e>>2]|0;m=c[l>>2]|0;fq(e|0,m|0,n|0)|0;return}j=b+16|0;k=b+20|0;h=0;do{p=+g[(c[j>>2]|0)+(h<<2)>>2];n=e+(h<<3)|0;f=e+(h<<3)+4|0;o=+g[n>>2]*p;p=+g[f>>2]*p;g[n>>2]=o;g[f>>2]=p;m=c[k>>2]|0;q=+g[(c[j>>2]|0)+((c[i>>2]|0)+~h<<2)>>2];p=q*+g[m+(h<<3)+4>>2]+p;g[n>>2]=q*+g[m+(h<<3)>>2]+o;g[f>>2]=p;h=h+1|0;f=c[i>>2]|0}while(h>>>0>>0);n=f<<3;e=k;e=c[e>>2]|0;m=c[l>>2]|0;fq(e|0,m|0,n|0)|0;return}function hl(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!(c[b>>2]|0))d=b+40|0;else{h=b+12|0;i=b+148|0;j=b+124|0;k=b+108|0;l=b+116|0;d=b+40|0;m=0;do{do if((a[(c[h>>2]|0)+m>>0]|0)==2){e=c[i>>2]|0;f=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;Ui(f,c[(c[l>>2]|0)+(e<<2)>>2]|0,(c[d>>2]|0)+(m<<3)|0);break}else{f=Jk(f)|0;Ui(c[k>>2]|0,f,(c[d>>2]|0)+(m<<3)|0);break}}else{f=c[d>>2]|0;g[f+(m<<3)>>2]=0.0;g[f+(m<<3)+4>>2]=0.0}while(0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}gl(c[b+52>>2]|0,c[d>>2]|0,c[b+44>>2]|0);if((c[b+128>>2]|0)!=(c[b+60>>2]|0))return;c[b+132>>2]=5;return}function il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0,k=0.0;f=a+12|0;d=c[f>>2]|0;if(!d)return;h=a+20|0;e=a+16|0;a=0;do{j=c[h>>2]|0;k=+g[(c[e>>2]|0)+(d+~a<<2)>>2];i=k*+g[j+(a<<3)+4>>2];g[b+(a<<3)>>2]=k*+g[j+(a<<3)>>2];g[b+(a<<3)+4>>2]=i;a=a+1|0;d=c[f>>2]|0}while(d>>>0>a>>>0);return}function jl(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0;i=Wp(232)|0;if(a>>>0>=8){if(a&1|0){Pp(35695,70,1,c[2344]|0)|0;lb(1)}if(b>>>0>a>>>0){Pp(35766,92,1,c[2344]|0)|0;lb(1)}}else Pp(35633,61,1,c[2344]|0)|0;c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+156>>2]=f;c[i+160>>2]=h;f=Wp(a)|0;h=i+12|0;c[h>>2]=f;if(!e){Lk(a,f);f=c[h>>2]|0;h=c[i>>2]|0}else{eq(f|0,e|0,a|0)|0;h=a}Mk(f,h,i+16|0,i+20|0,i+24|0);h=i+208|0;c[h>>2]=sl(a,b,d,e,5,i)|0;d=i+40|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[i+60>>2]=8;c[i+36>>2]=0;tl(i,0);c[i+96>>2]=48;c[i+100>>2]=2;d=i+104|0;c[d>>2]=1;a=i+108|0;c[a>>2]=1;b=i+112|0;c[b>>2]=1;e=i+116|0;c[e>>2]=1;c[i+128>>2]=di(48)|0;c[i+120>>2]=0;e=ug(c[d>>2]|0,c[a>>2]|0,c[b>>2]|0,c[e>>2]|0)|0;c[i+124>>2]=e;e=xg(e)|0;c[i+140>>2]=e;c[i+132>>2]=Wp(e)|0;d=c[d>>2]|0;c[i+136>>2]=Wp(d)|0;c[i+152>>2]=Wp(d<<3)|0;c[i+144>>2]=0;d=i+212|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;g[i+204>>2]=9.999999960041972e-13;Xh(i+164|0);ql(c[h>>2]|0);return i|0}function kl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=e+212|0;c[b>>2]=(c[b>>2]|0)+1;switch(c[e+216>>2]|0){case 0:{ll(e,a);return 0}case 1:{rl(e,a);return 0}default:{Pp(36240,81,1,c[2344]|0)|0;lb(1)}}return 0}function ll(b,d){b=b|0;d=d|0;var e=0,f=0,h=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.0;y=i;i=i+64|0;if((i|0)>=(j|0))ba();w=y+24|0;t=y;h=y+16|0;k=y+8|0;e=c[b>>2]|0;if(!e){i=y;return}n=b+12|0;o=b+36|0;p=b+40|0;q=k+4|0;r=b+220|0;s=b+56|0;x=b+204|0;v=b+72|0;l=b+92|0;m=h+4|0;f=0;while(1){if((a[(c[n>>2]|0)+f>>0]|0)==2){if(!(c[o>>2]|0)){e=c[p>>2]|0;z=c[d+(f<<3)+4>>2]|0;c[k>>2]=c[d+(f<<3)>>2];c[q>>2]=z;c[w>>2]=c[k>>2];c[w+4>>2]=c[k+4>>2];oj(e,w,t);a[(c[s>>2]|0)+(c[r>>2]|0)>>0]=c[t>>2]}else{e=c[p>>2]|0;A=c[d+(f<<3)+4>>2]|0;z=_(c[r>>2]|0,c[964+(c[l>>2]<<4)+12>>2]|0)|0;z=(c[s>>2]|0)+z|0;c[h>>2]=c[d+(f<<3)>>2];c[m>>2]=A;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];Sj(e,w,t,z)}c[r>>2]=(c[r>>2]|0)+1;B=+_j(c[p>>2]|0);g[x>>2]=+g[x>>2]+B*B;if((c[r>>2]|0)==(c[v>>2]|0))break;e=c[b>>2]|0}f=f+1|0;if(f>>>0>=e>>>0){u=13;break}}if((u|0)==13){i=y;return}ml(b);p=b+164|0;g[p>>2]=+xp(+g[x>>2]/+((c[v>>2]|0)>>>0))*10.0;e=b+76|0;if(!(c[e>>2]|0)){m=b+208|0;g[b+168>>2]=+ol(c[m>>2]|0);g[b+172>>2]=+pl(c[m>>2]|0);n=b+176|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;n=c[b+156>>2]|0;o=c[b+48>>2]|0;e=c[e>>2]|0;f=c[b+160>>2]|0;h=w;k=p;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));pb[n&1](o,e,0,0,0,w,f)|0;A=b+212|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;g[x>>2]=9.999999960041972e-13;Xh(p);ql(c[m>>2]|0);i=y;return}else{c[b+216>>2]=1;i=y;return}}function ml(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();o=p;e=c[b+56>>2]|0;if(!(c[b+36>>2]|0)){n=b+52|0;m=b+68|0;$k(e,c[964+(c[b+92>>2]<<4)+12>>2]|0,c[b+72>>2]|0,c[n>>2]|0,8,c[m>>2]|0,o);Eg(c[n>>2]|0,c[m>>2]|0);e=Dg(c[b+44>>2]|0,c[n>>2]|0,c[b+48>>2]|0)|0}else{n=b+52|0;m=b+68|0;fq(c[n>>2]|0,e|0,c[m>>2]|0)|0;nl(c[n>>2]|0,(c[m>>2]|0)>>>3);e=Fg(c[b+44>>2]|0,c[n>>2]|0,c[b+48>>2]|0)|0}m=b+76|0;c[m>>2]=e;if(!e){i=p;return}k=c[b+60>>2]|0;f=b+48|0;g=c[f>>2]|0;if((a[g+k>>0]|0)!=105){Pp(35859,68,1,c[2344]|0)|0;c[m>>2]=0;e=0;g=c[f>>2]|0}n=d[g+(k+1)>>0]<<8|d[g+(k+2)>>0];h=a[g+(k+3)>>0]|0;l=h&255;if((h+-1&255)>59){Pp(35928,70,1,c[2344]|0)|0;c[m>>2]=0;i=p;return}h=d[g+(k+4)>>0]|0;f=h>>>5;h=h&31;k=d[g+(k+5)>>0]&31;if((f|0)==7){Pp(35999,74,1,c[2344]|0)|0;c[m>>2]=0;e=0;f=0}if(h>>>0>27){Pp(36074,82,1,c[2344]|0)|0;c[m>>2]=0;e=0;h=0}if(k>>>0>27){Pp(36157,82,1,c[2344]|0)|0;c[m>>2]=0;i=p;return}if(!e){i=p;return}e=b+96|0;if((l|0)==(c[e>>2]|0))e=b+100|0;else{c[e>>2]=l;e=b+100|0;c[e>>2]=c[964+(l<<4)+12>>2];m=b+128|0;c[m>>2]=Ki(c[m>>2]|0,l)|0}g=b+104|0;c[g>>2]=n;c[b+108>>2]=f;c[b+112>>2]=h;c[b+116>>2]=k;m=b+124|0;f=vg(c[m>>2]|0,n,f,h,k)|0;c[m>>2]=f;n=(c[b+120>>2]|0)==0;f=xg(f)|0;e=c[e>>2]|0;if(n){n=b+140|0;c[n>>2]=f;Up(o,f<<3,e);f=n;e=((c[o+4>>2]|0)!=0&1)+(c[o>>2]|0)|0}else{n=f<<3;f=b+140|0;c[f>>2]=n;Up(o,n,e);e=((c[o+4>>2]|0)!=0&1)+(c[o>>2]|0)|0}o=b+144|0;c[o>>2]=e;n=b+132|0;c[n>>2]=Zp(c[n>>2]|0,c[f>>2]|0)|0;n=b+136|0;c[n>>2]=Zp(c[n>>2]|0,c[g>>2]|0)|0;b=b+152|0;c[b>>2]=Zp(c[b>>2]|0,c[o>>2]<<3)|0;i=p;return}function nl(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0;if(!c)return;else g=0;a:while(1){switch(g&3|0){case 0:{e=180;h=7;break}case 1:{f=g<<3;e=106;h=8;break}case 2:{e=139;h=7;break}case 3:{e=197;h=7;break}default:{h=6;break a}}if((h|0)==7){h=0;f=g<<3;i=b+f|0;a[i>>0]=(d[i>>0]|0)^255;if(e&64)h=8}if((h|0)==8){i=b+(f|1)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&32|0){i=b+(g<<3|2)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&16|0){i=b+(g<<3|3)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&8|0){i=b+(g<<3|4)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&4|0){i=b+(g<<3|5)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&2|0){i=b+(g<<3|6)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&1|0){i=b+(g<<3|7)|0;a[i>>0]=(d[i>>0]|0)^255}g=g+1|0;if(g>>>0>=c>>>0){h=22;break}}if((h|0)!=6)if((h|0)==22)return}function ol(a){a=a|0;return +(+wp(+g[a+80>>2])*-10.0)}function pl(a){a=a|0;return +(+pj(c[a+108>>2]|0))}function ql(a){a=a|0;var b=0,d=0,e=0.0;$i(c[a+108>>2]|0);Vh(c[a+112>>2]|0);b=a+136|0;d=a+116|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){g[a+152>>2]=.3499999940395355;e=.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}else{g[a+152>>2]=+((44-b|0)>>>0)*.009999999776482582+.3499999940395355;e=+((44-b|0)>>>0)*.009999999776482582+.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}}function rl(b,d){b=b|0;d=d|0;var e=0,f=0,h=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;C=i;i=i+64|0;if((i|0)>=(j|0))ba();B=C+24|0;u=C;l=C+16|0;m=C+8|0;e=c[b>>2]|0;if(!e){i=C;return}q=b+12|0;r=b+224|0;A=b+152|0;x=b+120|0;s=b+128|0;t=m+4|0;w=b+132|0;n=b+140|0;o=b+228|0;y=b+100|0;z=b+144|0;p=l+4|0;k=0;while(1){if((a[(c[q>>2]|0)+k>>0]|0)==2){f=d+(k<<3)|0;h=d+(k<<3)+4|0;E=c[h>>2]|0;e=c[r>>2]|0;D=c[A>>2]|0;c[D+(e<<3)>>2]=c[f>>2];c[D+(e<<3)+4>>2]=E;e=c[s>>2]|0;f=c[f>>2]|0;h=c[h>>2]|0;if(!(c[x>>2]|0)){c[m>>2]=f;c[t>>2]=h;c[B>>2]=c[m>>2];c[B+4>>2]=c[m+4>>2];oj(e,B,u);af(c[w>>2]|0,c[n>>2]|0,c[o>>2]|0,c[y>>2]|0,c[u>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[y>>2]|0)}else{E=_(c[r>>2]|0,c[y>>2]|0)|0;E=(c[w>>2]|0)+E|0;c[l>>2]=f;c[p>>2]=h;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];Sj(e,B,u,E)}E=(c[r>>2]|0)+1|0;c[r>>2]=E;if((E|0)==(c[z>>2]|0))break;e=c[b>>2]|0}k=k+1|0;if(k>>>0>=e>>>0){v=16;break}}if((v|0)==16){i=C;return}h=c[b+124>>2]|0;e=c[w>>2]|0;k=b+136|0;f=c[k>>2]|0;if(!(c[x>>2]|0))e=Dg(h,e,f)|0;else e=Fg(h,e,f)|0;f=b+148|0;c[f>>2]=e;e=b+156|0;if(!(c[e>>2]|0)){E=b+212|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;g[b+204>>2]=9.999999960041972e-13;Xh(b+164|0);ql(c[b+208>>2]|0);i=C;return}else{r=b+208|0;s=b+164|0;g[b+168>>2]=+ol(c[r>>2]|0);g[b+172>>2]=+pl(c[r>>2]|0);c[b+176>>2]=c[A>>2];c[b+180>>2]=c[z>>2];c[b+184>>2]=c[b+96>>2];c[b+188>>2]=c[y>>2];c[b+192>>2]=c[b+108>>2];c[b+196>>2]=c[b+112>>2];c[b+200>>2]=c[b+116>>2];o=c[e>>2]|0;p=c[b+48>>2]|0;q=c[b+76>>2]|0;n=c[k>>2]|0;m=c[b+104>>2]|0;e=c[f>>2]|0;f=c[b+160>>2]|0;h=B;k=s;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));pb[o&1](p,q,n,m,e,B,f)|0;E=b+212|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;g[b+204>>2]=9.999999960041972e-13;Xh(s);ql(c[r>>2]|0);i=C;return}}function sl(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0;l=Wp(216)|0;if(a>>>0>=8){if(a&1|0){Pp(36380,66,1,c[2344]|0)|0;lb(1)}if(b>>>0>a>>>0){Pp(36447,88,1,c[2344]|0)|0;lb(1)}}else Pp(36322,57,1,c[2344]|0)|0;c[l>>2]=a;k=l+8|0;c[k>>2]=b;c[l+4>>2]=a>>>1;d=Wp(a)|0;j=l+12|0;c[j>>2]=d;if(!e){Lk(a,d);d=c[j>>2]|0;b=c[l>>2]|0}else{eq(d|0,e|0,a|0)|0;b=a}e=l+20|0;a=l+24|0;Mk(d,b,l+16|0,e,a);d=c[e>>2]|0;b=c[a>>2]|0;if((d|0)==(0-b|0)){Pp(36536,73,1,c[2344]|0)|0;lb(1)}if(!b){Pp(36610,71,1,c[2344]|0)|0;lb(1)}if(d>>>0<2){Pp(36682,72,1,c[2344]|0)|0;lb(1)}p=c[l>>2]|0;m=p<<3;q=Wp(m)|0;c[l+52>>2]=q;m=Wp(m)|0;c[l+56>>2]=m;c[l+48>>2]=Ld(p,m,q,1,0)|0;c[l+60>>2]=Pc((c[k>>2]|0)+(c[l>>2]|0)|0)|0;q=c[l>>2]|0;m=q<<3;p=Wp(m)|0;c[l+64>>2]=p;n=Wp(m)|0;c[l+68>>2]=n;b=l+72|0;c[b>>2]=Wp(m)|0;d=l+76|0;c[d>>2]=Wp(m)|0;m=l+28|0;Ok(c[j>>2]|0,q,p,n,m);n=l+32|0;Pk(c[j>>2]|0,c[l>>2]|0,c[b>>2]|0,c[d>>2]|0,n);j=c[l>>2]|0;i=+(j>>>0);o=+O(+i);g[l+36>>2]=o/+O(+(+(((c[a>>2]|0)+(c[e>>2]|0)|0)>>>0)));g[l+40>>2]=o/+O(+(+((c[m>>2]|0)>>>0)));g[l+44>>2]=o/+O(+(+((c[n>>2]|0)>>>0)));g[l+80>>2]=1.0;a=j<<3;n=Wp(a)|0;c[l+84>>2]=n;m=Wp(a)|0;c[l+88>>2]=m;e=Wp(a)|0;c[l+92>>2]=e;d=Wp(a)|0;b=l+96|0;c[b>>2]=d;c[l+100>>2]=Wp(a)|0;dq(n|0,0,a|0)|0;dq(m|0,0,a|0)|0;dq(e|0,0,a|0)|0;dq(d|0,0,a|0)|0;k=c[k>>2]|0;k=k>>>0<2?k:2;c[l+132>>2]=k;i=+(k>>>0)*2.0*3.141592653589793/i;if(j|0?(g[d>>2]=1.0,g[d+4>>2]=0.0,(c[l>>2]|0)>>>0>1):0){d=1;do{q=c[b>>2]|0;r=+(d>>>0)*i;o=+R(+r);g[q+(d<<3)>>2]=+Q(+r);g[q+(d<<3)+4>>2]=o;d=d+1|0}while(d>>>0<(c[l>>2]|0)>>>0)}c[l+160>>2]=f;c[l+164>>2]=h;q=l+108|0;c[q>>2]=Uc(0)|0;d=l+112|0;c[d>>2]=ad(8)|0;$i(c[q>>2]|0);Vh(c[d>>2]|0);d=l+136|0;q=l+116|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[l>>2]|0;if(d>>>0>44){g[l+152>>2]=.3499999940395355;r=.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}else{r=+((44-d|0)>>>0)*.009999999776482582;g[l+152>>2]=r+.3499999940395355;r=r+.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}return 0}function tl(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?9328:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Pp(36755,76,1,c[2344]|0)|0;lb(1)}if(!(c[b+4>>2]|0)){d=c[2344]|0;Pp(36832,76,1,d)|0;lb(1)}if(!(c[b+8>>2]|0)){d=c[2344]|0;Pp(36832,76,1,d)|0;lb(1)}if(!(c[b+12>>2]|0)){Pp(36909,83,1,c[2344]|0)|0;lb(1)}else{fq(a+80|0,b|0,16)|0;ul(a,c[a+60>>2]|0);return}}function ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;c[a+60>>2]=b;e=b+6|0;b=a+64|0;c[b>>2]=e;d=a+48|0;c[d>>2]=Zp(c[d>>2]|0,e)|0;d=a+44|0;e=c[d>>2]|0;if(e|0)wg(e);b=ug(c[b>>2]|0,c[a+80>>2]|0,c[a+84>>2]|0,c[a+88>>2]|0)|0;c[d>>2]=b;e=(c[a+36>>2]|0)==0;b=xg(b)|0;if(e){d=a+68|0;c[d>>2]=b;Up(f,b<<3,c[964+(c[a+92>>2]<<4)+12>>2]|0);b=((c[f+4>>2]|0)!=0&1)+(c[f>>2]|0)|0;d=c[d>>2]|0}else{d=b<<3;c[a+68>>2]=d;b=d}f=a+72|0;c[f>>2]=b;b=a+52|0;c[b>>2]=Zp(c[b>>2]|0,d)|0;b=a+56|0;c[b>>2]=Zp(c[b>>2]|0,c[f>>2]|0)|0;b=a+40|0;d=c[b>>2]|0;if(!d){a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}Li(d);a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}function vl(a){a=a|0;wl(c[a+208>>2]|0);wg(c[a+44>>2]|0);Li(c[a+40>>2]|0);wg(c[a+124>>2]|0);Li(c[a+128>>2]|0);Xp(c[a+12>>2]|0);Xp(c[a+132>>2]|0);Xp(c[a+136>>2]|0);Xp(c[a+152>>2]|0);Xp(c[a+48>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);Xp(a);return}function wl(a){a=a|0;var b=0;b=c[a+176>>2]|0;if(b|0)Tc(b);b=c[a+180>>2]|0;if(b|0)Oc(b);b=c[a+184>>2]|0;if(b|0)Tc(b);b=c[a+188>>2]|0;if(b|0)Xp(b);b=c[a+192>>2]|0;if(b|0)Xp(b);b=c[a+196>>2]|0;if(b|0)Xp(b);b=c[a+208>>2]|0;if(b|0)Oc(b);b=c[a+212>>2]|0;if(b|0)Oc(b);Xp(c[a+12>>2]|0);Tc(c[a+60>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);ie(c[a+48>>2]|0);Xp(c[a+64>>2]|0);Xp(c[a+68>>2]|0);Xp(c[a+72>>2]|0);Xp(c[a+76>>2]|0);Xp(c[a+84>>2]|0);Xp(c[a+88>>2]|0);Xp(c[a+92>>2]|0);Xp(c[a+96>>2]|0);Xp(c[a+100>>2]|0);Yc(c[a+108>>2]|0);dd(c[a+112>>2]|0);Xp(a);return}function xl(a,b){a=a|0;b=b|0;c[a+36>>2]=b;ul(a,c[a+60>>2]|0);return}function yl(a,b){a=a|0;b=b|0;c[a+120>>2]=b;return}function zl(a,b,d){a=a|0;b=b|0;d=d|0;Al(c[a+208>>2]|0,b,d);return}function Al(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=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.0,C=0.0;z=i;i=i+48|0;if((i|0)>=(j|0))ba();h=z+32|0;y=z+8|0;k=z+24|0;l=z+16|0;q=z;if(!d){i=z;return}r=y+4|0;s=a+104|0;t=a+60|0;u=l+4|0;v=a+168|0;w=a+176|0;m=q+4|0;n=a+180|0;o=a+108|0;p=k+4|0;x=0;do{e=c[b+(x<<3)>>2]|0;f=c[b+(x<<3)+4>>2]|0;c[y>>2]=e;c[r>>2]=f;if(c[s>>2]|0){A=c[o>>2]|0;c[k>>2]=e;c[p>>2]=f;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];lj(A,h,y);gd(c[o>>2]|0);e=c[y>>2]|0;f=c[r>>2]|0}A=c[t>>2]|0;c[l>>2]=e;c[u>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Sc(A,h);if(c[v>>2]|0){A=c[w>>2]|0;f=c[r>>2]|0;c[q>>2]=c[y>>2];c[m>>2]=f;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];Sc(A,h);B=+g[y>>2];C=+g[r>>2];Nc(c[n>>2]|0,C*C+B*B)}switch(c[s>>2]|0){case 0:{Bl(a);break}case 1:{Dl(a);break}case 2:{El(a);break}case 3:{Fl(a);break}case 4:{Il(a);break}default:{}}x=x+1|0}while((x|0)!=(d|0));i=z;return}function Bl(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0;u=i;i=i+64|0;if((i|0)>=(j|0))ba();r=u+48|0;n=u+40|0;o=u+32|0;p=u+16|0;d=u;q=u+24|0;s=u+8|0;t=a+124|0;l=(c[t>>2]|0)+1|0;c[t>>2]=l;if(l>>>0<(c[a>>2]|0)>>>0){i=u;return}c[t>>2]=0;Rc(c[a+60>>2]|0,d);l=c[a+8>>2]|0;h=c[a>>2]|0;e=l+h|0;k=c[d>>2]|0;if(l>>>0>>0){b=0.0;d=l;do{f=+g[k+(d<<3)>>2];m=+g[k+(d<<3)+4>>2];b=f*f+b+m*m;d=d+1|0}while(d>>>0>>0)}else b=0.0;m=+(h>>>0)/b;h=a+84|0;Cl(a,k+(l<<3)|0,c[h>>2]|0);h=c[h>>2]|0;d=c[a>>2]|0;if(!d){f=0.0;b=0.0}else{k=o+4|0;l=n+4|0;e=0;f=0.0;b=0.0;do{A=e;e=e+2|0;z=(e>>>0)%(d>>>0)|0;v=+g[h+(z<<3)>>2];x=+g[h+(z<<3)+4>>2];z=c[h+(A<<3)+4>>2]|0;c[o>>2]=c[h+(A<<3)>>2];c[k>>2]=z;c[r>>2]=c[o>>2];c[r+4>>2]=c[o+4>>2];Jo(n,r);y=+g[n>>2];w=+g[l>>2];f=y*v+f-w*x;b=y*x+b+w*v;d=c[a>>2]|0}while(e>>>0>>0)}$n(p,f,b,+((c[a+28>>2]|0)>>>0),0.0);x=+g[p>>2]*m;y=+g[p+4>>2]*m;g[q>>2]=x;g[q+4>>2]=y;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];b=+Ao(r);d=a+4|0;e=c[d>>2]|0;g[a+80>>2]=m;g[s>>2]=x;g[s+4>>2]=y;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];y=+vo(r);if(y>+g[a+152>>2]){z=~~+cq(+(+(e>>>0)*b*.15915494309189535));A=c[a>>2]|0;c[t>>2]=(((A+z|0)>>>0)%((c[d>>2]|0)>>>0)|0)+A;c[a+104>>2]=1}i=u;return}function Cl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0.0,l=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,y=0;t=i;i=i+32|0;if((i|0)>=(j|0))ba();q=t+16|0;r=t+8|0;s=t;fq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;Gg(c[b+48>>2]|0);k=+O(+(+((c[b+28>>2]|0)>>>0)));p=c[b>>2]|0;k=k/+(p>>>0);if(!p){i=t;return}d=b+12|0;l=b+52|0;m=b+64|0;n=s+4|0;o=r+4|0;p=0;do{if((p&1|0)==0?(a[(c[d>>2]|0)+p>>0]|0)!=0:0){y=c[l>>2]|0;v=+g[y+(p<<3)>>2];h=+g[y+(p<<3)+4>>2];y=c[m>>2]|0;x=c[y+(p<<3)+4>>2]|0;c[s>>2]=c[y+(p<<3)>>2];c[n>>2]=x;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Jo(r,q);w=+g[r>>2];u=+g[o>>2];f=u*v+w*h;h=w*v-u*h}else{f=0.0;h=0.0}g[e+(p<<3)>>2]=h*k;g[e+(p<<3)+4>>2]=f*k;p=p+1|0}while(p>>>0<(c[b>>2]|0)>>>0);i=t;return}function Dl(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();m=q+32|0;n=q+24|0;o=q+16|0;p=q+8|0;f=q;e=a+124|0;l=(c[e>>2]|0)+1|0;c[e>>2]=l;if(l>>>0<(c[a+4>>2]|0)>>>0){i=q;return}c[e>>2]=0;Rc(c[a+60>>2]|0,f);h=a+84|0;Cl(a,(c[f>>2]|0)+(c[a+8>>2]<<3)|0,c[h>>2]|0);h=c[h>>2]|0;e=c[a>>2]|0;if(!e){d=0.0;b=0.0}else{k=o+4|0;l=n+4|0;f=0;d=0.0;b=0.0;do{w=f;f=f+2|0;v=(f>>>0)%(e>>>0)|0;r=+g[h+(v<<3)>>2];t=+g[h+(v<<3)+4>>2];v=c[h+(w<<3)+4>>2]|0;c[o>>2]=c[h+(w<<3)>>2];c[k>>2]=v;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];Jo(n,m);u=+g[n>>2];s=+g[l>>2];d=u*r+d-s*t;b=u*t+b+s*r;e=c[a>>2]|0}while(f>>>0>>0)}$n(p,d,b,+((c[a+28>>2]|0)>>>0),0.0);t=+g[a+80>>2];u=t*+g[p+4>>2];g[a+136>>2]=t*+g[p>>2];g[a+140>>2]=u;c[a+104>>2]=2;i=q;return}function El(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=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.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0.0;B=i;i=i+112|0;if((i|0)>=(j|0))ba();y=B+96|0;h=B+80|0;k=B+56|0;o=B+40|0;x=B+32|0;p=B+88|0;r=B+72|0;s=B+64|0;t=B+48|0;u=B+24|0;v=B+16|0;w=B+8|0;z=B;q=a+124|0;n=(c[q>>2]|0)+1|0;c[q>>2]=n;A=a+4|0;if(n>>>0<(c[A>>2]|0)>>>0){i=B;return}e=a+8|0;c[q>>2]=(c[e>>2]|0)+(c[a>>2]|0)-(c[a+132>>2]|0);Rc(c[a+60>>2]|0,x);l=a+88|0;Cl(a,(c[x>>2]|0)+(c[e>>2]<<3)|0,c[l>>2]|0);l=c[l>>2]|0;e=c[a>>2]|0;if(!e){d=0.0;b=0.0}else{m=k+4|0;n=h+4|0;f=0;d=0.0;b=0.0;do{H=f;f=f+2|0;G=(f>>>0)%(e>>>0)|0;C=+g[l+(G<<3)>>2];E=+g[l+(G<<3)+4>>2];G=c[l+(H<<3)+4>>2]|0;c[k>>2]=c[l+(H<<3)>>2];c[m>>2]=G;c[y>>2]=c[k>>2];c[y+4>>2]=c[k+4>>2];Jo(h,y);F=+g[h>>2];D=+g[n>>2];d=F*C+d-D*E;b=F*E+b+D*C;e=c[a>>2]|0}while(f>>>0>>0)}$n(o,d,b,+((c[a+28>>2]|0)>>>0),0.0);F=+g[a+80>>2];E=F*+g[o>>2];F=F*+g[o+4>>2];g[a+144>>2]=E;g[a+148>>2]=F;F=+g[a+140>>2]+F;g[p>>2]=+g[a+136>>2]+E;g[p+4>>2]=F;c[y>>2]=c[p>>2];c[y+4>>2]=c[p+4>>2];F=+Ao(y);e=c[A>>2]|0;H=~~+cq(+(+(e>>>0)*F*.15915494309189535));c[q>>2]=(c[q>>2]|0)-H;if(c[a>>2]|0){e=a+84|0;f=s+4|0;h=0;do{G=c[e>>2]|0;H=c[G+(h<<3)+4>>2]|0;c[s>>2]=c[G+(h<<3)>>2];c[f>>2]=H;c[y>>2]=c[s>>2];c[y+4>>2]=c[s+4>>2];Jo(r,y);h=h+1|0}while(h>>>0<(c[a>>2]|0)>>>0);e=c[A>>2]|0}if(!e){d=0.0;b=0.0}else{e=u+4|0;f=t+4|0;h=a+68|0;k=w+4|0;l=v+4|0;m=0;d=0.0;b=0.0;do{G=c[x>>2]|0;s=c[G+(m<<3)+4>>2]|0;c[u>>2]=c[G+(m<<3)>>2];c[e>>2]=s;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];Jo(t,y);I=+g[t>>2];D=+g[f>>2];s=c[h>>2]|0;C=+g[s+(m<<3)>>2];F=+g[s+(m<<3)+4>>2];E=C*I-F*D;D=F*I+C*D;G=(c[A>>2]|0)+m|0;H=c[x>>2]|0;C=+g[H+(G<<3)>>2];I=+g[H+(G<<3)+4>>2];F=C*E-I*D;D=I*E+C*D;H=c[s+(G<<3)+4>>2]|0;c[w>>2]=c[s+(G<<3)>>2];c[k>>2]=H;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];Jo(v,y);C=+g[v>>2];E=+g[l>>2];d=C*F+d-E*D;b=C*D+b+E*F;m=m+1|0}while(m>>>0<(c[A>>2]|0)>>>0)}g[z>>2]=d;g[z+4>>2]=b;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];I=+Ao(y);_c(c[a+108>>2]|0,I/+((c[A>>2]|0)>>>0));c[a+104>>2]=3;i=B;return}function Fl(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=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.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0;w=i;i=i+64|0;if((i|0)>=(j|0))ba();p=w+56|0;b=w+40|0;l=w+48|0;m=w+32|0;n=w+24|0;o=w+16|0;s=w+8|0;v=w;t=a+124|0;u=(c[t>>2]|0)+-1|0;c[t>>2]=u;if(u|0){i=w;return}q=a+128|0;c[q>>2]=(c[q>>2]|0)+1;Rc(c[a+60>>2]|0,b);r=a+8|0;u=a+92|0;Gl(a,(c[b>>2]|0)+(c[r>>2]<<3)|0,c[u>>2]|0);b=c[a>>2]|0;if(!b){e=0.0;d=0.0}else{h=m+4|0;k=l+4|0;e=0.0;d=0.0;f=0;do{C=f;f=f+1|0;B=(f>>>0)%(b>>>0)|0;D=c[u>>2]|0;x=+g[D+(B<<3)>>2];z=+g[D+(B<<3)+4>>2];B=c[D+(C<<3)+4>>2]|0;c[m>>2]=c[D+(C<<3)>>2];c[h>>2]=B;c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];Jo(l,p);A=+g[l>>2];y=+g[k>>2];e=A*x+e-y*z;d=A*z+d+y*x;b=c[a>>2]|0}while(f>>>0>>0)}$n(n,e,d,+((c[a+32>>2]|0)>>>0),0.0);e=+g[a+80>>2];z=e*+g[n>>2];e=e*+g[n+4>>2];b=a+132|0;y=+((c[b>>2]|0)>>>0)*2.0*3.141592653589793/+((c[a>>2]|0)>>>0);A=+Q(+y);y=+R(+y);d=A*z-y*e;e=y*z+A*e;g[o>>2]=d;g[o+4>>2]=e;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];A=+vo(p);f=a+156|0;if(A>+g[f>>2]?(g[s>>2]=d,g[s+4>>2]=e,c[p>>2]=c[s>>2],c[p+4>>2]=c[s+4>>2],+N(+(+Ao(p)))<.3141592700403172):0){c[a+104>>2]=4;D=c[a>>2]|0;c[t>>2]=(c[r>>2]|0)+D+(c[b>>2]|0);c[q>>2]=0;k=a+20|0;b=c[k>>2]|0;h=a+24|0;f=c[h>>2]|0;d=+(D>>>0)/+O(+(+((f+b|0)>>>0)));if(D){b=a+96|0;f=0;do{D=c[u>>2]|0;C=D+(f<<3)|0;D=D+(f<<3)+4|0;y=+g[D>>2]*d;g[C>>2]=+g[C>>2]*d;g[D>>2]=y;D=c[b>>2]|0;y=+g[D+(f<<3)>>2];A=+g[D+(f<<3)+4>>2];D=c[u>>2]|0;C=D+(f<<3)|0;z=+g[C>>2];D=D+(f<<3)+4|0;x=+g[D>>2];g[C>>2]=z*y-x*A;g[D>>2]=x*y+z*A;f=f+1|0}while(f>>>0<(c[a>>2]|0)>>>0);f=c[h>>2]|0;b=c[k>>2]|0}D=f+b|0;Hl(a,D>>>0<5?D+-1|0:4);if(c[a>>2]|0){b=a+96|0;f=v+4|0;h=a+100|0;k=0;do{D=c[b>>2]|0;C=c[u>>2]|0;$n(v,+g[D+(k<<3)>>2],+g[D+(k<<3)+4>>2],+g[C+(k<<3)>>2],+g[C+(k<<3)+4>>2]);C=c[f>>2]|0;D=c[h>>2]|0;c[D+(k<<3)>>2]=c[v>>2];c[D+(k<<3)+4>>2]=C;k=k+1|0}while(k>>>0<(c[a>>2]|0)>>>0)}}else{if((c[q>>2]|0)==16){$i(c[a+108>>2]|0);Vh(c[a+112>>2]|0);b=a+136|0;D=a+116|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){d=.3499999940395355;e=.30000001192092896}else{e=+((44-b|0)>>>0)*.009999999776482582;d=e+.3499999940395355;e=e+.30000001192092896}g[a+152>>2]=d;g[f>>2]=e;c[a+104>>2]=0}c[t>>2]=c[a+4>>2]}i=w;return}function Gl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0.0,l=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,y=0;t=i;i=i+32|0;if((i|0)>=(j|0))ba();q=t+16|0;r=t+8|0;s=t;fq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;Gg(c[b+48>>2]|0);k=+O(+(+((c[b+32>>2]|0)>>>0)));p=c[b>>2]|0;k=k/+(p>>>0);if(!p){i=t;return}d=b+12|0;l=b+52|0;m=b+72|0;n=s+4|0;o=r+4|0;p=0;do{if(!(a[(c[d>>2]|0)+p>>0]|0)){f=0.0;h=0.0}else{y=c[l>>2]|0;v=+g[y+(p<<3)>>2];h=+g[y+(p<<3)+4>>2];y=c[m>>2]|0;x=c[y+(p<<3)+4>>2]|0;c[s>>2]=c[y+(p<<3)>>2];c[n>>2]=x;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Jo(r,q);w=+g[r>>2];u=+g[o>>2];f=u*v+w*h;h=w*v-u*h}g[e+(p<<3)>>2]=h*k;g[e+(p<<3)+4>>2]=f*k;p=p+1|0}while(p>>>0<(c[b>>2]|0)>>>0);i=t;return}function Hl(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,h=0.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;F=i;i=i+32|0;if((i|0)>=(j|0))ba();t=F+16|0;u=F+8|0;v=F;if(!(c[b+168>>2]|0))E=b;else{fq(c[b+188>>2]|0,c[b+92>>2]|0,c[b>>2]<<3|0)|0;E=b}A=(c[b+24>>2]|0)+(c[b+20>>2]|0)|0;x=A+-1|0;d=x>>>0>>0?x:d;x=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=(d>>>0>10?10:d)+1|0;C=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();D=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=c[E>>2]|0;a:do if(!d)w=0;else{o=b+4|0;p=b+12|0;q=b+92|0;r=u+4|0;s=v+4|0;n=0;k=0;while(1){l=c[o>>2]|0;m=((l+n|0)>>>0)%(d>>>0)|0;if(a[(c[p>>2]|0)+m>>0]|0){if((k|0)==(A|0))break;f=+(m>>>0);h=+(d>>>0);g[x+(k<<2)>>2]=(m>>>0>l>>>0?f-h:f)/h;d=c[q>>2]|0;l=c[d+(m<<3)+4>>2]|0;c[u>>2]=c[d+(m<<3)>>2];c[r>>2]=l;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];g[y+(k<<2)>>2]=+vo(t);l=c[q>>2]|0;d=c[l+(m<<3)+4>>2]|0;c[v>>2]=c[l+(m<<3)>>2];c[s>>2]=d;c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];g[z+(k<<2)>>2]=+Ao(t);d=c[E>>2]|0;k=k+1|0}n=n+1|0;if(n>>>0>=d>>>0){w=k;break a}}Pp(36993,71,1,c[2344]|0)|0;lb(1)}while(0);if((w|0)!=(A|0)){Pp(36993,71,1,c[2344]|0)|0;lb(1)}if(A>>>0>1){f=+g[z>>2];l=1;while(1){k=z+(l<<2)|0;e=+g[k>>2];d=z+(l+-1<<2)|0;if(e-f>3.141592653589793){do e=e+-6.283185307179586;while(e-f>3.141592653589793);g[k>>2]=e}f=+g[d>>2];if(e-f<-3.141592653589793){do e=e+6.283185307179586;while(e-f<-3.141592653589793);g[k>>2]=e}l=l+1|0;if((l|0)==(A|0))break;else f=e}}Vg(x,y,A,C,B);Vg(x,z,A,D,B);d=c[E>>2]|0;if(!d){i=F;return}m=b+4|0;n=b+12|0;l=b+92|0;k=0;do{e=+(k>>>0);f=+(d>>>0);f=(k>>>0>(c[m>>2]|0)>>>0?e-f:e)/f;e=+_g(C,B,f);f=+_g(D,B,f);if(!(a[(c[n>>2]|0)+k>>0]|0)){h=0.0;e=0.0}else{h=+Q(+f)*e;e=+R(+f)*e}d=c[l>>2]|0;g[d+(k<<3)>>2]=h;g[d+(k<<3)+4>>2]=e;k=k+1|0;d=c[E>>2]|0}while(k>>>0>>0);i=F;return}function Il(b){b=b|0;var d=0,e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();o=s+16|0;d=s+8|0;p=s;q=b+124|0;r=(c[q>>2]|0)+-1|0;c[q>>2]=r;if(r|0){i=s;return}Rc(c[b+60>>2]|0,d);r=b+8|0;fq(c[b+56>>2]|0,(c[d>>2]|0)+((c[r>>2]|0)-(c[b+132>>2]|0)<<3)|0,c[b>>2]<<3|0)|0;Gg(c[b+48>>2]|0);Jl(b);if(c[b+168>>2]|0?(h=c[b>>2]|0,h|0):0){k=b+12|0;l=b+184|0;m=b+52|0;n=p+4|0;d=0;do{if((a[(c[k>>2]|0)+d>>0]|0)==2){h=c[l>>2]|0;u=c[m>>2]|0;t=c[u+(d<<3)+4>>2]|0;c[p>>2]=c[u+(d<<3)>>2];c[n>>2]=t;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];Sc(h,o);h=c[b>>2]|0}d=d+1|0}while(d>>>0>>0)}d=c[b+160>>2]|0;if(d|0?wb[d&7](c[b+52>>2]|0,c[b+12>>2]|0,c[b>>2]|0,c[b+164>>2]|0)|0:0){$i(c[b+108>>2]|0);Vh(c[b+112>>2]|0);d=b+136|0;u=b+116|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[b>>2]|0;if(d>>>0>44){e=.3499999940395355;f=.30000001192092896}else{f=+((44-d|0)>>>0)*.009999999776482582;e=f+.3499999940395355;f=f+.30000001192092896}g[b+152>>2]=e;g[b+156>>2]=f;c[b+104>>2]=0}c[q>>2]=(c[r>>2]|0)+(c[b>>2]|0);i=s;return}function Jl(b){b=b|0;var d=0,e=0,f=0.0,h=0.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.0,F=0.0,G=0;D=i;i=i+48|0;if((i|0)>=(j|0))ba();u=D+32|0;C=D+16|0;v=D+24|0;w=D+8|0;x=D;if(!(c[b>>2]|0))d=0;else{e=b+100|0;l=b+52|0;m=0;do{d=c[e>>2]|0;E=+g[d+(m<<3)>>2];h=+g[d+(m<<3)+4>>2];d=c[l>>2]|0;B=d+(m<<3)|0;f=+g[B>>2];d=d+(m<<3)+4|0;F=+g[d>>2];g[B>>2]=f*E-F*h;g[d>>2]=F*E+f*h;m=m+1|0;d=c[b>>2]|0}while(m>>>0>>0)}z=b+20|0;e=c[z>>2]|0;A=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();do if(!d)d=0;else{n=b+4|0;o=b+12|0;p=b+112|0;q=b+52|0;r=w+4|0;s=v+4|0;t=x+4|0;e=d;m=0;d=0;while(1){l=(((c[n>>2]|0)+m|0)>>>0)%(e>>>0)|0;if((a[(c[o>>2]|0)+l>>0]|0)==1){if((d|0)==(c[z>>2]|0))break;e=(Wh(c[p>>2]|0)|0)!=0;f=+(l>>>0);if(l>>>0>(c[n>>2]|0)>>>0)f=f-+((c[b>>2]|0)>>>0);g[A+(d<<2)>>2]=f;G=c[q>>2]|0;h=+g[G+(l<<3)>>2];F=+g[G+(l<<3)+4>>2];g[w>>2]=e?1.0:-1.0;g[r>>2]=0.0;c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];Jo(v,u);E=+g[v>>2];f=+g[s>>2];g[x>>2]=E*h-f*F;g[t>>2]=f*h+E*F;c[u>>2]=c[x>>2];c[u+4>>2]=c[x+4>>2];g[B+(d<<2)>>2]=+Ao(u);e=c[b>>2]|0;d=d+1|0}m=m+1|0;if(m>>>0>=e>>>0){y=13;break}}if((y|0)==13){e=c[z>>2]|0;break}Pp(37065,61,1,c[2344]|0)|0;i=D;return}while(0);if((d|0)!=(e|0)){Pp(37065,61,1,c[2344]|0)|0;i=D;return}if(e>>>0>1){h=+g[B>>2];m=1;while(1){l=B+(m<<2)|0;f=+g[l>>2];d=B+(m+-1<<2)|0;if(f-h>3.141592653589793){do f=f+-6.283185307179586;while(f-h>3.141592653589793);g[l>>2]=f}h=+g[d>>2];if(f-h<-3.141592653589793){do f=f+6.283185307179586;while(f-h<-3.141592653589793);g[l>>2]=f}m=m+1|0;if(m>>>0>=e>>>0)break;else h=f}}Vg(A,B,e,C,2);d=C+4|0;G=b+120|0;F=+g[G>>2]*.699999988079071+ +g[d>>2]*.30000001192092896;g[d>>2]=F;g[G>>2]=F;if(c[b+168>>2]|0){fq(c[b+192>>2]|0,A|0,c[z>>2]<<2|0)|0;fq(c[b+196>>2]|0,B|0,c[z>>2]<<2|0)|0;c[b+200>>2]=c[d>>2];G=c[C>>2]|0;c[b+204>>2]=G;Nc(c[b+208>>2]|0,(c[k>>2]=G,+g[k>>2]));Nc(c[b+212>>2]|0,+g[d>>2])}d=c[b>>2]|0;if(d|0){l=b+12|0;m=b+52|0;n=b+4|0;e=0;do{if(!(a[(c[l>>2]|0)+e>>0]|0)){G=c[m>>2]|0;g[G+(e<<3)>>2]=0.0;g[G+(e<<3)+4>>2]=0.0}else{F=+(e>>>0);F=+_g(C,2,e>>>0>(c[n>>2]|0)>>>0?F-+(d>>>0):F);h=+Q(+F);F=+R(+-F);G=c[m>>2]|0;B=G+(e<<3)|0;E=+g[B>>2];G=G+(e<<3)+4|0;f=+g[G>>2];g[B>>2]=E*h-f*F;g[G>>2]=f*h+E*F}e=e+1|0;d=c[b>>2]|0}while(e>>>0>>0)}l=b+128|0;if(!(c[l>>2]|0)){d=b+116|0;e=1}else{d=b+116|0;f=+g[C>>2]-+g[d>>2];h=f;if(h>3.141592653589793)do{f=h+-.6366197723675814;h=f}while(h>3.141592653589793);h=f;if(h<-3.141592653589793)do{f=h+.6366197723675814;h=f}while(h<-3.141592653589793);Kl(c[b+108>>2]|0,f*1.0000000474974513e-03);e=(c[l>>2]|0)+1|0}c[d>>2]=c[C>>2];c[l>>2]=e;i=D;return}function Kl(a,b){a=a|0;b=+b;a=a+8|0;g[a>>2]=+g[a>>2]+b;return}function Ll(a){a=a|0;Ml(c[a+208>>2]|0);return}function Ml(a){a=a|0;var b=0,d=0;b=a+172|0;if(c[b>>2]|0)return;c[a+176>>2]=Pc(2048)|0;c[a+180>>2]=Jc(2048)|0;c[a+184>>2]=Pc(2048)|0;c[a+188>>2]=Wp(c[a>>2]<<3)|0;d=c[a+20>>2]<<2;c[a+192>>2]=Wp(d)|0;c[a+196>>2]=Wp(d)|0;c[a+208>>2]=Jc(2048)|0;c[a+212>>2]=Jc(2048)|0;c[a+168>>2]=1;c[b>>2]=1;return}function Nl(a,b){a=a|0;b=b|0;Ol(c[a+208>>2]|0,b);return}function Ol(a,b){a=a|0;b=b|0;var e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0;P=i;i=i+464|0;if((i|0)>=(j|0))ba();N=P+456|0;M=P+432|0;J=P+416|0;I=P+400|0;E=P+392|0;H=P+384|0;G=P+368|0;F=P+352|0;D=P+328|0;C=P+304|0;B=P+280|0;A=P+256|0;y=P+232|0;x=P+208|0;w=P+192|0;v=P+184|0;u=P+160|0;t=P+136|0;s=P+112|0;r=P+88|0;q=P+80|0;p=P+72|0;o=P+64|0;n=P+56|0;O=P+48|0;K=P+40|0;k=P+32|0;m=P+24|0;l=P+16|0;f=P+8|0;e=P;if(!(c[a+172>>2]|0)){Pp(37127,86,1,c[2344]|0)|0;i=P;return}L=Dp(b,37214)|0;if(!L){O=c[2344]|0;c[e>>2]=b;Jp(O,37216,e)|0;i=P;return}c[f>>2]=37310;Jp(L,37281,f)|0;Pp(37341,11,1,L)|0;Pp(37353,11,1,L)|0;c[l>>2]=2048;Jp(L,37365,l)|0;c[m>>2]=c[a>>2];Jp(L,37374,m)|0;c[k>>2]=c[a+16>>2];Jp(L,37383,k)|0;z=a+20|0;c[K>>2]=c[z>>2];Jp(L,37398,K)|0;c[O>>2]=c[a+24>>2];Jp(L,37413,O)|0;Pp(37428,16,1,L)|0;if(c[a>>2]|0){e=a+12|0;f=0;do{m=d[(c[e>>2]|0)+f>>0]|0;f=f+1|0;c[n>>2]=f;c[n+4>>2]=m;Jp(L,37445,n)|0}while(f>>>0<(c[a>>2]|0)>>>0)}c[o>>2]=0;Jp(L,37459,o)|0;c[p>>2]=1;Jp(L,37483,p)|0;c[q>>2]=2;Jp(L,37507,q)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{q=k;k=k+1|0;p=c[e>>2]|0;Q=+g[p+(q<<3)>>2];R=+g[p+(q<<3)+4>>2];c[r>>2]=k;h[r+8>>3]=Q;h[r+16>>3]=R;Jp(L,37531,r)|0;p=c[f>>2]|0;R=+g[p+(q<<3)>>2];Q=+g[p+(q<<3)+4>>2];c[s>>2]=k;h[s+8>>3]=R;h[s+16>>3]=Q;Jp(L,37561,s)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Pp(37591,16,1,L)|0;Rc(c[a+176>>2]|0,O);e=0;do{s=c[O>>2]|0;Q=+g[s+(e<<3)>>2];R=+g[s+(e<<3)+4>>2];e=e+1|0;c[t>>2]=e;h[t+8>>3]=Q;h[t+16>>3]=R;Jp(L,37608,t)|0}while((e|0)!=2048);Pp(37637,8,1,L)|0;Pp(37646,39,1,L)|0;Pp(37686,24,1,L)|0;Pp(37711,30,1,L)|0;Pp(37742,9,1,L)|0;if(c[a>>2]|0){e=a+76|0;f=0;do{t=c[e>>2]|0;Q=+g[t+(f<<3)>>2];R=+g[t+(f<<3)+4>>2];f=f+1|0;c[u>>2]=f;h[u+8>>3]=Q;h[u+16>>3]=R;Jp(L,37752,u)|0}while(f>>>0<(c[a>>2]|0)>>>0)}Pp(37782,2,1,L)|0;c[v>>2]=2048;Jp(L,37785,v)|0;Mc(c[a+180>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[w>>2]=e;h[w+8>>3]=R;Jp(L,37810,w)|0}while((e|0)!=2048);Pp(37835,91,1,L)|0;Pp(37927,33,1,L)|0;Pp(37637,8,1,L)|0;Pp(37961,15,1,L)|0;Pp(37977,21,1,L)|0;Pp(37782,2,1,L)|0;Pp(37999,17,1,L)|0;Pp(38017,17,1,L)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{w=k;k=k+1|0;v=c[e>>2]|0;R=+g[v+(w<<3)>>2];Q=+g[v+(w<<3)+4>>2];c[x>>2]=k;h[x+8>>3]=R;h[x+16>>3]=Q;Jp(L,38035,x)|0;v=c[f>>2]|0;Q=+g[v+(w<<3)>>2];R=+g[v+(w<<3)+4>>2];c[y>>2]=k;h[y+8>>3]=Q;h[y+16>>3]=R;Jp(L,38065,y)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Pp(37782,2,1,L)|0;Pp(38095,21,1,L)|0;Pp(38117,21,1,L)|0;Pp(38139,21,1,L)|0;Pp(38161,21,1,L)|0;if(c[a>>2]|0){k=a+84|0;l=a+88|0;e=a+188|0;f=a+92|0;m=0;do{y=m;m=m+1|0;x=c[k>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[A>>2]=m;h[A+8>>3]=R;h[A+16>>3]=Q;Jp(L,38183,A)|0;x=c[l>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[B>>2]=m;h[B+8>>3]=Q;h[B+16>>3]=R;Jp(L,38216,B)|0;x=c[e>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[C>>2]=m;h[C+8>>3]=R;h[C+16>>3]=Q;Jp(L,38249,C)|0;x=c[f>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[D>>2]=m;h[D+8>>3]=Q;h[D+16>>3]=R;Jp(L,38282,D)|0}while(m>>>0<(c[a>>2]|0)>>>0)}Pp(38315,15,1,L)|0;Pp(37637,8,1,L)|0;Pp(38331,16,1,L)|0;Pp(38348,40,1,L)|0;Pp(38389,48,1,L)|0;Pp(38438,11,1,L)|0;Pp(38450,30,1,L)|0;Pp(38481,33,1,L)|0;Pp(38515,16,1,L)|0;Pp(38532,58,1,L)|0;Pp(38591,48,1,L)|0;Pp(38438,11,1,L)|0;Pp(38450,30,1,L)|0;Pp(38640,35,1,L)|0;Pp(37782,2,1,L)|0;Pp(38676,23,1,L)|0;Pp(38700,23,1,L)|0;if(c[z>>2]|0){e=a+192|0;f=a+196|0;k=0;do{D=k;k=k+1|0;R=+g[(c[e>>2]|0)+(D<<2)>>2];c[F>>2]=k;h[F+8>>3]=R;Jp(L,38724,F)|0;R=+g[(c[f>>2]|0)+(D<<2)>>2];c[G>>2]=k;h[G+8>>3]=R;Jp(L,38743,G)|0}while(k>>>0<(c[z>>2]|0)>>>0)}h[H>>3]=+g[a+200>>2];Jp(L,38762,H)|0;h[E>>3]=+g[a+204>>2];Jp(L,38784,E)|0;Pp(38806,17,1,L)|0;Mc(c[a+208>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[I>>2]=e;h[I+8>>3]=R;Jp(L,38824,I)|0}while((e|0)!=2048);Pp(38843,17,1,L)|0;Mc(c[a+212>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[J>>2]=e;h[J+8>>3]=R;Jp(L,38861,J)|0}while((e|0)!=2048);Pp(37637,8,1,L)|0;Pp(38880,19,1,L)|0;Pp(38900,16,1,L)|0;Pp(38917,24,1,L)|0;Pp(38942,40,1,L)|0;Pp(38438,11,1,L)|0;Pp(38983,32,1,L)|0;Pp(39016,24,1,L)|0;Pp(39041,19,1,L)|0;Pp(39061,16,1,L)|0;Pp(39078,26,1,L)|0;Pp(38438,11,1,L)|0;Pp(39105,31,1,L)|0;Pp(39137,16,1,L)|0;Pp(39154,26,1,L)|0;Pp(38438,11,1,L)|0;Pp(39181,30,1,L)|0;Pp(39212,24,1,L)|0;Rc(c[a+184>>2]|0,O);e=0;do{K=c[O>>2]|0;Q=+g[K+(e<<3)>>2];R=+g[K+(e<<3)+4>>2];e=e+1|0;c[M>>2]=e;h[M+8>>3]=Q;h[M+16>>3]=R;Jp(L,39237,M)|0}while((e|0)!=2048);Pp(37637,8,1,L)|0;Pp(39274,45,1,L)|0;Pp(39320,13,1,L)|0;Pp(39334,13,1,L)|0;Pp(39348,23,1,L)|0;Pp(39372,13,1,L)|0;Pp(39386,9,1,L)|0;Gp(L)|0;c[N>>2]=b;Qp(39396,N)|0;i=P;return}function Pl(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(cp(a,c[964+(b<<4)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<61);if((e|0)==5){i=f;return b|0}e=c[2344]|0;c[d>>2]=a;Jp(e,39442,d)|0;e=0;i=f;return e|0}function Ql(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0;h=i;i=i+96|0;if((i|0)>=(j|0))ba();g=h;f=h+80|0;xm(e,39513);if(!b){Rl(e,0,39522,h+72|0);g=0;i=h;return g|0}c[f>>2]=b;c[f+4>>2]=0;c[g>>2]=7;c[g+4>>2]=f;a[g+8>>0]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=1;c[g+28>>2]=0;c[g+36>>2]=0;b=g+40|0;if(_l(b)|0){g=0;i=h;return g|0}c[g+52>>2]=d;k=g+60|0;c[k>>2]=-1;f=Tl(g,d,e)|0;if((c[k>>2]|0)==256){k=g+64|0;Zl(c[k>>2]|0);c[k>>2]=0;c[k+4>>2]=0}$l(b);k=f;i=h;return k|0}function Rl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+368|0;if((i|0)>=(j|0))ba();o=p+16|0;m=p+8|0;l=p;h=p+24|0;g=p+200|0;n=p+40|0;if(!b){i=p;return}c[h>>2]=f;Po(g,160,e,h)|0;a[g+159>>0]=0;do if(d){k=bm(d+40|0)|0;e=c[d+24>>2]|0;f=c[d+28>>2]|0;h=c[d+36>>2]|0;if(k|0?a[k>>0]|0:0){if((c[d+44>>2]|0)>>>0>=21)break;c[l>>2]=g;c[l+4>>2]=k;op(n,160,39538,l)|0;a[n+159>>0]=0;g=n;break}if((c[d+20>>2]|0)!=-2){c[m>>2]=g;op(n,160,39551,m)|0;a[n+159>>0]=0;g=n}}else{f=-1;e=-1;h=0}while(0);c[o>>2]=g;ym(b,e,f,h,39571,o);i=p;return}function Sl(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;b=a[(c[b>>2]|0)+e>>0]|0;if(!(b<<24>>24)){e=-1;return e|0}c[d>>2]=e+1;e=b&255;return e|0}function Tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;c[a+56>>2]=0;Ul(a,d);a:do if(!(b&4)){switch(c[a+60>>2]|0){case 123:case 91:{g=4;break a}default:{}}Rl(d,a,39845,e);e=0}else g=4;while(0);do if((g|0)==4){e=Xl(a,b,d)|0;if(e){if((b&2|0)==0?(Ul(a,d),c[a+60>>2]|0):0){Rl(d,a,40091,f);d=e+4|0;b=c[d>>2]|0;if((b|0)==-1){e=0;break}g=b+-1|0;c[d>>2]=g;if(g|0){e=0;break}lm(e);e=0;break}if(d)c[d+8>>2]=c[a+36>>2]}else e=0}while(0);i=h;return e|0}function Ul(b,d){b=b|0;d=d|0;var e=0,f=0,g=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,D=0;B=i;i=i+112|0;if((i|0)>=(j|0))ba();r=B+104|0;k=B+96|0;g=B+88|0;v=B+80|0;u=B+72|0;x=B+64|0;t=B+56|0;w=B+48|0;n=B+40|0;m=B+32|0;p=B+24|0;o=B+16|0;l=B+8|0;z=B+108|0;q=B;y=b+40|0;am(y);A=b+60|0;if((c[A>>2]|0)==256){s=b+64|0;Zl(c[s>>2]|0);c[s>>2]=0;c[s+4>>2]=0}a:while(1){f=Vl(b,d)|0;switch(f|0){case 9:case 10:case 13:case 32:break;case -1:{s=5;break a}case -2:{s=6;break a}default:{s=7;break a}}}if((s|0)==5){c[A>>2]=0;i=B;return}else if((s|0)==6){c[A>>2]=-1;i=B;return}else if((s|0)==7){cm(y,f&255)|0;D=f|32;if((f|0)==44|((f|0)==58|((D|0)==125|(D|0)==123))){c[A>>2]=f;i=B;return}if((f|0)==34){q=b+64|0;c[q>>2]=0;c[A>>2]=-1;f=Vl(b,d)|0;if(f>>>0<4294967294)cm(y,f&255)|0;b:while(1){switch(f|0){case 34:{s=41;break b}case -2:break b;case -1:{s=13;break b}default:{}}if(f>>>0<32){e=f;s=15;break}g=Vl(b,d)|0;if(g>>>0<4294967294)cm(y,g&255)|0;if((f|0)!=92){f=g;continue}if((g|0)!=117){if((g|4|0)!=102)switch(g|0){case 34:case 47:case 92:case 110:case 114:case 116:break;default:{s=40;break b}}f=Vl(b,d)|0;if(f>>>0>=4294967294)continue;cm(y,f&255)|0;continue}f=Vl(b,d)|0;if(f>>>0<4294967294)cm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Vl(b,d)|0;if(f>>>0<4294967294)cm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Vl(b,d)|0;if(f>>>0<4294967294)cm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Vl(b,d)|0;if(f>>>0<4294967294)cm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Vl(b,d)|0;if(f>>>0>=4294967294)continue;cm(y,f&255)|0}c:do if((s|0)==13)Rl(d,b,39601,l);else if((s|0)==15){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0;if((e|0)==10){Rl(d,b,39624,o);break}else{c[p>>2]=e;Rl(d,b,39643,p);break}}else if((s|0)==32)Rl(d,b,39666,m);else if((s|0)==40)Rl(d,b,39666,n);else if((s|0)==41?(e=Yl((c[b+44>>2]|0)+1|0)|0,e|0):0){c[q>>2]=e;g=(bm(y)|0)+1|0;f=a[g>>0]|0;d:do if(f<<24>>24!=34){e:while(1){k=g+1|0;do if(f<<24>>24==92){f=a[k>>0]|0;if(f<<24>>24==117){f=Wl(k)|0;if((f|0)<0){e=g;s=47;break e}l=g+6|0;switch(f&-1024|0){case 56320:{e=f;s=57;break e}case 55296:{if((a[l>>0]|0)!=92){e=f;s=56;break e}k=g+7|0;if((a[k>>0]|0)!=117){e=f;s=56;break e}k=Wl(k)|0;if((k|0)<0){e=l;s=52;break e}if((k&-1024|0)!=56320){e=k;s=54;break e}g=g+12|0;f=(f<<10)+-56613888+k|0;break}default:g=l}fm(f,e,z)|0;e=e+(c[z>>2]|0)|0;break}else{switch(f<<24>>24|0){case 47:case 92:case 34:{a[e>>0]=f;break}case 98:{a[e>>0]=8;break}case 102:{a[e>>0]=12;break}case 110:{a[e>>0]=10;break}case 114:{a[e>>0]=13;break}case 116:{a[e>>0]=9;break}default:{}}g=g+2|0;e=e+1|0;break}}else{a[e>>0]=f;g=k;e=e+1|0}while(0);f=a[g>>0]|0;if(f<<24>>24==34)break d}if((s|0)==47){c[w>>2]=e;Rl(d,b,39681,w)}else if((s|0)==52){c[t>>2]=e;Rl(d,b,39681,t)}else if((s|0)==54){c[x>>2]=f;c[x+4>>2]=e;Rl(d,b,39711,x)}else if((s|0)==56){c[u>>2]=e;Rl(d,b,39742,u)}else if((s|0)==57){c[v>>2]=e;Rl(d,b,39742,v)}break c}while(0);a[e>>0]=0;c[q+4>>2]=e-(c[q>>2]|0);c[A>>2]=256;i=B;return}while(0);Zl(c[q>>2]|0);c[q>>2]=0;c[q+4>>2]=0;i=B;return}e=(f|0)==45;if(!(e|(f+-48|0)>>>0<10)){if(((f&-33)+-65|0)>>>0>=26){f=b+16|0;e=a[(c[f>>2]|0)+(b+8)>>0]|0;if(e<<24>>24){g=b+36|0;do{cm(y,e)|0;D=(c[f>>2]|0)+1|0;c[f>>2]=D;c[g>>2]=(c[g>>2]|0)+1;e=a[b+8+D>>0]|0}while(e<<24>>24!=0)}c[A>>2]=-1;i=B;return}do{f=Vl(b,d)|0;e=f>>>0<4294967294;if(e)cm(y,f&255)|0}while(((f&-33)+-65|0)>>>0<26);if(e){if((f|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((f|0)!=10){if(gm(f&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0}e=bm(y)|0;if(!(cp(e,39829)|0)){c[A>>2]=259;i=B;return}if(!(cp(e,39834)|0)){c[A>>2]=260;i=B;return}if(!(cp(e,39840)|0)){c[A>>2]=261;i=B;return}else{c[A>>2]=-1;i=B;return}}c[A>>2]=-1;if(e){e=Vl(b,d)|0;if(e>>>0<4294967294){cm(y,e&255)|0;s=87}else s=96}else{e=f;s=87}if((s|0)==87)if((e|0)==48){e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;if((e+-48|0)>>>0<10){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0}else s=108}else s=96;f:do if((s|0)==96){if((e+-48|0)>>>0<10)while(1){e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;if((e+-48|0)>>>0>=10){s=108;break f}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0}}while(0);g:do if((s|0)==108){h:do if(!(c[b+52>>2]&8)){switch(e|0){case 46:{s=124;break h}case 101:case 69:break h;default:{}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0}e=bm(y)|0;D=co()|0;c[D>>2]=0;e=so(e,z,10)|0;f=C;if((c[D>>2]|0)!=34){c[A>>2]=257;D=b+64|0;c[D>>2]=e;c[D+4>>2]=f;break g}if((f|0)<0){Rl(d,b,39767,g);break g}else{Rl(d,b,39792,k);break g}}else if((e|0)==46)s=124;while(0);i:do if((s|0)==124){e=Vl(b,d)|0;if((e+-48|0)>>>0<10){cm(y,e&255)|0;while(1){e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;if((e+-48|0)>>>0>=10)break i}}if((e|1|0)==-1)break g;D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1;break g}while(0);j:do if((e|32|0)==101){e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;switch(e|0){case 43:case 45:{e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;break}default:{}}if((e+-48|0)>>>0<10)while(1){e=Vl(b,d)|0;if(e>>>0<4294967294)cm(y,e&255)|0;if((e+-48|0)>>>0>=10)break j}if(e>>>0>=4294967294)break g;if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0;break g}while(0);if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(gm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}dm(y)|0}if(!(em(y,q)|0)){c[A>>2]=258;h[b+64>>3]=+h[q>>3];break}else{Rl(d,b,39808,r);break}}while(0);i=B;return}}function Vl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();n=o;l=b+20|0;e=c[l>>2]|0;if(e|0){b=e;i=o;return b|0}m=b+16|0;e=c[m>>2]|0;do if(!(a[b+8+e>>0]|0)){k=b+4|0;g=sb[c[b>>2]&7](c[k>>2]|0)|0;if((g|0)==-1){c[l>>2]=-1;b=-1;i=o;return b|0}e=g&255;h=b+8|0;a[h>>0]=e;c[m>>2]=0;if((g&-128|0)!=128){a[b+9>>0]=0;e=0;break}e=gm(e)|0;if(e|0){if(e>>>0>1){f=1;do{a[b+8+f>>0]=sb[c[b>>2]&7](c[k>>2]|0)|0;f=f+1|0}while((f|0)!=(e|0))}if(hm(h,e,0)|0){a[b+8+e>>0]=0;e=c[m>>2]|0;break}}c[l>>2]=-2;c[n>>2]=g;Rl(d,b,39574,n);b=-2;i=o;return b|0}while(0);c[m>>2]=e+1;e=a[b+8+e>>0]|0;f=e<<24>>24;n=b+36|0;c[n>>2]=(c[n>>2]|0)+1;if(e<<24>>24==10){n=b+24|0;c[n>>2]=(c[n>>2]|0)+1;n=b+28|0;c[b+32>>2]=c[n>>2];c[n>>2]=0;b=f;i=o;return b|0}if(!(gm(e)|0)){b=f;i=o;return b|0}b=b+28|0;c[b>>2]=(c[b>>2]|0)+1;b=f;i=o;return b|0}function Wl(b){b=b|0;var c=0,d=0,e=0,f=0;c=a[b+1>>0]|0;d=c<<24>>24;do if((c+-48&255)>=10){if((c+-97&255)<26){c=d+-87|0;break}if((c+-65&255)<26){c=d+-55|0;break}else{b=-1;return b|0}}else c=d+-48|0;while(0);d=a[b+2>>0]|0;e=c<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);d=a[b+3>>0]|0;f=c+e<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);e=a[b+4>>0]|0;d=c+f<<4;c=e<<24>>24;do if((e+-48&255)>=10){if((e+-97&255)<26){c=c+-87|0;break}if((e+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);b=c+d|0;return b|0}function Xl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=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;w=i;i=i+80|0;if((i|0)>=(j|0))ba();f=w+72|0;e=w+64|0;m=w+56|0;p=w+48|0;r=w+40|0;n=w+32|0;q=w+24|0;o=w+16|0;l=w+8|0;v=a+56|0;t=(c[v>>2]|0)+1|0;c[v>>2]=t;if(t>>>0>2048){Rl(d,a,39865,w);a=0;i=w;return a|0}s=a+60|0;a:do switch(c[s>>2]|0){case 256:{g=a+64|0;e=c[g>>2]|0;k=g+4|0;f=c[k>>2]|0;if((b&16|0)==0?Mo(e,0,f)|0:0){Rl(d,a,39895,l);a=0;i=w;return a|0}e=om(e,f)|0;if(!e){a=0;i=w;return a|0}else{c[g>>2]=0;c[k>>2]=0;break a}}case 257:{e=a+64|0;e=qm(c[e>>2]|0,c[e+4>>2]|0)|0;u=72;break}case 258:{e=sm(+h[a+64>>3])|0;u=72;break}case 259:{e=um()|0;u=72;break}case 260:{e=vm()|0;u=72;break}case 261:{e=wm()|0;u=72;break}case 123:{t=im()|0;if(!t){a=0;i=w;return a|0}Ul(a,d);b:do switch(c[s>>2]|0){case 125:{e=t;break a}case 256:{l=a+64|0;m=l+4|0;c:do if(b&1){while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;u=74;break}if(Mo(e,0,f)|0){u=33;break c}if(jm(t,e)|0){u=35;break}Ul(a,d);if((c[s>>2]|0)!=58){u=37;break c}Ul(a,d);g=Xl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(km(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)lm(g);Zl(e);Ul(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Ul(a,d);if((c[s>>2]|0)!=256){u=30;break b}}if((u|0)==35){Zl(e);Rl(d,a,4e4,n);break b}else if((u|0)==74){i=w;return e|0}}else{while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;break}if(Mo(e,0,f)|0){u=33;break c}Ul(a,d);if((c[s>>2]|0)!=58){u=37;break c}Ul(a,d);g=Xl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(km(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)lm(g);Zl(e);Ul(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Ul(a,d);if((c[s>>2]|0)!=256){u=30;break b}}i=w;return e|0}while(0);if((u|0)==33){Zl(e);Rl(d,a,39963,q);break b}else if((u|0)==37){Zl(e);Rl(d,a,40021,r);break b}else if((u|0)==39){Zl(e);break b}else if((u|0)==43){Zl(e);e=g+4|0;f=c[e>>2]|0;if((f|0)==-1)break b;a=f+-1|0;c[e>>2]=a;if(a|0)break b;lm(g);break b}else if((u|0)==50){if((e|0)==125){e=t;u=72;break a}Rl(d,a,40034,p);break b}break}default:u=30}while(0);if((u|0)==30)Rl(d,a,39940,o);e=t+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}lm(t);a=0;i=w;return a|0}case 91:{l=mm()|0;if(!l){a=0;i=w;return a|0}Ul(a,d);d:do switch(c[s>>2]|0){case 93:{e=l;break a}case 0:{u=66;break}default:while(1){k=Xl(a,b,d)|0;if(!k)break d;g=k+4|0;e=c[g>>2]|0;if((e|0)!=-1)c[g>>2]=e+1;e=(nm(l,k)|0)==0;f=c[g>>2]|0;if((f|0)!=-1?(t=f+-1|0,c[g>>2]=t,(t|0)==0):0)lm(k);if(!e)break d;Ul(a,d);switch(c[s>>2]|0){case 93:{e=l;u=72;break a}case 44:break;default:{u=66;break d}}Ul(a,d);if(!(c[s>>2]|0)){u=66;break d}}}while(0);if((u|0)==66)Rl(d,a,40047,m);e=l+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}lm(l);a=0;i=w;return a|0}case -1:{Rl(d,a,40060,e);a=0;i=w;return a|0}default:{Rl(d,a,40074,f);a=0;i=w;return a|0}}while(0);if((u|0)==72)if(!e){a=0;i=w;return a|0}c[v>>2]=(c[v>>2]|0)+-1;a=e;i=w;return a|0}function Yl(a){a=a|0;if(!a){a=0;return a|0}a=sb[c[2336]&7](a)|0;return a|0}function Zl(a){a=a|0;if(!a)return;rb[c[2337]&31](a);return}function _l(b){b=b|0;var d=0;c[b+8>>2]=16;c[b+4>>2]=0;d=Yl(16)|0;c[b>>2]=d;if(!d){b=-1;return b|0}a[d>>0]=0;b=0;return b|0}function $l(a){a=a|0;var b=0;b=c[a>>2]|0;if(b|0)Zl(b);c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=0;return}function am(b){b=b|0;c[b+4>>2]=0;a[c[b>>2]>>0]=0;return}function bm(a){a=a|0;return c[a>>2]|0}function cm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=b+8|0;f=c[g>>2]|0;h=b+4|0;e=c[h>>2]|0;do if((f-e|0)>>>0<=1){if((f|0)<0|e>>>0>4294967293){d=-1;return d|0}f=f<<1;e=e+2|0;e=f>>>0>e>>>0?f:e;f=Yl(e)|0;if(!f){d=-1;return d|0}else{eq(f|0,c[b>>2]|0,c[h>>2]|0)|0;Zl(c[b>>2]|0);c[b>>2]=f;c[g>>2]=e;g=b;e=c[h>>2]|0;break}}else{g=b;f=c[b>>2]|0}while(0);a[f+e>>0]=d;d=(c[h>>2]|0)+1|0;c[h>>2]=d;a[(c[g>>2]|0)+d>>0]=0;d=0;return d|0}function dm(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;if(!e){b=0;return b|0}e=e+-1|0;c[d>>2]=e;e=(c[b>>2]|0)+e|0;b=a[e>>0]|0;a[e>>0]=0;return b|0}function em(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;f=a[c[(np()|0)>>2]>>0]|0;if(f<<24>>24!=46?(g=Ap(c[b>>2]|0,46)|0,g|0):0)a[g>>0]=f;g=co()|0;c[g>>2]=0;e=+Sp(c[b>>2]|0,k);if(e==s|e==-s?(c[g>>2]|0)==34:0){d=-1;i=l;return d|0}h[d>>3]=e;d=0;i=l;return d|0}function fm(b,d,e){b=b|0;d=d|0;e=e|0;if((b|0)<0){e=-1;return e|0}if((b|0)<128){a[d>>0]=b;c[e>>2]=1;e=0;return e|0}if((b|0)<2048){a[d>>0]=b>>>6&31|192;a[d+1>>0]=b&63|128;c[e>>2]=2;e=0;return e|0}if((b|0)<65536){a[d>>0]=b>>>12&15|224;a[d+1>>0]=b>>>6&63|128;a[d+2>>0]=b&63|128;c[e>>2]=3;e=0;return e|0}if((b|0)>=1114112){e=-1;return e|0}a[d>>0]=b>>>18&7|240;a[d+1>>0]=b>>>12&63|128;a[d+2>>0]=b>>>6&63|128;a[d+3>>0]=b&63|128;c[e>>2]=4;e=0;return e|0}function gm(a){a=a|0;if(a<<24>>24>-1){a=1;return a|0}if((a&255)<192|(a&-2)<<24>>24==-64){a=0;return a|0}if((a+62&255)<30){a=2;return a|0}if((a&-16)<<24>>24==-32){a=3;return a|0}else return ((a+16&255)<5?4:0)|0;return 0}function hm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=a[b>>0]|0;j=(d|0)==2;a:do if(j){i=1;f=f&31}else switch(d|0){case 3:{i=1;f=f&15;break a}case 4:{i=1;f=f&7;break a}default:{k=0;return k|0}}while(0);do{h=a[b+i>>0]|0;if(h<<24>>24>-1|(h&255)>191){f=0;k=13;break}g=f<<6;f=h&63|g;i=i+1|0}while(i>>>0>>0);if((k|0)==13)return f|0;if(j&(f|0)<128|((f|0)>1114111|(g&-2048|0)==55296)){k=0;return k|0}if((d|0)==3&(f|0)<2048){k=0;return k|0}if((d|0)==4&(f|0)<65536){k=0;return k|0}if(!e){k=1;return k|0}c[e>>2]=f;k=1;return k|0}function im(){var a=0;a=Yl(40)|0;if(!a){a=0;return a|0}if(!(c[10749]|0))Em(0);c[a>>2]=0;c[a+4>>2]=1;if(!(zm(a+8|0)|0)){c[a+36>>2]=0;return a|0}else{Zl(a);a=0;return a|0}return 0}function jm(a,b){a=a|0;b=b|0;if(!((a|0)!=0&(b|0)!=0)){b=0;return b|0}if(c[a>>2]|0){b=0;return b|0}b=Dm(a+8|0,b)|0;return b|0}function km(a,b,d){a=a|0;b=b|0;d=d|0;if(!d){d=-1;return d|0}if((a|0)!=0&(b|0)!=0?!((a|0)==(d|0)|(c[a>>2]|0)!=0):0){if(!(Bm(a+8|0,b,d)|0)){d=0;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}lm(d);d=-1;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}lm(d);d=-1;return d|0}function lm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;switch(c[a>>2]|0){case 0:{Am(a+8|0);Zl(a);return}case 1:{h=a+12|0;b=c[h>>2]|0;i=a+16|0;if(b|0){e=0;do{d=c[(c[i>>2]|0)+(e<<2)>>2]|0;if(((d|0)!=0?(f=d+4|0,g=c[f>>2]|0,(g|0)!=-1):0)?(j=g+-1|0,c[f>>2]=j,(j|0)==0):0){lm(d);b=c[h>>2]|0}e=e+1|0}while(e>>>0>>0)}Zl(c[i>>2]|0);Zl(a);return}case 2:{Zl(c[a+8>>2]|0);Zl(a);return}case 3:{Zl(a);return}case 4:{Zl(a);return}default:return}}function mm(){var a=0,b=0;a=Yl(24)|0;if(!a){a=0;return a|0}c[a>>2]=1;c[a+4>>2]=1;c[a+12>>2]=0;c[a+8>>2]=8;b=Yl(32)|0;c[a+16>>2]=b;if(!b){Zl(a);b=0;return b|0}else{c[a+20>>2]=0;b=a;return b|0}return 0}function nm(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;if(!b){b=-1;return b|0}if(a|0?!((a|0)==(b|0)|(c[a>>2]|0)!=1):0){g=a+12|0;h=a+8|0;d=c[h>>2]|0;e=a+16|0;f=c[e>>2]|0;if(((c[g>>2]|0)+1|0)>>>0>d>>>0){k=d+1|0;a=d<<1;a=k>>>0>a>>>0?k:a;d=Yl(a<<2)|0;if(d|0){c[h>>2]=a;c[e>>2]=d;eq(d|0,f|0,c[g>>2]<<2|0)|0;Zl(f);i=c[e>>2]|0;j=10}}else{i=f;j=10}if((j|0)==10?i|0:0){k=c[g>>2]|0;c[i+(k<<2)>>2]=b;c[g>>2]=k+1;k=0;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}lm(b);k=-1;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}lm(b);k=-1;return k|0}function om(a,b){a=a|0;b=b|0;var d=0;if(!a){a=0;return a|0}d=Yl(16)|0;if(!d){a=0;return a|0}c[d>>2]=2;c[d+4>>2]=1;c[d+8>>2]=a;c[d+12>>2]=b;a=d;return a|0}function pm(a){a=a|0;if((a|0)!=0?(c[a>>2]|0)==2:0)a=c[a+8>>2]|0;else a=0;return a|0}function qm(a,b){a=a|0;b=b|0;var d=0,e=0;d=Yl(16)|0;if(!d){d=0;return d|0}c[d>>2]=3;c[d+4>>2]=1;e=d+8|0;c[e>>2]=a;c[e+4>>2]=b;return d|0}function rm(a){a=a|0;var b=0;if((a|0)!=0?(c[a>>2]|0)==3:0){b=a+8|0;a=c[b+4>>2]|0;b=c[b>>2]|0}else{a=0;b=0}C=a;return b|0}function sm(a){a=+a;var b=0,d=0.0;d=+N(+a);h[k>>3]=d;b=c[k+4>>2]|0;if(b>>>0>2146435071|(b|0)==2146435071&(c[k>>2]|0)>>>0>4294967295){b=0;return b|0}b=Yl(16)|0;if(!b){b=0;return b|0}c[b>>2]=4;c[b+4>>2]=1;h[b+8>>3]=a;return b|0}function tm(a){a=a|0;var b=0.0;if(!a){b=0.0;return +b}switch(c[a>>2]|0){case 3:{a=a+8|0;b=+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0);return +b}case 4:{b=+h[a+8>>3];return +b}default:{b=0.0;return +b}}return 0.0}function um(){return 9352}function vm(){return 9360}function wm(){return 9368}function xm(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b)return;a[b+92>>0]=0;c[b>>2]=-1;c[b+4>>2]=-1;c[b+8>>2]=0;if(!d){a[b+12>>0]=0;return}e=mp(d)|0;if(e>>>0<80){Kp(b+12|0,d,e+1|0)|0;return}else{f=b+12|0;a[f>>0]=a[40112]|0;a[f+1>>0]=a[40113]|0;a[f+2>>0]=a[40114]|0;Kp(b+15|0,d+(e+-76)|0,77)|0;return}}function ym(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 k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=h;if(!b){i=l;return}h=b+92|0;if(a[h>>0]|0){i=l;return}c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;Po(h,160,g,k)|0;a[b+251>>0]=0;i=l;return}function zm(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=0;b=a+8|0;c[b>>2]=3;d=Yl(64)|0;c[a+4>>2]=d;if(!d){e=-1;return e|0}e=a+12|0;c[a+16>>2]=e;c[e>>2]=e;f=a+20|0;c[a+24>>2]=f;c[f>>2]=f;b=1<>2];a=0;do{c[d+(a<<3)+4>>2]=e;c[d+(a<<3)>>2]=e;a=a+1|0}while(a>>>0>>0);b=0;return b|0}function Am(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+12|0;b=c[a+16>>2]|0;if((b|0)==(f|0)){a=a+4|0;a=c[a>>2]|0;Zl(a);return}do{e=b;b=c[b+4>>2]|0;d=c[e+20>>2]|0;if((d|0?(h=d+4|0,g=c[h>>2]|0,(g|0)!=-1):0)?(i=g+-1|0,c[h>>2]=i,(i|0)==0):0)lm(d);Zl(e)}while((b|0)!=(f|0));i=a+4|0;i=c[i>>2]|0;Zl(i);return}function Bm(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;g=a+8|0;e=c[g>>2]|0;if((c[a>>2]|0)>>>0>=1<>>0){e=e+1|0;h=1<>2]|0);c[i>>2]=f;c[g>>2]=e;n=a+12|0;g=0;do{c[f+(g<<3)+4>>2]=n;c[f+(g<<3)>>2]=n;g=g+1|0}while(g>>>0>>0);m=a+16|0;g=c[m>>2]|0;c[m>>2]=n;c[n>>2]=n;if((g|0)!=(n|0)){m=h+-1|0;f=c[i>>2]|0;do{h=g+4|0;l=g;g=c[h>>2]|0;i=c[l+16>>2]&m;j=f+(i<<3)|0;k=c[j>>2]|0;if((k|0)==(n|0)?(o=f+(i<<3)+4|0,(n|0)==(c[o>>2]|0)):0){c[h>>2]=n;c[l>>2]=c[n>>2];c[(c[n>>2]|0)+4>>2]=l;c[n>>2]=l;c[o>>2]=l}else{c[h>>2]=k;c[l>>2]=c[k>>2];c[(c[k>>2]|0)+4>>2]=l;c[k>>2]=l}c[j>>2]=l}while((g|0)!=(n|0))}}else{n=a+12|0;f=c[a+4>>2]|0}g=mp(b)|0;g=Cm(b,g,c[10749]|0)|0;j=(1<>2]|0;j=f+(j<<3)+4|0;if(!((e|0)==(n|0)?(n|0)==(c[j>>2]|0):0))p=15;a:do if((p|0)==15){while(1){if((c[e+16>>2]|0)==(g|0)?(cp(e+24|0,b)|0)==0:0)break;if((e|0)==(c[j>>2]|0))break a;e=c[e+4>>2]|0;p=15}if(e|0){e=e+20|0;f=c[e>>2]|0;if((f|0?(q=f+4|0,r=c[q>>2]|0,(r|0)!=-1):0)?(a=r+-1|0,c[q>>2]=a,(a|0)==0):0)lm(f);c[e>>2]=d;a=0;return a|0}}while(0);e=mp(b)|0;if(e>>>0>4294967270){a=-1;return a|0}i=Yl(e+25|0)|0;if(!i){a=-1;return a|0}c[i+16>>2]=g;Kp(i+24|0,b,e+1|0)|0;c[i+20>>2]=d;e=i+4|0;c[e>>2]=i;c[i>>2]=i;f=i+8|0;g=i+12|0;c[g>>2]=f;c[f>>2]=f;h=c[k>>2]|0;if((h|0)==(n|0)?(n|0)==(c[j>>2]|0):0){c[e>>2]=n;c[i>>2]=c[n>>2];c[(c[a+12>>2]|0)+4>>2]=i;c[n>>2]=i;c[j>>2]=i}else{c[e>>2]=h;c[i>>2]=c[h>>2];c[(c[h>>2]|0)+4>>2]=i;c[h>>2]=i}c[k>>2]=i;d=a+20|0;c[g>>2]=d;c[f>>2]=c[d>>2];c[(c[d>>2]|0)+4>>2]=f;c[d>>2]=f;c[a>>2]=(c[a>>2]|0)+1;a=0;return a|0}function Cm(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,i=0,j=0;i=b+-559038737+f|0;f=a;a:do if(f&3)if(!(f&1)){if(b>>>0>12){g=i;h=i;f=i;do{h=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;g=(f<<4|f>>>28)^((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;break a}case 11:{f=((d[a+10>>0]|0)<<16)+f|0;j=24;break}case 10:{j=24;break}case 9:{f=(d[a+8>>0]|0)+f|0;j=26;break}case 8:{j=26;break}case 7:{b=((d[a+6>>0]|0)<<16)+h|0;j=28;break}case 6:{b=h;j=28;break}case 5:{b=(d[a+4>>0]|0)+h|0;j=30;break}case 4:{b=h;j=30;break}case 3:{g=((d[a+2>>0]|0)<<16)+g|0;j=32;break}case 2:{j=32;break}case 1:{g=(d[a>>0]|0)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==24){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=(e[a+8>>1]|0)+f|0;break}else if((j|0)==26){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;break}else if((j|0)==28){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=(e[a+4>>1]|0)+b|0;break}else if((j|0)==30){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;break}else if((j|0)==32){g=(e[a>>1]|0)+g|0;b=h;break}}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(d[a+4>>0]|0)+h+((d[a+5>>0]|0)<<8)+((d[a+6>>0]|0)<<16)+((d[a+7>>0]|0)<<24)|0;f=(d[a+8>>0]|0)+f+((d[a+9>>0]|0)<<8)+((d[a+10>>0]|0)<<16)+((d[a+11>>0]|0)<<24)|0;g=(f<<4|f>>>28)^(d[a>>0]|0)+g+((d[a+1>>0]|0)<<8)+((d[a+2>>0]|0)<<16)+((d[a+3>>0]|0)<<24)-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{f=((d[a+11>>0]|0)<<24)+f|0;j=37;break}case 11:{j=37;break}case 10:{j=38;break}case 9:{j=39;break}case 8:{j=40;break}case 7:{b=h;j=41;break}case 6:{b=h;j=42;break}case 5:{b=h;j=43;break}case 4:{b=h;j=44;break}case 3:{b=h;j=45;break}case 2:{b=h;j=46;break}case 1:{b=h;break}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==37){f=((d[a+10>>0]|0)<<16)+f|0;j=38}if((j|0)==38){f=((d[a+9>>0]|0)<<8)+f|0;j=39}if((j|0)==39){f=(d[a+8>>0]|0)+f|0;j=40}if((j|0)==40){b=((d[a+7>>0]|0)<<24)+h|0;j=41}if((j|0)==41){b=((d[a+6>>0]|0)<<16)+b|0;j=42}if((j|0)==42){b=((d[a+5>>0]|0)<<8)+b|0;j=43}if((j|0)==43){b=(d[a+4>>0]|0)+b|0;j=44}if((j|0)==44){g=((d[a+3>>0]|0)<<24)+g|0;j=45}if((j|0)==45){g=((d[a+2>>0]|0)<<16)+g|0;j=46}if((j|0)==46)g=((d[a+1>>0]|0)<<8)+g|0;g=(d[a>>0]|0)+g|0;break}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;g=(f<<4|f>>>28)^(c[a>>2]|0)+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}do switch(b|0){case 12:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;break a}case 11:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&16777215)+f|0;break a}case 10:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&65535)+f|0;break a}case 9:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&255)+f|0;break a}case 8:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;break a}case 7:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&16777215)+h|0;break a}case 6:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&65535)+h|0;break a}case 5:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&255)+h|0;break a}case 4:{g=(c[a>>2]|0)+g|0;b=h;break a}case 3:{g=(c[a>>2]&16777215)+g|0;b=h;break a}case 2:{g=(c[a>>2]&65535)+g|0;b=h;break a}case 1:{g=(c[a>>2]&255)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}while(0)}while(0);i=(f^b)-(b<<14|b>>>18)|0;j=(i^g)-(i<<11|i>>>21)|0;h=(j^b)-(j<<25|j>>>7)|0;i=(h^i)-(h<<16|h>>>16)|0;j=(i^j)-(i<<4|i>>>28)|0;j=(j^h)-(j<<14|j>>>18)|0;j=(j^i)-(j<<24|j>>>8)|0;return j|0}function Dm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=mp(b)|0;f=Cm(b,f,c[10749]|0)|0;e=(1<>2])+-1&f;h=c[a+4>>2]|0;d=c[h+(e<<3)>>2]|0;e=h+(e<<3)+4|0;if((d|0)==(a+12|0)?(d|0)==(c[e>>2]|0):0){h=0;return h|0}while(1){if((c[d+16>>2]|0)==(f|0)?(cp(d+24|0,b)|0)==0:0)break;if((d|0)==(c[e>>2]|0)){d=0;g=9;break}d=c[d+4>>2]|0}if((g|0)==9)return d|0;if(!d){h=0;return h|0}h=c[d+20>>2]|0;return h|0}function Em(b){b=b|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=g+8|0;if(c[10749]|0){i=g;return}h=a[43544]|0;a[43544]=1;if(h<<24>>24){do Ba()|0;while(!(c[10749]|0));i=g;return}if(!b){b=ep(40116,0,f)|0;if((b|0)!=-1?(h=(Vp(b,e,4)|0)==4,dp(b)|0,h):0)b=((d[e+1>>0]|0|(d[e>>0]|0)<<8)<<8|(d[e+2>>0]|0))<<8|(d[e+3>>0]|0);else{ib(f|0,0)|0;b=c[f+4>>2]^c[f>>2];b=b^(Cp()|0)}b=(b|0)==0?1:b}c[10749]=b;i=g;return}function Fm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)!=8){a=0;return a|0}a=Wp(28)|0;c[a+20>>2]=g;g=255-g|0;c[a+8>>2]=g;c[a+12>>2]=f;c[a+4>>2]=g-f;c[a>>2]=Gm(b&65535,d&255,e&255,f)|0;c[a+16>>2]=Wp(g)|0;c[a+24>>2]=Wp(f)|0;return a|0}function Gm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;if((i|0)>=(j|0))ba();s=t+32|0;r=t+24|0;m=t+16|0;n=t+8|0;o=t;p=Yp(1,156)|0;q=Wp(512)|0;k=Wp(256)|0;a[q>>0]=1;a[k>>0]=0;b=b&65535;g=1;h=1;do{l=g<<1&65534;g=(l>>>0>255?b:0)^l;a[q+h>>0]=g;if(h>>>0<256)a[k+g>>0]=h;h=h+1|0}while((h|0)!=512);g=k;c[p+16>>2]=q;c[p+20>>2]=g;c[p>>2]=255;c[p+8>>2]=f;c[p+4>>2]=255-f;a[p+12>>0]=d;a[p+13>>0]=e;k=Wp(f)|0;c[p+32>>2]=k;l=p+24|0;h=e&255;c[r>>2]=q;c[r+4>>2]=g;if(f|0){b=d&255;g=0;do{a[k+g>>0]=a[q+(((_(g+b|0,h)|0)>>>0)%255|0)>>0]|0;g=g+1|0}while((g|0)!=(f|0))};c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];Hm(m,s,f,k);r=m;s=c[r+4>>2]|0;f=l;c[f>>2]=c[r>>2];c[f+4>>2]=s;Im(n,254);f=n;s=c[f+4>>2]|0;r=p+40|0;c[r>>2]=c[f>>2];c[r+4>>2]=s;Im(o,254);r=o;s=c[r+4>>2]|0;f=p+48|0;c[f>>2]=c[r>>2];c[f+4>>2]=s;i=t;return p|0}function Hm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;C=i;i=i+16|0;if((i|0)>=(j|0))ba();w=C;x=f+1|0;y=Wp(x)|0;z=y;A=Yp(x,1)|0;c[w>>2]=A;B=Yp(x,1)|0;c[w+8>>2]=B;a[A>>0]=a[g>>0]|0;a[A+1>>0]=1;c[w+4>>2]=1;if(f>>>0<=1){g=A;eq(y|0,g|0,x|0)|0;Xp(A);Xp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}v=c[e>>2]|0;q=c[e+4>>2]|0;r=q+1|0;s=A;t=1;u=0;while(1){m=a[g+t>>0]|0;o=u;u=u&1^1;p=t;t=t+1|0;c[w+(u<<3)+4>>2]=t;e=c[w+(u<<3)>>2]|0;o=c[w+(o<<3)+4>>2]|0;dq(e|0,0,p+2|0)|0;n=o>>>0>t>>>0?t:o;k=q+(m&255)|0;if(!(m<<24>>24)){h=0;do h=h+1|0;while(h>>>0<=n>>>0)}else{m=0;do{l=e+m|0;h=a[s+m>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[k>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0];m=m+1|0}while(m>>>0<=n>>>0)}k=o>>>0>p>>>0?p:o;m=0;do{h=m;m=m+1|0;l=e+m|0;h=a[s+h>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[r>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0]}while(m>>>0<=k>>>0);if((t|0)==(f|0))break;else s=e}eq(y|0,e|0,x|0)|0;Xp(A);Xp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}function Im(a,b){a=a|0;b=b|0;c[a>>2]=Wp(b+1|0)|0;c[a+4>>2]=b;return}function Jm(a){a=a|0;Km(c[a>>2]|0);Xp(c[a+16>>2]|0);Xp(c[a+24>>2]|0);Xp(a);return}function Km(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();g=h;f=c[b+20>>2]|0;Xp(c[b+16>>2]|0);Xp(f);f=b+24|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Lm(g);Xp(c[b+32>>2]|0);f=b+40|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Lm(g);f=b+48|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Lm(g);if(!(a[b+152>>0]|0)){Xp(b);i=h;return}Xp(c[b+56>>2]|0);Xp(c[b+60>>2]|0);d=b+64|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+72|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+80|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+88|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);Xp(c[b+96>>2]|0);Xp(c[b+100>>2]|0);Xp(c[b+104>>2]|0);d=b+112|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+120|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+128|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Lm(g);d=b+8|0;e=b+36|0;if(c[d>>2]|0){f=0;do{Xp(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Xp(c[e>>2]|0);d=b+108|0;e=0;do{Xp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=256);Xp(c[d>>2]|0);f=b+136|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Lm(g);f=b+144|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Lm(g);Xp(b);i=h;return}function Lm(a){a=a|0;Xp(c[a>>2]|0);return}function Mm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+4|0;f=a+16|0;Nm(c[a>>2]|0,b,c[e>>2]|0,c[f>>2]|0)|0;eq(d|0,(c[f>>2]|0)+(c[e>>2]|0)|0,c[a+12>>2]|0)|0;return}function Nm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();p=s+24|0;o=s+16|0;n=s+8|0;m=s;k=b+4|0;g=c[k>>2]|0;if(g>>>0>>0){b=-1;i=s;return b|0}r=g-e|0;l=(e|0)==0;q=b+44|0;if(!l){g=b+40|0;h=0;do{a[(c[g>>2]|0)+((c[q>>2]|0)-(h+r))>>0]=a[d+h>>0]|0;h=h+1|0}while((h|0)!=(e|0))}h=b+40|0;dq((c[h>>2]|0)+(1-r+(c[q>>2]|0))|0,0,r|0)|0;dq(c[h>>2]|0,0,(c[q>>2]|0)+1-(c[k>>2]|0)|0)|0;g=b+16|0;d=b+24|0;k=b+48|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];Om(m,n,o,p);if(!l){g=0;do{a[f+g>>0]=a[(c[h>>2]|0)+((c[q>>2]|0)-(g+r))>>0]|0;g=g+1|0}while((g|0)!=(e|0))}d=b+8|0;g=c[d>>2]|0;if(g|0){h=0;do{r=h;h=h+1|0;a[f+(r+e)>>0]=a[(c[k>>2]|0)+(g-h)>>0]|0;g=c[d>>2]|0}while(h>>>0>>0)}b=c[b>>2]|0;i=s;return b|0}function Om(b,e,f,g){b=b|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;h=c[e+4>>2]|0;if((c[g+4>>2]|0)>>>0>>0)return;n=c[g>>2]|0;eq(n|0,c[e>>2]|0,h+1|0)|0;if(!h)return;l=c[b+4>>2]|0;m=c[f>>2]|0;j=c[f+4>>2]|0;k=(d[l+(d[m+j>>0]|0)>>0]|0)^255;i=c[b>>2]|0;while(1){if(h>>>0>>0){g=11;break}g=a[n+h>>0]|0;if(g<<24>>24){b=h-j|0;g=k+(d[l+(g&255)>>0]|0)|0;g=(g>>>0>255&1)+g&255;f=0;do{e=a[m+f>>0]|0;if(e<<24>>24){o=n+(b+f)|0;a[o>>0]=a[i+((d[l+(e&255)>>0]|0)+g)>>0]^a[o>>0]}f=f+1|0}while(f>>>0<=j>>>0)}h=h+-1|0;if(!h){g=11;break}}if((g|0)==11)return}function Pm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=b+20|0;g=b+24|0;i=0;do{a[(c[g>>2]|0)+i>>0]=(c[e+(i<<2)>>2]|0)-(c[h>>2]|0);i=i+1|0}while((i|0)!=(f|0))}else g=b+24|0;Qm(c[b>>2]|0,d,c[b+8>>2]|0,c[g>>2]|0,f,d)|0;return}function Qm(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+64|0;if((i|0)>=(j|0))ba();I=N+56|0;G=N+48|0;F=N+24|0;x=N+16|0;J=N;u=N+40|0;t=N+32|0;s=N+8|0;if(!h){k=Rm(b,e,f,k)|0;i=N;return k|0}n=c[b>>2]|0;if(n>>>0>>0){k=-1;i=N;return k|0}L=b+8|0;M=c[L>>2]|0;if(M>>>0>>0){k=-1;i=N;return k|0}l=f-M|0;p=n-f|0;if(!(a[b+152>>0]|0))Sm(b);if(f|0){m=b+64|0;o=0;do{K=o;o=o+1|0;a[(c[m>>2]|0)+K>>0]=a[e+(f-o)>>0]|0}while((o|0)!=(f|0))}if((n|0)!=(f|0)){m=b+64|0;n=0;do{a[(c[m>>2]|0)+(n+f)>>0]=0;n=n+1|0}while((n|0)!=(p|0))}m=p^255;K=b+104|0;n=0;do{a[(c[K>>2]|0)+n>>0]=(c[b>>2]|0)+m-(d[g+n>>0]|0);n=n+1|0}while((n|0)!=(h|0));w=b+16|0;E=b+13|0;o=c[K>>2]|0;B=b+96|0;p=c[B>>2]|0;n=c[w>>2]|0;C=b+20|0;e=c[C>>2]|0;g=d[E>>0]|0;q=e+1|0;r=0;do{m=a[n+(((_(d[e+(d[n+(d[o+r>>0]|0)>>0]|0)>>0]|0,g)|0)>>>0)%255|0)>>0]|0;if(!(m<<24>>24))m=0;else m=a[n+((d[q>>0]|0)+255-(d[e+(m&255)>>0]|0)&65535)>>0]|0;a[p+r>>0]=m;r=r+1|0}while((r|0)!=(h|0));q=b+88|0;D=c[B>>2]|0;H=c[w>>2]|0;m=c[C>>2]|0;g=b+92|0;n=c[g>>2]|0;c[F>>2]=c[q>>2];c[F+4>>2]=n;c[x>>2]=H;c[x+4>>2]=m;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];_m(s,G,h,D,I,b+136|0);D=s;m=c[D+4>>2]|0;H=q;c[H>>2]=c[D>>2];c[H+4>>2]=m;H=b+64|0;m=c[b+36>>2]|0;D=b+56|0;n=c[D>>2]|0;e=c[L>>2]|0;z=c[w>>2]|0;A=c[C>>2]|0;y=c[b+68>>2]|0;c[F>>2]=c[H>>2];c[F+4>>2]=y;c[x>>2]=z;c[x+4>>2]=A;dq(n|0,0,e|0)|0;if(e){o=1;p=0;do{A=c[m+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];A=Um(G,I,A)|0;o=o&A<<24>>24==0;a[n+p>>0]=A;p=p+1|0}while((p|0)!=(e|0));if(!o){m=c[D>>2]|0;n=b+60|0;z=c[n>>2]|0;A=c[g>>2]|0;c[J>>2]=c[q>>2];c[J+4>>2]=A;A=(c[L>>2]|0)+-1|0;c[u+4>>2]=A;c[u>>2]=m;c[t+4>>2]=A;c[t>>2]=z;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[J>>2];c[F+4>>2]=c[J+4>>2];c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];c[I>>2]=c[t>>2];c[I+4>>2]=c[t+4>>2];Ym(x,F,G,I);z=c[L>>2]|0;A=Wp(z)|0;m=c[D>>2]|0;eq(A|0,m|0,z|0)|0;if(z>>>0>h>>>0?(a[m>>0]=a[(c[n>>2]|0)+h>>0]|0,v=h+1|0,v>>>0<(c[L>>2]|0)>>>0):0){m=v;do{a[(c[D>>2]|0)+(m-h)>>0]=a[(c[n>>2]|0)+m>>0]|0;m=m+1|0}while(m>>>0<(c[L>>2]|0)>>>0)}y=b+72|0;z=b+76|0;c[z>>2]=Vm(b,h)|0;n=b+80|0;e=0;do{a[(c[n>>2]|0)+e>>0]=a[(c[C>>2]|0)+(d[(c[y>>2]|0)+e>>0]|0)>>0]|0;e=e+1|0;m=c[z>>2]|0}while(e>>>0<=m>>>0);c[b+84>>2]=m;n=c[B>>2]|0;e=c[b+108>>2]|0;o=b+80|0;m=o;o=o+4|0;o=d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24;p=F;c[p>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[p+4>>2]=o;p=w;m=p;p=p+4|0;p=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;g=x;c[g>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[g+4>>2]=p;g=F+4|0;dq(n+h|0,0,o|0)|0;o=0;p=0;m=h;while(1){v=c[e+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];if(!((Wm(G,I,v)|0)<<24>>24)){a[n+m>>0]=o;m=m+1|0}p=p+1|0;if((p|0)==256)break;else o=o+1<<16>>16}if((m|0)!=((c[g>>2]|0)+h|0)){k=-1;i=N;return k|0}Im(J,(c[z>>2]|0)+h|0);c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[q>>2];c[F+4>>2]=c[q+4>>2];c[G>>2]=c[y>>2];c[G+4>>2]=c[y+4>>2];c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];Ym(x,F,G,I);x=y;w=c[x>>2]|0;x=c[x+4>>2]|0;t=J;v=c[t+4>>2]|0;s=y;c[s>>2]=c[t>>2];c[s+4>>2]=v;s=c[B>>2]|0;t=c[K>>2]|0;u=b+16|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;q=d[C>>0]|d[C+1>>0]<<8|d[C+2>>0]<<16|d[C+3>>0]<<24;if(v|0){r=q+1|0;p=d[E>>0]|0;g=0;do{m=a[s+g>>0]|0;a:do if(m<<24>>24){n=a[u+((d[r>>0]|0)+255-(d[q+(m&255)>>0]|0)&65535)>>0]|0;m=0;o=0;while(1){e=o+1<<16>>16;if((a[u+(((_(d[q+(o&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==n<<24>>24)break;if((e&65535)<256){m=e&65535;o=e}else break a}a[t+g>>0]=a[q+m>>0]|0}while(0);g=g+1|0}while((g|0)!=(v|0))}eq(c[D>>2]|0,A|0,c[L>>2]|0)|0;Xm(b);if(c[z>>2]|0){m=b+100|0;n=0;do{b=(c[H>>2]|0)+(d[(c[K>>2]|0)+n>>0]|0)|0;a[b>>0]=a[(c[m>>2]|0)+n>>0]^a[b>>0];n=n+1|0}while(n>>>0<(c[z>>2]|0)>>>0)}b=y;c[b>>2]=w;c[b+4>>2]=x;if((M|0)!=(f|0)){m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0))}k=l;i=N;return k|0}}if((M|0)==(f|0)){k=l;i=N;return k|0}m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0));i=N;return l|0}function Rm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;A=i;i=i+32|0;if((i|0)>=(j|0))ba();t=A+24|0;u=A+16|0;r=A+8|0;s=A;m=c[b>>2]|0;if(m>>>0>>0){g=-1;i=A;return g|0}o=b+8|0;z=c[o>>2]|0;h=f-z|0;if(!(a[b+152>>0]|0))Sm(b);if(f|0){k=b+64|0;l=0;do{y=l;l=l+1|0;a[(c[k>>2]|0)+y>>0]=a[e+(f-l)>>0]|0}while((l|0)!=(f|0))}if((m|0)!=(f|0)){l=b+64|0;k=m-f|0;e=0;do{a[(c[l>>2]|0)+(e+f)>>0]=0;e=e+1|0}while((e|0)!=(k|0))}q=b+16|0;y=b+64|0;m=c[b+36>>2]|0;n=c[b+56>>2]|0;k=c[o>>2]|0;v=c[q>>2]|0;w=b+20|0;x=c[w>>2]|0;p=c[b+68>>2]|0;c[r>>2]=c[y>>2];c[r+4>>2]=p;c[s>>2]=v;c[s+4>>2]=x;dq(n|0,0,k|0)|0;if(k){e=1;l=0;do{x=c[m+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];x=Um(u,t,x)|0;e=e&x<<24>>24==0;a[n+l>>0]=x;l=l+1|0}while((l|0)!=(k|0));if(!e){x=b+76|0;c[x>>2]=Vm(b,0)|0;e=b+72|0;l=b+80|0;m=0;do{a[(c[l>>2]|0)+m>>0]=a[(c[w>>2]|0)+(d[(c[e>>2]|0)+m>>0]|0)>>0]|0;m=m+1|0;k=c[x>>2]|0}while(m>>>0<=k>>>0);c[b+84>>2]=k;p=b+96|0;m=c[p>>2]|0;n=c[b+108>>2]|0;e=b+80|0;k=e;e=e+4|0;e=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;l=r;c[l>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[l+4>>2]=e;l=q;k=l;l=l+4|0;l=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24;o=s;c[o>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[o+4>>2]=l;o=r+4|0;dq(m|0,0,e|0)|0;e=0;l=0;k=0;while(1){v=c[n+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];if(!((Wm(u,t,v)|0)<<24>>24)){a[m+k>>0]=e;k=k+1|0}l=l+1|0;if((l|0)==256)break;else e=e+1<<16>>16}if((k|0)!=(c[o>>2]|0)){g=-1;i=A;return g|0}u=c[p>>2]|0;v=b+104|0;r=c[v>>2]|0;s=c[x>>2]|0;t=b+16|0;t=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;n=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;if(s|0){o=n+1|0;p=d[b+13>>0]|0;q=0;do{k=a[u+q>>0]|0;a:do if(k<<24>>24){e=a[t+((d[o>>0]|0)+255-(d[n+(k&255)>>0]|0)&65535)>>0]|0;k=0;m=0;while(1){l=m+1<<16>>16;if((a[t+(((_(d[n+(m&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==e<<24>>24)break;if((l&65535)<256){k=l&65535;m=l}else break a}a[r+q>>0]=a[n+k>>0]|0}while(0);q=q+1|0}while((q|0)!=(s|0))}Xm(b);if(c[x>>2]|0){k=b+100|0;e=0;do{b=(c[y>>2]|0)+(d[(c[v>>2]|0)+e>>0]|0)|0;a[b>>0]=a[(c[k>>2]|0)+e>>0]^a[b>>0];e=e+1|0}while(e>>>0<(c[x>>2]|0)>>>0)}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}function Sm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+80|0;if((i|0)>=(j|0))ba();l=p+72|0;s=p+64|0;r=p+56|0;q=p+48|0;e=p+40|0;g=p+32|0;h=p+24|0;f=p+16|0;n=p+8|0;o=p;a[b+152>>0]=1;m=b+8|0;d=c[m>>2]|0;c[b+56>>2]=Yp(d,1)|0;c[b+60>>2]=Yp(d<<1,1)|0;Im(s,(c[b>>2]|0)+-1|0);d=c[s+4>>2]|0;k=b+64|0;c[k>>2]=c[s>>2];c[k+4>>2]=d;Im(r,c[m>>2]|0);k=c[r+4>>2]|0;d=b+72|0;c[d>>2]=c[r>>2];c[d+4>>2]=k;Im(q,c[m>>2]|0);d=c[q+4>>2]|0;k=b+80|0;c[k>>2]=c[q>>2];c[k+4>>2]=d;Im(e,c[m>>2]|0);k=c[e+4>>2]|0;d=b+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=k;d=c[m>>2]|0;c[b+96>>2]=Yp(d<<1,1)|0;c[b+100>>2]=Wp(d)|0;c[b+104>>2]=Wp(d)|0;Im(g,d);d=c[g+4>>2]|0;k=b+112|0;c[k>>2]=c[g>>2];c[k+4>>2]=d;Im(h,(c[m>>2]|0)+-1|0);k=c[h+4>>2]|0;d=b+120|0;c[d>>2]=c[h>>2];c[d+4>>2]=k;Im(f,(c[m>>2]|0)+-1|0);d=c[f+4>>2]|0;k=b+128|0;c[k>>2]=c[f>>2];c[k+4>>2]=d;k=c[m>>2]|0;d=Wp(k<<2)|0;f=b+36|0;c[f>>2]=d;a:do if(!k){k=b+16|0;d=0}else{g=b+16|0;h=b+32|0;e=0;while(1){s=c[b>>2]|0;c[d+(e<<2)>>2]=Wp(s)|0;r=a[(c[h>>2]|0)+e>>0]|0;d=c[(c[f>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Tm(l,r,s+-1|0,d);e=e+1|0;d=c[m>>2]|0;if(e>>>0>=d>>>0){k=g;break a}d=c[f>>2]|0}}while(0);f=Wp(1024)|0;h=b+108|0;c[h>>2]=f;g=0;e=0;while(1){c[f+(e<<2)>>2]=Wp(d)|0;s=c[(c[h>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Tm(l,g&255,d+-1|0,s);e=e+1|0;if((e|0)==256)break;d=c[m>>2]|0;f=c[h>>2]|0;g=g+1<<16>>16}Im(n,c[m>>2]|0);s=n;r=c[s+4>>2]|0;q=b+136|0;c[q>>2]=c[s>>2];c[q+4>>2]=r;Im(o,c[m>>2]|0);q=o;r=c[q+4>>2]|0;s=b+144|0;c[s>>2]=c[q>>2];c[s+4>>2]=r;i=p;return}function Tm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0;b=c[b+4>>2]|0;h=d[b+(e&255)>>0]|0;if(!(e<<24>>24)){b=0;do{a[g+b>>0]=0;b=b+1|0}while(b>>>0<=f>>>0);return}e=0;b=a[b+1>>0]|0;while(1){a[g+e>>0]=b;b=(b&255)+h|0;e=e+1|0;if(e>>>0>f>>>0)break;else b=(b>>>0>255&1)+b&255}return}function Um(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;if(!(a[f>>0]|0)){f=a[c[e>>2]>>0]|0;return f|0}k=c[e>>2]|0;i=c[e+4>>2]|0;j=c[b+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[k+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(d[j+(b&255)>>0]|0))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Vm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;v=b+72|0;z=b+8|0;dq(c[v>>2]|0,0,(c[z>>2]|0)+1|0)|0;a[c[v>>2]>>0]=1;A=b+76|0;c[A>>2]=0;B=b+112|0;eq(c[B>>2]|0,c[v>>2]|0,(c[z>>2]|0)+1|0)|0;f=c[A>>2]|0;w=b+116|0;c[w>>2]=f;if(f>>>0>=((c[z>>2]|0)-e|0)>>>0){e=f;return e|0}y=b+56|0;s=b+16|0;r=b+20|0;b=f;h=f;p=1;q=f;o=1;g=0;while(1){m=c[y>>2]|0;f=a[m+q>>0]|0;if(!g)l=f;else{n=c[v>>2]|0;l=c[r>>2]|0;k=1;do{i=a[n+k>>0]|0;j=a[m+(q-k)>>0]|0;if(i<<24>>24==0|j<<24>>24==0)i=0;else i=a[(c[s>>2]|0)+((d[l+(j&255)>>0]|0)+(d[l+(i&255)>>0]|0))>>0]|0;f=i^f;k=k+1|0}while(k>>>0<=g>>>0);l=f}do if(!(l<<24>>24)){i=p+1|0;f=o}else{b=(h|0)>-1;if(g<<1>>>0>q>>>0){a:do if(b){k=l&255;l=o&255;if(!(o<<24>>24)){b=h;while(1)if((b|0)>0)b=b+-1|0;else break a}while(1){i=(c[v>>2]|0)+(h+p)|0;j=a[i>>0]|0;f=a[(c[B>>2]|0)+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(t=c[s>>2]|0,x=a[t+((d[b+k>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,x<<24>>24!=0):0)b=a[t+((d[b+(x&255)>>0]|0)+255-(d[b+l>>0]|0)&65535)>>0]|0;else b=0;a[i>>0]=b^j;if((h|0)>0)h=h+-1|0;else break}}while(0);h=c[w>>2]|0;i=h+p|0;b=c[A>>2]|0;b=i>>>0>b>>>0?i:b;c[A>>2]=b;i=p+1|0;f=o;break}b:do if(b){j=l&255;k=o&255;if(!(o<<24>>24)){b=h;while(1){a[(c[B>>2]|0)+(b+p)>>0]=0;if((b|0)>0)b=b+-1|0;else break b}}while(1){i=c[B>>2]|0;f=a[i+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(u=c[s>>2]|0,C=a[u+((d[b+j>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,C<<24>>24!=0):0)b=a[u+((d[b+(C&255)>>0]|0)+255-(d[b+k>>0]|0)&65535)>>0]|0;else b=0;a[i+(h+p)>>0]=b;if((h|0)>0)h=h+-1|0;else break}}while(0);b=p+-1|0;if((b|0)>-1){do{a[(c[B>>2]|0)+b>>0]=0;b=b+-1|0}while((b|0)>-1);f=0}else f=0;do{o=(c[v>>2]|0)+f|0;b=a[o>>0]|0;a[o>>0]=a[(c[B>>2]|0)+f>>0]^b;a[(c[B>>2]|0)+f>>0]=b;f=f+1|0;b=(c[w>>2]|0)+p|0}while(f>>>0<=b>>>0);h=c[A>>2]|0;c[A>>2]=b;c[w>>2]=h;i=1;f=l;g=q+1-g|0}while(0);q=q+1|0;if(q>>>0>=((c[z>>2]|0)-e|0)>>>0)break;else{p=i;o=f}}return b|0}function Wm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;if(!(a[f>>0]|0)){e=a[c[e>>2]>>0]|0;if(!(e<<24>>24)){f=0;return f|0}f=a[(c[b>>2]|0)+(e&255)>>0]|0;return f|0}j=c[e>>2]|0;i=c[e+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[j+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(b&255))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Xm(b){b=b|0;var e=0,f=0,g=0,h=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;x=i;i=i+64|0;if((i|0)>=(j|0))ba();o=x+56|0;n=x+48|0;e=x+40|0;r=x+32|0;s=x+24|0;u=x+16|0;t=x+8|0;m=x;g=(c[b+8>>2]|0)+-1|0;k=c[b+56>>2]|0;w=b+120|0;dq(c[w>>2]|0,0,(c[b+124>>2]|0)+1|0)|0;q=b+16|0;v=b+72|0;f=w;y=f;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;h=s;c[h>>2]=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;c[h+4>>2]=f;c[u>>2]=k;c[u+4>>2]=g;g=v;k=g;g=g+4|0;g=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;h=t;c[h>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[h+4>>2]=g;h=q;g=h;h=h+4|0;h=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;k=m;c[k>>2]=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;c[k+4>>2]=h;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Ym(r,e,n,o);r=b+76|0;s=b+128|0;c[b+132>>2]=(c[r>>2]|0)+-1;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Zm(e,n,o);e=c[r>>2]|0;if(!e){i=x;return}t=b+96|0;u=b+12|0;m=b+20|0;v=b+108|0;k=b+100|0;b=e;h=0;do{e=a[(c[t>>2]|0)+h>>0]|0;if(e<<24>>24){f=e&255;e=(_(d[(c[m>>2]|0)+f>>0]|0,(d[u>>0]|0)+-1|0)|0)%255|0;e=a[(c[q>>2]|0)+((e|0)<0?e+255|0:e)>>0]|0;f=c[(c[v>>2]|0)+(f<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[w>>2];c[o+4>>2]=c[w+4>>2];f=Um(n,o,f)|0;g=c[(c[v>>2]|0)+((d[(c[t>>2]|0)+h>>0]|0)<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];g=Um(n,o,g)|0;b=c[m>>2]|0;if(!(f<<24>>24==0|g<<24>>24==0)?(l=c[q>>2]|0,p=a[l+((d[b+(f&255)>>0]|0)+255-(d[b+(g&255)>>0]|0)&65535)>>0]|0,!(e<<24>>24==0|p<<24>>24==0)):0)b=a[l+((d[b+(p&255)>>0]|0)+(d[b+(e&255)>>0]|0))>>0]|0;else b=0;a[(c[k>>2]|0)+h>>0]=b;b=c[r>>2]|0}h=h+1|0}while(h>>>0>>0);i=x;return}function Ym(b,e,f,g){b=b|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;r=c[g>>2]|0;o=c[g+4>>2]|0;dq(r|0,0,o+1|0)|0;p=c[e+4>>2]|0;q=c[f+4>>2]|0;n=c[e>>2]|0;l=c[f>>2]|0;m=c[b+4>>2]|0;i=c[b>>2]|0;j=0;do{if(o>>>0>=j>>>0){f=o-j|0;f=q>>>0>f>>>0?f:q;b=n+j|0;k=0;do{h=r+(k+j)|0;g=a[b>>0]|0;e=a[l+k>>0]|0;if(g<<24>>24==0|e<<24>>24==0)g=0;else g=a[i+((d[m+(e&255)>>0]|0)+(d[m+(g&255)>>0]|0))>>0]|0;a[h>>0]=g^a[h>>0];k=k+1|0}while(k>>>0<=f>>>0)}j=j+1|0}while(j>>>0<=p>>>0);return}function Zm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[e>>2]|0;f=c[e+4>>2]|0;dq(g|0,0,f+1|0)|0;b=c[d>>2]|0;e=0;do{d=e;e=e+1|0;a[g+d>>0]=e&1|0?a[b+e>>0]|0:0}while(e>>>0<=f>>>0);return}function _m(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var 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;y=i;i=i+16|0;if((i|0)>=(j|0))ba();x=y;u=k;w=c[u>>2]|0;u=c[u+4>>2]|0;t=x;c[t>>2]=w;c[t+4>>2]=u;t=k+8|0;u=c[t+4>>2]|0;v=x+8|0;c[v>>2]=c[t>>2];c[v+4>>2]=u;a[w+1>>0]=1;a[w>>0]=a[g>>0]|0;c[x+4>>2]=1;if(f>>>0<=1){x=c[x>>2]|0;w=c[h>>2]|0;g=f+1|0;eq(w|0,x|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}w=c[e>>2]|0;r=c[e+4>>2]|0;s=r+1|0;t=c[x>>2]|0;u=1;v=0;while(1){n=a[g+u>>0]|0;p=v;v=v&1^1;q=u;u=u+1|0;c[x+(v<<3)+4>>2]=u;k=c[x+(v<<3)>>2]|0;p=c[x+(p<<3)+4>>2]|0;dq(k|0,0,q+2|0)|0;o=p>>>0>u>>>0?u:p;l=r+(n&255)|0;if(!(n<<24>>24)){e=0;do e=e+1|0;while(e>>>0<=o>>>0)}else{n=0;do{m=k+n|0;e=a[t+n>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[l>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0];n=n+1|0}while(n>>>0<=o>>>0)}l=p>>>0>q>>>0?q:p;n=0;do{e=n;n=n+1|0;m=k+n|0;e=a[t+e>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[s>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0]}while(n>>>0<=l>>>0);if((u|0)==(f|0))break;else t=k}x=c[h>>2]|0;g=f+1|0;eq(x|0,k|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}function $m(a){a=a|0;var b=0,d=0;b=Wp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=7;a=Wp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=an(2,7,10324)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function an(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Wp(68)|0;if(!(b>>>0<2|d>>>0>32)?(c[f+8>>2]=d,c[f+4>>2]=b,g=1<>2]=g,g=Wp(g<<2)|0,bn(b,d,e,g),c[f>>2]=g,c[f+16>>2]=cn(0,0)|0,c[f+20>>2]=dn(0,0)|0,a[f+24>>0]=0,f|0):0){g=f;return g|0}Xp(f);g=0;return g|0}function bn(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=1<>>0>1?i:1)<<2|0)|0;return}else j=0;do{g=0;h=1;b=0;while(1){k=((fb((e[d+(g<<1)>>1]|0)&j|0)|0)&1|0)!=0;b=(k?h:0)|b;g=g+1|0;if((g|0)==(a|0))break;else h=h<<1}c[f+(j<<2)>>2]=b;j=j+1|0}while(j>>>0>>0);return}function cn(a,b){a=a|0;b=b|0;var d=0;d=Yp(1,20)|0;if(!a)return d|0;c[d+8>>2]=a;c[d+16>>2]=b;return d|0}function dn(b,d){b=b|0;d=d|0;var e=0,f=0;e=Yp(1,20)|0;if(!(a[43545]|0)){f=0;do{a[43546+f>>0]=f<<7|f>>>7|f>>>5&2|f>>>3&4|f>>>1&8|f<<1&16|f<<3&32|f<<5&64;f=f+1|0}while((f|0)!=256);a[43545]=1}if(!b)return e|0;c[e+16>>2]=b;c[e+8>>2]=d;c[e+12>>2]=8;a[e>>0]=a[b>>0]|0;return e|0}function en(a){a=a|0;Xp(c[a+12>>2]|0);fn(c[a>>2]|0);Xp(a);return}function fn(a){a=a|0;gn(a);Xp(a);return}function gn(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();d=e;Xp(c[b>>2]|0);hn(c[b+16>>2]|0);jn(c[b+20>>2]|0);if(!(a[b+24>>0]|0)){i=e;return}f=b+32|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];kn(d);ln(c[b+60>>2]|0);mn(c[b+64>>2]|0);Xp(c[b+28>>2]|0);i=e;return}function hn(a){a=a|0;Xp(a);return}function jn(a){a=a|0;Xp(a);return}function kn(a){a=a|0;Xp(c[a>>2]|0);Xp(c[a+4>>2]|0);Xp(c[a+20>>2]|0);return}function ln(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Xp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Xp(c[d>>2]|0);Xp(c[a+32>>2]|0);Xp(a);return}function mn(a){a=a|0;Xp(c[a+4>>2]|0);Xp(c[a+8>>2]|0);Xp(a);return}function nn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function on(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;pn(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((d>>>0)%((c[a+4>>2]|0)>>>0)|0|0){d=0;return d|0}d=qn(a,d,((d&7|0)!=0&1)+(d>>>3)|0,e,b)|0;return d|0}function qn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();h=m;k=b+24|0;l=b+4|0;if(!(a[k>>0]|0)){p=c[l>>2]|0;o=b+8|0;q=c[o>>2]|0;a[k>>0]=1;c[b+28>>2]=Yp(1<>2]|0);c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];c[n+12>>2]=c[h+12>>2];c[n+16>>2]=c[h+16>>2];c[n+20>>2]=c[h+20>>2];c[b+56>>2]=0;n=b+12|0;k=b+60|0;c[k>>2]=sn(q*5|0,q*15|0,65535/((p*255|0)>>>0)|0,(c[n>>2]|0)>>>1,1<<(c[o>>2]|0)+-1)|0;h=b+64|0;c[h>>2]=tn(c[n>>2]|0)|0}else{h=b+64|0;k=b+60|0}p=(d>>>0)/((c[l>>2]|0)>>>0)|0;q=b+16|0;un(c[q>>2]|0,f,e);vn(c[h>>2]|0);wn(c[k>>2]|0);xn(b,p,g);Bn(b,p,g);In(b,p,g);Jn(c[k>>2]|0,c[q>>2]|0);i=m;return e|0}function rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;i=1<>2]<>2];h=m+(g<<2)|0;f=c[h>>2]|0;if(!f){c[h>>2]=d;c[l+(d<<2)>>2]=g;f=d;d=d+1|0}c[k+(j<<2)>>2]=f;j=j+1|0}while(j>>>0>>0);e=Yp(d,4)|0;Xp(m);c[a>>2]=k;c[a+4>>2]=l;c[a+8>>2]=(1<>2]=b;c[a+16>>2]=d;c[a+20>>2]=e;return}function sn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Yp(1,44)|0;c[g>>2]=a;c[g+4>>2]=b;a=b+a|0;c[g+8>>2]=a;c[g+12>>2]=e;c[g+16>>2]=f;b=Wp(a<<2)|0;c[g+20>>2]=b;if(!a)a=0;else{f=0;do{c[b+(f<<2)>>2]=Yp(e,1)|0;f=f+1|0}while(f>>>0>>0)}c[g+32>>2]=Wp(a)|0;c[g+36>>2]=d;return g|0}function tn(a){a=a|0;var b=0,d=0;b=Yp(1,24)|0;c[b+12>>2]=a;d=Yp(2,a)|0;c[b+4>>2]=d;a=Yp(2,a)|0;c[b+8>>2]=a;c[b+16>>2]=d;c[b+20>>2]=a;return b|0}function un(b,d,e){b=b|0;d=d|0;e=e|0;c[b+8>>2]=d;c[b+16>>2]=e;a[b>>0]=0;c[b+4>>2]=0;c[b+12>>2]=0;return}function vn(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=a+12|0;dq(c[d>>2]|0,0,c[e>>2]<<1|0)|0;b=a+8|0;dq(c[b>>2]|0,0,c[e>>2]<<1|0)|0;c[a>>2]=0;c[a+16>>2]=c[d>>2];c[a+20>>2]=c[b>>2];return}function wn(a){a=a|0;c[a+28>>2]=0;c[a+24>>2]=0;return}function xn(a,f,g){a=a|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;t=a+8|0;if(!((f|0)!=0&(c[t>>2]|0)!=1))return;u=(g|0)!=0;v=a+64|0;w=a+56|0;x=a+4|0;y=a+20|0;z=0;h=0;do{if(!u)h=(yn(c[y>>2]|0,c[x>>2]|0)|0)&255;i=c[v>>2]|0;q=c[i+16>>2]|0;r=c[i+20>>2]|0;p=z;z=z+1|0;s=1<>>1;i=c[(c[a>>2]|0)+(o<<2)>>2]|0;l=c[x>>2]|0;m=g+(_(l,p)|0)|0;if(!(c[w>>2]|0))if(!l)i=0;else{j=i;i=0;k=0;while(1){A=(d[m+k>>0]|0)-(0-(j&1)&255)|0;i=((A|0)<0?0-A|0:A)+(i&65535)|0;k=k+1|0;if((k|0)==(l|0))break;else j=j>>>1}i=i&65535}else i=zn(i,m,l)|0;b[r+(o<<1)>>1]=(e[q+(n<<1)>>1]|0)+(i&65535);o=o+1|0}while(o>>>0>>0);i=c[v>>2]|0}else{j=c[a>>2]|0;k=0;do{A=fb(c[j+(k<<2)>>2]^h|0)|0;b[r+(k<<1)>>1]=(e[q+(k>>>1<<1)>>1]|0)+A;k=k+1|0}while(k>>>0>>0)}An(i)}while(z>>>0>>0?z>>>0<((c[t>>2]|0)+-1|0)>>>0:0);return}function yn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=b+12|0;g=c[k>>2]|0;j=a[b>>0]|0;if(g>>>0>>0){f=b+4|0;i=(c[f>>2]|0)+1|0;c[f>>2]=i;i=a[(c[b+16>>2]|0)+i>>0]|0;a[b>>0]=i;b=e-g|0;c[k>>2]=8;f=b;h=8;b=(j&255&(1<>2]=j;return (d[43546+((i&255&((1<>>j|b)>>0]|0)>>>(8-e|0)&255|0}function zn(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,f=0,g=0;if(!c){b=0;return b|0}else{e=a;a=0;f=0}while(1){g=(d[b+f>>0]|0)-(e&1|0?255:0)|0;a=(_(g,g)|0)+(a&65535)|0;f=f+1|0;if((f|0)==(c|0))break;else e=e>>>1}g=(a&65535)>>>3;return g|0}function An(a){a=a|0;var b=0;b=c[a>>2]|0;c[a+16>>2]=c[a+4+(b<<2)>>2];b=b&1^1;c[a>>2]=b;c[a+20>>2]=c[a+4+(b<<2)>>2];return} +function zb(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;if((i|0)>=(j|0))ba();return b|0}function Ab(){return i|0}function Bb(a){a=a|0;i=a}function Cb(a,b){a=a|0;b=b|0;i=a;j=b}function Db(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Eb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Fb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Gb(a){a=a|0;C=a}function Hb(){return C|0}function Ib(a){a=a|0;var b=0,d=0;if(!a){a=0;return a|0}b=Wp(28)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];d=Uc(0)|0;c[b+20>>2]=d;$c(d,0.0);_c(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1){c[b+24>>2]=xh(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;a=b;return a|0}else{c[b+4>>2]=1;c[b+8>>2]=0;c[b+24>>2]=0;a=b;return a|0}return 0}function Jb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;w=i;i=i+32|0;if((i|0)>=(j|0))ba();q=w+16|0;r=w+8|0;s=w;if(!a){v=0;i=w;return v|0}t=a+4|0;f=c[t>>2]|0;if((d>>>0)%(f>>>0)|0|0){v=0;i=w;return v|0}v=Wa()|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)f=0;else{n=a+24|0;o=u+4|0;p=s+4|0;k=a+20|0;l=r+4|0;a=c[t>>2]|0;m=0;f=0;do{if(!a)a=0;else{h=0;do{a=c[k>>2]|0;c[r>>2]=c[b+(h+m<<2)>>2];g[l>>2]=0.0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];lj(a,q,u+(h<<3)|0);gd(c[k>>2]|0);h=h+1|0;a=c[t>>2]|0}while(h>>>0>>0)}h=c[n>>2]|0;if(!h){h=c[o>>2]|0;c[e+(m<<3)>>2]=c[u>>2];c[e+(m<<3)+4>>2]=h}else{zh(h,u,e+(((m>>>0)/(a>>>0)|0)<<3)|0);a=c[t>>2]|0;h=(m>>>0)/(a>>>0)|0;x=e+(h<<3)|0;h=e+(h<<3)+4|0;$n(s,+g[x>>2],+g[h>>2],+(a>>>0),0.0);a=c[p>>2]|0;c[x>>2]=c[s>>2];c[h>>2]=a}f=f+1|0;a=c[t>>2]|0;m=a+m|0}while(m>>>0>>0)}Ga(v|0);x=f;i=w;return x|0}function Kb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=_(e<<1,d)|0;g=Wa()|0;h=i;i=i+((1*(f<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(f|0)dq(h|0,0,(_(e,d)|0)<<3|0)|0;b=Jb(a,h,f,b)|0;Ga(g|0);i=k;return b|0}function Lb(a){a=a|0;var b=0;if(!a)return;Yc(c[a+20>>2]|0);b=c[a+24>>2]|0;if(b|0)yh(b);Xp(a);return}function Mb(a){a=a|0;var b=0.0,d=0,e=0;e=Wp(40)|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[e+20>>2]=c[a+20>>2];c[e+24>>2]=c[a+24>>2];d=Uc(0)|0;c[e+28>>2]=d;$c(d,0.0);_c(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1)c[e+32>>2]=Ch(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;else{c[e+4>>2]=1;c[e+8>>2]=0;c[e+32>>2]=0}b=+g[a+24>>2];if(b!=0.0){c[e+36>>2]=Th(b)|0;return e|0}else{c[e+36>>2]=0;return e|0}return 0}function Nb(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=_(c[a+4>>2]|0,b)|0;return b|0}function Ob(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=(b>>>0)/((c[a+4>>2]|0)>>>0)|0;return b|0}function Pb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;D=i;i=i+48|0;if((i|0)>=(j|0))ba();p=D+32|0;q=D+24|0;B=D+8|0;r=D+16|0;x=D;if(!a){C=0;i=D;return C|0}y=a+4|0;A=c[y>>2]|0;C=Wa()|0;z=i;i=i+((1*(A<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)a=0;else{A=a+32|0;s=z+4|0;t=q+4|0;u=a+28|0;v=r+4|0;w=a+36|0;l=a+20|0;m=B+4|0;n=x+4|0;o=0;a=0;do{f=c[A>>2]|0;h=c[b+(o<<3)>>2]|0;k=c[b+(o<<3)+4>>2]|0;if(!f){c[z>>2]=h;c[s>>2]=k}else{c[q>>2]=h;c[t>>2]=k;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];Hh(f,p,z)}if(c[y>>2]|0){h=0;do{f=c[u>>2]|0;k=c[z+(h<<3)+4>>2]|0;c[r>>2]=c[z+(h<<3)>>2];c[v>>2]=k;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];fd(f,p,B);f=c[w>>2]|0;if(f|0){k=c[m>>2]|0;c[x>>2]=c[B>>2];c[n>>2]=k;c[p>>2]=c[x>>2];c[p+4>>2]=c[x+4>>2];Rh(f,p,B)}g[e+((_(c[y>>2]|0,o)|0)+h<<2)>>2]=+g[B>>2]*+g[l>>2];a=a+1|0;gd(c[u>>2]|0);h=h+1|0}while(h>>>0<(c[y>>2]|0)>>>0)}o=o+1|0}while((o|0)!=(d|0))}Ga(C|0);C=a;i=D;return C|0}function Qb(a){a=a|0;if(!a){a=0;return a|0}a=_(c[a+4>>2]<<1,c[a+8>>2]|0)|0;return a|0}function Rb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+8>>2]|0;if(!d){b=0;i=k;return b|0}d=d<<1;e=Wa()|0;f=i;i=i+((1*(d<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(d|0){h=0;do{g[f+(h<<3)>>2]=0.0;g[f+(h<<3)+4>>2]=0.0;h=h+1|0}while((h|0)!=(d|0))}b=Pb(a,f,d,b)|0;Ga(e|0);i=k;return b|0}function Sb(a){a=a|0;var b=0;b=c[a+32>>2]|0;if(b|0)Fh(b);b=c[a+36>>2]|0;if(!b)return;Qh(b);return}function Tb(a){a=a|0;var b=0;if(!a)return;Yc(c[a+28>>2]|0);b=c[a+32>>2]|0;if(b|0)Dh(b);b=c[a+36>>2]|0;if(b|0)Ph(b);Xp(a);return}function Ub(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b>>2]|0;g=Wp(e)|0;Lk(e,g);e=(c[b>>2]|0)>>>1;d=e;while(1)if(!(a[g+d>>0]|0))d=d+-1|0;else break;while(1){f=g+e|0;if(!(a[f>>0]|0))e=e+1|0;else break}e=c[b+16>>2]|0;if(e|0){e=e>>>0>1?e:1;dq(g+(d+1-e)|0,0,e|0)|0}d=c[b+12>>2]|0;if(!d)return g|0;dq(f|0,0,(d>>>0>1?d:1)|0)|0;return g|0}function Vb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=d>>>0>>0?d:b;fq(c|0,a|0,b<<2|0)|0;return b|0}function Wb(a){a=a|0;return c[a+120>>2]|0}function Xb(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();k=n;m=Wp(388)|0;e=m;f=b;h=e+84|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[m+56>>2]|0){case 0:{e=Ub(b)|0;f=b+4|0;h=jl(c[b>>2]|0,c[f>>2]|0,c[b+8>>2]|0,e,1,m)|0;ul(h,0);if(a[b+80>>0]|0)Ll(h);xl(h,1);yl(h,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];tl(h,k)}l=(c[f>>2]|0)+(c[b>>2]|0)|0;c[m+92>>2]=Wp(l<<3)|0;c[m+96>>2]=l;Xp(e);c[m+84>>2]=h;break}case 1:{e=Ej(1,m)|0;Hj(e,0);if(a[b+80>>0]|0)fk(e);Kj(e,1);Lj(e,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];Gj(e,k)|0}c[m+92>>2]=Wp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}case 2:{e=vk(1,m)|0;wk(e,0);if(a[b+80>>0]|0)Hk(e);c[m+92>>2]=Wp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}default:{}}e=Ib(b+20|0)|0;f=m+88|0;c[f>>2]=e;c[m+100>>2]=0;h=m+104|0;g[h>>2]=1.0;l=m+112|0;c[l>>2]=0;k=m+108|0;c[k>>2]=0;if(d!=44100.0){d=44100.0/d;c[k>>2]=th(d,c[b+40>>2]|0,+g[b+44>>2],+g[b+48>>2],c[b+52>>2]|0)|0;g[h>>2]=d;e=c[f>>2]|0}c[l>>2]=Wp(_(c[m+96>>2]<<2,c[e+4>>2]|0)|0)|0;c[m+116>>2]=0;c[m+120>>2]=0;c[m+124>>2]=sc(65536)|0;c[m+132>>2]=0;c[m+128>>2]=0;a[m+384>>0]=0;c[m+316>>2]=0;c[m+348>>2]=0;c[m+320>>2]=0;c[m+352>>2]=0;c[m+324>>2]=0;c[m+356>>2]=0;c[m+328>>2]=0;c[m+360>>2]=0;c[m+332>>2]=0;c[m+364>>2]=0;c[m+336>>2]=0;c[m+368>>2]=0;c[m+340>>2]=0;c[m+372>>2]=0;c[m+344>>2]=0;c[m+376>>2]=0;c[m+136>>2]=0;c[m+140>>2]=0;c[m+148>>2]=0;i=n;return m|0}function Yb(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;if((i|0)>=(j|0))ba();o=s+48|0;q=s+44|0;p=s+40|0;r=s;if(!d){f=1;i=s;return f|0}if(!k){f=0;i=s;return f|0}if(a[k+384>>0]|0){l=r;b=h;d=l+40|0;do{c[l>>2]=c[b>>2];l=l+4|0;b=b+4|0}while((l|0)<(d|0));c[o>>2]=g;m=k+380|0;n=c[m>>2]|0;if(n>>>0<8){h=k+316+(n<<2)|0;b=k+348+(n<<2)|0;d=c[r+16>>2]|0;if((c[b>>2]|0)>>>0>>0){c[h>>2]=Zp(c[h>>2]|0,d<<3)|0;c[b>>2]=d}if(!d)b=c[h>>2]|0;else{l=c[r+12>>2]|0;b=c[h>>2]|0;h=0;do{c[b+(h<<3)>>2]=c[l+(h<<3)>>2];c[b+(h<<3)+4>>2]=c[l+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(d|0))}c[k+156+(n*20|0)>>2]=b;c[k+156+(n*20|0)+4>>2]=d;c[k+156+(n*20|0)+8>>2]=c[r>>2];c[k+156+(n*20|0)+12>>2]=c[r+4>>2];a[k+156+(n*20|0)+16>>0]=(g|0)!=0&1;c[m>>2]=(c[m>>2]|0)+1}else d=c[r+16>>2]|0;b=d<<3;n=b+20|0;h=k+136|0;Cc(c[h>>2]|0);if((vc(c[h>>2]|0,n)|0)==(n|0)){c[q>>2]=b+16;wc(c[h>>2]|0,q,4)|0;c[p>>2]=d;wc(c[h>>2]|0,p,4)|0;wc(c[h>>2]|0,c[r+12>>2]|0,b)|0;wc(c[h>>2]|0,r+4|0,4)|0;wc(c[h>>2]|0,r,4)|0;wc(c[h>>2]|0,o,4)|0;xc(c[h>>2]|0)|0;Dc(c[h>>2]|0)}}if(!g){f=k+120|0;c[f>>2]=(c[f>>2]|0)+1;f=1;i=s;return f|0}l=f+4|0;b=k+132|0;h=k+128|0;if(l>>>0>(c[b>>2]|0)>>>0){g=Zp(c[h>>2]|0,l)|0;c[h>>2]=g;c[b>>2]=l;d=h;b=g}else{d=h;b=c[h>>2]|0}a[b>>0]=f;a[b+1>>0]=f>>8;a[b+2>>0]=f>>16;a[b+3>>0]=f>>24;eq((c[d>>2]|0)+4|0,e|0,f|0)|0;f=k+124|0;Cc(c[f>>2]|0);uc(c[f>>2]|0,c[d>>2]|0,l)|0;Dc(c[f>>2]|0);f=0;i=s;return f|0}function Zb(b){b=b|0;var d=0,e=0;a[b+384>>0]=1;d=b+316|0;e=d+68|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[b+136>>2]=sc(65536)|0;c[b+140>>2]=0;c[b+144>>2]=0;e=Wp(20)|0;c[b+148>>2]=e;c[e>>2]=0;c[b+152>>2]=0;return}function _b(b){b=b|0;var d=0,e=0,f=0;a[b+384>>0]=0;d=b+316|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+348>>2]=0}d=b+320|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+352>>2]=0}d=b+324|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+356>>2]=0}d=b+328|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+360>>2]=0}d=b+332|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+364>>2]=0}d=b+336|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+368>>2]=0}d=b+340|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+372>>2]=0}d=b+344|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+376>>2]=0}c[b+380>>2]=0;e=b+136|0;d=c[e>>2]|0;if(d|0){tc(d);c[e>>2]=0}d=b+140|0;e=c[d>>2]|0;if(e|0){Xp(e);c[d>>2]=0;c[b+144>>2]=0}f=b+148|0;d=c[f>>2]|0;if(!d)return;e=c[d>>2]|0;if(e){Xp(e);d=c[f>>2]|0}Xp(d);c[f>>2]=0;c[b+152>>2]=0;return}function $b(a,b){a=a|0;b=b|0;c[b>>2]=c[a+380>>2];return a+156|0}function ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=a+124|0;Ac(c[e>>2]|0);a=yc(c[e>>2]|0,f,4)|0;a:do if(!a)a=0;else{if((a|0)>=0){a=c[f>>2]|0;a=a>>>0>>0?a:d;b=(yc(c[e>>2]|0,b,a)|0)<0;d=c[e>>2]|0;if(b){Bc(d);rc(9);a=-1;break}else{zc(d,(c[f>>2]|0)-a|0);Bc(c[e>>2]|0);break}}Bc(c[e>>2]|0);switch(a|0){case -1:{rc(7);a=-1;break a}case -2:{rc(8);a=-1;break a}default:{rc(9);a=-1;break a}}}while(0);i=g;return a|0}function bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;A=i;i=i+80|0;if((i|0)>=(j|0))ba();z=A+16|0;y=A+8|0;x=A;v=A+24|0;w=A+20|0;if(!b){i=A;return}t=b+88|0;u=_(c[(c[t>>2]|0)+4>>2]|0,c[b+96>>2]|0)|0;if(a[b+384>>0]|0)c[b+380>>2]=0;if(!e){i=A;return}l=b+108|0;m=b+116|0;n=b+112|0;o=b+92|0;p=b+56|0;q=b+84|0;r=b+80|0;s=b+100|0;h=b+84|0;k=0;do{b=c[l>>2]|0;if(!b){b=c[m>>2]|0;f=b+(e-k)|0;f=f>>>0>>0?f:u;fq((c[n>>2]|0)+(b<<2)|0,d+(k<<2)|0,f-b<<2|0)|0;b=f-(c[m>>2]|0)|0}else{f=c[m>>2]|0;vh(b,d+(k<<2)|0,e-k|0,v,(c[n>>2]|0)+(f<<2)|0,u-f|0,w)|0;b=c[v>>2]|0;f=(c[m>>2]|0)+(c[w>>2]|0)|0}k=b+k|0;B=c[t>>2]|0;g=(f>>>0)%((c[B+4>>2]|0)>>>0)|0;b=f-g|0;f=Jb(B,c[n>>2]|0,b,c[o>>2]|0)|0;if(g|0){B=c[n>>2]|0;fq(B|0,B+(b<<2)|0,g<<2|0)|0}c[m>>2]=g;switch(c[p>>2]|0){case 0:{zl(c[q>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[x>>2]=c[s>>2];No(v,10350,x)|0;Nl(c[q>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 1:{Mj(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[y>>2]=c[s>>2];No(v,10350,y)|0;gk(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 2:{Gk(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[z>>2]=c[s>>2];No(v,10350,z)|0;Ik(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}default:{}}}while(k>>>0>>0);i=A;return}function cc(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;if(!a){i=m;return}d=c[a+108>>2]|0;if(!d){b=a+116|0;l=0}else{o=c[a+40>>2]|0;k=Yp(o,4)|0;f=a+88|0;n=_(c[(c[f>>2]|0)+4>>2]|0,c[a+96>>2]|0)|0;h=a+112|0;b=a+116|0;e=c[b>>2]|0;vh(d,k,o,m+4|0,(c[h>>2]|0)+(e<<2)|0,n-e|0,l)|0;d=(c[l>>2]|0)+(c[b>>2]|0)|0;c[l>>2]=d;f=c[f>>2]|0;e=(d>>>0)%((c[f+4>>2]|0)>>>0)|0;if(!e)e=0;else{d=d-e|0;c[l>>2]=d}d=Jb(f,c[h>>2]|0,d,c[a+92>>2]|0)|0;if(e|0){o=c[h>>2]|0;fq(o|0,o+(c[l>>2]<<2)|0,e<<2|0)|0}c[b>>2]=e;Xp(k);l=d}e=c[b>>2]|0;k=a+88|0;if(!e){h=a+92|0;b=l}else{b=c[k>>2]|0;d=c[b+4>>2]|0;f=a+112|0;if((d|0)==(e|0))d=e;else{dq(c[f>>2]|0,0,d-e<<2|0)|0;d=c[k>>2]|0;b=d;d=c[d+4>>2]|0}o=a+92|0;h=o;b=(Jb(b,c[f>>2]|0,d,(c[o>>2]|0)+(l<<3)|0)|0)+l|0}b=(Kb(c[k>>2]|0,(c[h>>2]|0)+(b<<3)|0)|0)+b|0;switch(c[a+56>>2]|0){case 0:{zl(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}case 1:{d=0;e=b;while(1){o=d+e|0;n=c[h>>2]|0;g[n+(o<<3)>>2]=0.0;g[n+(o<<3)+4>>2]=0.0;d=d+1|0;if((d|0)==60)break;else e=e+1|0}Mj(c[a+84>>2]|0,c[h>>2]|0,b+60|0);i=m;return}case 2:{Gk(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}default:{i=m;return}}}function dc(a){a=a|0;var b=0,d=0,e=0;if(!a)return;switch(c[a+56>>2]|0){case 0:{vl(c[a+84>>2]|0);break}case 1:{Jj(c[a+84>>2]|0);break}case 2:{xk(c[a+84>>2]|0);break}default:{}}b=c[a+108>>2]|0;if(b|0)uh(b);b=c[a+112>>2]|0;if(b|0)Xp(b);b=c[a+316>>2]|0;if(b|0)Xp(b);b=c[a+320>>2]|0;if(b|0)Xp(b);b=c[a+324>>2]|0;if(b|0)Xp(b);b=c[a+328>>2]|0;if(b|0)Xp(b);b=c[a+332>>2]|0;if(b|0)Xp(b);b=c[a+336>>2]|0;if(b|0)Xp(b);b=c[a+340>>2]|0;if(b|0)Xp(b);b=c[a+344>>2]|0;if(b|0)Xp(b);tc(c[a+124>>2]|0);b=c[a+136>>2]|0;if(b|0)tc(b);b=c[a+140>>2]|0;if(b|0)Xp(b);d=a+148|0;b=c[d>>2]|0;if(b|0){e=c[b>>2]|0;if(e){Xp(e);b=c[d>>2]|0}Xp(b)}b=c[a+128>>2]|0;if(b|0)Xp(b);Lb(c[a+88>>2]|0);Xp(c[a+92>>2]|0);Xp(a);return}function ec(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+16|0;l=o;m=b+20|0;p=+g[b+40>>2];if(p<0.0|p>.5){rc(2);b=0;i=o;return b|0}n=Wp(176)|0;e=n;f=b;h=e+108|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[n+64>>2]|0){case 0:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];f=Ub(b)|0;h=b+4|0;e=Kk(c[b>>2]|0,c[h>>2]|0,c[b+8>>2]|0,f,k)|0;Rk(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];Qk(e,l)}k=(c[h>>2]|0)+(c[b>>2]|0)|0;c[n+120>>2]=Wp(k<<3)|0;l=n+124|0;c[l>>2]=k;Xp(f);c[n+108>>2]=e;e=l;break}case 1:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];e=qj(k)|0;vj(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];uj(e,l)|0}c[n+120>>2]=0;l=n+124|0;c[l>>2]=0;c[n+108>>2]=e;c[n+112>>2]=0;e=l;break}case 2:{l=hk()|0;kk(l,0);c[n+120>>2]=0;e=n+124|0;c[e>>2]=0;c[n+108>>2]=l;c[n+112>>2]=2;break}default:e=n+124|0}m=Mb(m)|0;f=n+116|0;c[f>>2]=m;e=Nb(m,c[e>>2]|0)|0;f=Qb(c[f>>2]|0)|0;f=e>>>0>f>>>0?e:f;c[n+132>>2]=f;c[n+128>>2]=Wp(f<<2)|0;f=n+136|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;a[n+152>>0]=1;a[n+153>>0]=0;a[n+154>>0]=0;f=n+156|0;g[f>>2]=1.0;e=n+160|0;c[e>>2]=0;if(d!=44100.0){p=d/44100.0;c[e>>2]=th(p,c[b+48>>2]|0,+g[b+52>>2],+g[b+56>>2],c[b+60>>2]|0)|0;g[f>>2]=p}c[n+164>>2]=sc(65536)|0;b=c[n+104>>2]|0;c[n+168>>2]=Wp(b+4|0)|0;c[n+172>>2]=Wp(b)|0;b=n;i=o;return b|0}function fc(a){a=a|0;return c[a+104>>2]|0}function gc(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0;a[b+154>>0]=1;j=+g[b+156>>2];d=~~(+Z(+(+(d>>>0)/j))+ +Z(+j))>>>0;d=d-(Qb(c[b+116>>2]|0)|0)|0;if(c[b+160>>2]|0)d=d-(c[b+48>>2]|0)|0;i=b+104|0;h=(hc(b,c[i>>2]|0)|0)>>>0>d>>>0;f=c[i>>2]|0;if(!h){b=f;return b|0}e=f>>>1;if(f>>>0>1){h=0;do{k=(hc(b,e)|0)>>>0>d>>>0;f=k?e:f;h=k?h:e;k=f-h|0;e=(k>>>1)+h|0}while(k>>>0>1);d=e}else d=e;c[i>>2]=d;k=d;return k|0}function hc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;e=Yp(b,1)|0;switch(c[a+64>>2]|0){case 0:{g=a+108|0;_k(c[g>>2]|0,d,e,b);b=Zk(c[g>>2]|0)|0;b=_(c[a+124>>2]|0,b)|0;Vk(c[g>>2]|0);break}case 1:{g=a+108|0;Bj(c[g>>2]|0,d,e,b);b=Aj(c[g>>2]|0)|0;xj(c[g>>2]|0);break}case 2:{g=a+108|0;qk(c[g>>2]|0,d,e,b,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0);b=pk(c[g>>2]|0)|0;lk(c[g>>2]|0);break}default:b=0}Xp(e);g=Nb(c[a+116>>2]|0,b)|0;i=f;return g|0}function ic(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((c[b+104>>2]|0)>>>0>>0){rc(6);e=-1;return e|0}f=b+168|0;g=c[f>>2]|0;a[g>>0]=e;a[g+1>>0]=e>>8;a[g+2>>0]=e>>16;a[g+3>>0]=e>>24;eq((c[f>>2]|0)+4|0,d|0,e|0)|0;b=b+164|0;Cc(c[b>>2]|0);d=uc(c[b>>2]|0,c[f>>2]|0,e+4|0)|0;Dc(c[b>>2]|0);if(!d){g=0;return g|0}if((d|0)>=0){g=d+-4|0;return g|0}switch(d|0){case -1:{rc(7);g=-1;return g|0}case -2:{rc(8);g=-1;return g|0}default:{rc(9);g=-1;return g|0}}return 0}function jc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.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;Q=i;i=i+16|0;if((i|0)>=(j|0))ba();O=Q+4|0;P=Q;if(!b){b=0;i=Q;return b|0}if(e|0){B=b+136|0;H=b+140|0;I=b+64|0;J=b+154|0;K=b+153|0;L=b+164|0;M=b+172|0;N=b+152|0;r=b+108|0;s=b+108|0;t=b+112|0;u=b+68|0;v=b+72|0;w=b+76|0;x=b+156|0;y=b+116|0;z=b+132|0;A=b+128|0;C=b+120|0;D=b+4|0;E=b+124|0;F=b+160|0;G=b+48|0;h=0;f=0;a:while(1){k=c[B>>2]|0;b:while(1){o=e-f|0;n=(f|0)>0;p=+(o>>>0);c:do if(!k)while(1){c[H>>2]=0;if(h){q=49;break a}switch(c[I>>2]|0){case 0:{k=Yk(c[r>>2]|0)|0;q=15;break}case 1:{k=zj(c[s>>2]|0)|0;q=15;break}case 2:{k=ok(c[r>>2]|0)|0;q=15;break}default:q=16}if((q|0)==15?(q=0,(k|0)==0):0)q=16;if((q|0)==16){q=0;l=n&(a[J>>0]|0)!=0;if(a[K>>0]|0){o=0;n=l;break b}Ac(c[L>>2]|0);k=yc(c[L>>2]|0,O,4)|0;m=c[L>>2]|0;if((k|0)<1){h=m;q=18;break b}yc(m,c[M>>2]|0,c[O>>2]|0)|0;Bc(c[L>>2]|0);switch(c[I>>2]|0){case 0:{_k(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0);break}case 1:{Bj(c[s>>2]|0,P,c[M>>2]|0,c[O>>2]|0);c[t>>2]=Aj(c[s>>2]|0)|0;break}case 2:{lk(c[r>>2]|0);qk(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0);break}default:{}}a[N>>0]=0;if(l){o=1;n=1;break b}}q=~~+Z(+(p/+g[x>>2]))>>>0;k=Ob(c[y>>2]|0,q)|0;k=(((q>>>0)%((c[(c[y>>2]|0)+4>>2]|0)>>>0)|0|0)!=0&1)+k|0;d:do switch(c[I>>2]|0){case 0:{k=(c[D>>2]|0)+(c[b>>2]|0)|0;al(c[r>>2]|0,c[C>>2]|0,k)|0;break}case 1:{q=c[t>>2]|0;k=q>>>0>>0?q:k;if(k>>>0>(c[E>>2]|0)>>>0){l=Zp(c[C>>2]|0,k<<3)|0;c[C>>2]=l;c[E>>2]=k}else l=c[C>>2]|0;Cj(c[s>>2]|0,l,k)|0;c[t>>2]=(c[t>>2]|0)-k;break}case 2:{q=c[t>>2]|0;l=(k>>>0)%(q>>>0)|0;l=((l|0)==0?0:q-l|0)+k|0;if(l>>>0>(c[E>>2]|0)>>>0){c[C>>2]=Zp(c[C>>2]|0,l<<3)|0;c[E>>2]=l}if(!l)k=0;else{k=0;do{if(rk(c[r>>2]|0,(c[C>>2]|0)+(k<<3)|0)|0)break d;k=(c[t>>2]|0)+k|0}while(k>>>0>>0)}break}default:k=0}while(0);l=Nb(c[y>>2]|0,k)|0;if(l>>>0>(c[z>>2]|0)>>>0){q=Zp(c[A>>2]|0,l<<2)|0;c[A>>2]=q;c[z>>2]=l;l=q}else l=c[A>>2]|0;k=Pb(c[y>>2]|0,c[C>>2]|0,k,l)|0;c[B>>2]=k;a[N>>0]=0;if(k|0)break c}while(0);l=c[F>>2]|0;if(!l){l=Vb((c[A>>2]|0)+(c[H>>2]<<2)|0,k,d,o)|0;c[H>>2]=(c[H>>2]|0)+l;k=(c[B>>2]|0)-l|0;c[B>>2]=k}else{vh(l,(c[A>>2]|0)+(c[H>>2]<<2)|0,k,O,d,o,P)|0;l=c[P>>2]|0;k=c[O>>2]|0;c[H>>2]=(c[H>>2]|0)+k;k=(c[B>>2]|0)-k|0;c[B>>2]=k}d=d+(l<<2)|0;f=l+f|0;if(f>>>0>=e>>>0){q=48;break a}}if((q|0)==18){q=0;Bc(h);if(!k)a[K>>0]=1;o=0;n=l}if(a[N>>0]|0){e=f;break}m=Rb(c[y>>2]|0,c[A>>2]|0)|0;c[B>>2]=m;if(c[F>>2]|0){h=c[G>>2]|0;if(!h)h=0;else{k=c[A>>2]|0;l=0;do{g[k+(m+l<<2)>>2]=0.0;l=l+1|0}while(l>>>0>>0)}c[B>>2]=m+h}Sb(c[y>>2]|0);a[N>>0]=1;h=n&o;if(f>>>0>=e>>>0){q=48;break}}if((q|0)==48)if(h)q=49;else e=f;if((q|0)==49)if((f|0)!=(e|0))dq(d|0,0,e-f<<2|0)|0;if(e|0){b=e;i=Q;return b|0}}if(a[b+153>>0]|0){b=0;i=Q;return b|0}rc(7);b=-1;i=Q;return b|0}function kc(a){a=a|0;var b=0;if(!a)return;switch(c[a+64>>2]|0){case 0:{Wk(c[a+108>>2]|0);break}case 1:{yj(c[a+108>>2]|0);break}case 2:{mk(c[a+108>>2]|0);break}default:{}}b=c[a+160>>2]|0;if(b|0)uh(b);Tb(c[a+116>>2]|0);Xp(c[a+120>>2]|0);Xp(c[a+128>>2]|0);tc(c[a+164>>2]|0);Xp(c[a+168>>2]|0);Xp(c[a+172>>2]|0);Xp(a);return}function lc(b,d){b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0;f=jm(b,d)|0;if(!f){rc(4);i=0;return i|0}i=Yp(1,108)|0;if(!i){rc(1);i=0;return i|0}d=jm(f,10367)|0;if(d|0)c[i+68>>2]=Be(pm(d)|0)|0;d=jm(f,10383)|0;if(d|0)c[i+72>>2]=Ke(pm(d)|0)|0;d=jm(f,10400)|0;if(d|0)c[i+76>>2]=Ke(pm(d)|0)|0;d=jm(f,10417)|0;do if(d|0){d=pm(d)|0;b=i+64|0;if(!(cp(d,10428)|0)){c[b>>2]=2;break}else{c[b>>2]=1;c[i+80>>2]=Pl(d)|0;break}}while(0);b=jm(f,10433)|0;if(b|0){a[i+84>>0]=1;d=jm(b,10367)|0;if(d|0)c[i+88>>2]=Be(pm(d)|0)|0;d=jm(b,10383)|0;if(d|0)c[i+92>>2]=Ke(pm(d)|0)|0;d=jm(b,10400)|0;if(d|0)c[i+96>>2]=Ke(pm(d)|0)|0;d=jm(b,10417)|0;if(d|0)c[i+100>>2]=Pl(pm(d)|0)|0}d=jm(f,10440)|0;if(d|0){b=rm(d)|0;c[i+104>>2]=b}b=jm(f,10453)|0;if(b|0){d=i+64|0;if((c[d>>2]|0)==2){Xp(i);rc(5);i=0;return i|0}c[d>>2]=0;d=jm(b,10458)|0;if(d|0){d=rm(d)|0;c[i>>2]=d}d=jm(b,10474)|0;if(d|0){d=rm(d)|0;c[i+4>>2]=d}d=jm(b,10495)|0;if(d|0){d=rm(d)|0;c[i+8>>2]=d}d=jm(b,10508)|0;if(d|0){d=rm(d)|0;c[i+12>>2]=d}d=jm(b,10518)|0;if(d|0){b=rm(d)|0;c[i+16>>2]=b}}d=jm(f,10529)|0;do if(d|0){b=jm(d,10540)|0;if(b|0)g[i+36>>2]=+tm(b)/44100.0*3.141592653589793*2.0;d=jm(d,10557)|0;if(d|0){e=+tm(d);if(!(e<0.0|e>.5)){g[i+40>>2]=e;break}Xp(i);rc(5);i=0;return i|0}}while(0);b=jm(f,10562)|0;if(b){d=jm(b,10576)|0;if(!d)c[i+20>>2]=1;else{d=pm(d)|0;j=(cp(d,10428)|0)==0;c[i+20>>2]=Uh(j?28511:d)|0}d=jm(b,10582)|0;if(d|0){j=rm(d)|0;c[i+24>>2]=j}d=jm(b,10601)|0;if(d|0){j=rm(d)|0;c[i+28>>2]=j}d=jm(b,10614)|0;if(d|0)g[i+32>>2]=+tm(d)}else c[i+24>>2]=1;d=jm(f,10631)|0;if(d|0?(h=jm(d,10647)|0,h|0):0)g[i+44>>2]=+tm(h);b=jm(f,10663)|0;if(!b){j=i;return j|0}d=jm(b,10673)|0;if(d|0){j=rm(d)|0;c[i+48>>2]=j}d=jm(b,10679)|0;if(d|0)g[i+52>>2]=+tm(d);d=jm(b,10689)|0;if(d|0)g[i+56>>2]=+tm(d);d=jm(b,10701)|0;if(!d){j=i;return j|0}c[i+60>>2]=~~+tm(d)>>>0;j=i;return j|0}function mc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Ql(a,0,f)|0;if(e){a=lc(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)lm(e)}else{rc(3);a=0}i=f;return a|0}function nc(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;f=jm(b,d)|0;if(!f){rc(4);h=0;return h|0}h=Yp(1,84)|0;if(!h){rc(1);h=0;return h|0}d=jm(f,10417)|0;if(d|0){b=(cp(pm(d)|0,10428)|0)==0;c[h+56>>2]=b?2:1}b=jm(f,10433)|0;if(b|0){a[h+60>>0]=1;d=jm(b,10367)|0;if(d|0)c[h+64>>2]=Be(pm(d)|0)|0;d=jm(b,10383)|0;if(d|0)c[h+68>>2]=Ke(pm(d)|0)|0;d=jm(b,10400)|0;if(d|0)c[h+72>>2]=Ke(pm(d)|0)|0;d=jm(b,10417)|0;if(d|0)c[h+76>>2]=Pl(pm(d)|0)|0}b=jm(f,10453)|0;if(b|0){d=h+56|0;if((c[d>>2]|0)==2){Xp(h);rc(5);h=0;return h|0}c[d>>2]=0;d=jm(b,10458)|0;if(d|0){d=rm(d)|0;c[h>>2]=d}d=jm(b,10474)|0;if(d|0){d=rm(d)|0;c[h+4>>2]=d}d=jm(b,10495)|0;if(d|0){d=rm(d)|0;c[h+8>>2]=d}d=jm(b,10508)|0;if(d|0){d=rm(d)|0;c[h+12>>2]=d}d=jm(b,10518)|0;if(d|0){b=rm(d)|0;c[h+16>>2]=b}}d=jm(f,10529)|0;if(d|0?(e=jm(d,10540)|0,e|0):0)g[h+36>>2]=+tm(e)/44100.0*3.141592653589793*2.0;b=jm(f,10562)|0;if(b){d=jm(b,10576)|0;if(!d)c[h+20>>2]=1;else{e=pm(d)|0;d=(cp(e,10428)|0)==0;c[h+20>>2]=Uh(d?28518:e)|0}d=jm(b,10582)|0;if(d|0){e=rm(d)|0;c[h+24>>2]=e}d=jm(b,10601)|0;if(d|0){e=rm(d)|0;c[h+28>>2]=e}d=jm(b,10614)|0;if(d|0)g[h+32>>2]=+tm(d)}else c[h+24>>2]=1;b=jm(f,10663)|0;if(!b)return h|0;d=jm(b,10673)|0;if(d|0){f=rm(d)|0;c[h+40>>2]=f}d=jm(b,10679)|0;if(d|0)g[h+44>>2]=+tm(d);d=jm(b,10689)|0;if(d|0)g[h+48>>2]=+tm(d);d=jm(b,10701)|0;if(!d)return h|0;c[h+52>>2]=~~+tm(d)>>>0;return h|0}function oc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Ql(a,0,f)|0;if(e){a=nc(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)lm(e)}else{rc(3);a=0}i=f;return a|0}function pc(){Aa(42852,2)|0;return}function qc(a){a=a|0;Xp(a);return}function rc(a){a=a|0;var b=0;Va(42848,1)|0;b=Pa(c[10713]|0)|0;if(b|0){c[b>>2]=a;return}b=Wp(4)|0;_a(c[10713]|0,b|0)|0;c[b>>2]=a;return}function sc(b){b=b|0;var d=0;d=Wp(68)|0;c[d>>2]=b;b=Wp(b)|0;c[d+4>>2]=b;c[d+8>>2]=b;c[d+12>>2]=b;kb(d+16|0,0)|0;b=Wp(60)|0;a[b>>0]=0;Ha(b+12|0,0)|0;c[d+56>>2]=b;b=Wp(60)|0;a[b>>0]=0;Ha(b+12|0,0)|0;c[d+60>>2]=b;a[d+64>>0]=0;a[d+52>>0]=0;c[d+44>>2]=0;return d|0}function tc(a){a=a|0;Ja((c[a+56>>2]|0)+12|0)|0;Ja((c[a+60>>2]|0)+12|0)|0;Ta(a+16|0)|0;Xp(c[a+4>>2]|0);Xp(a);return}function uc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;f=c[q>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){n=0;o=0;break}ib(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[g>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);if(a[b+52>>0]|0){d=-3;i=t;return d|0}l=b+64|0;p=b+8|0;s=b+12|0;m=b+16|0;k=r+4|0;a:do if(!h){if(a[l>>0]|0){d=0;i=t;return d|0}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;g=h;if((f|0)==(h|0))f=c[b>>2]|0;else f=f-g|0;if((f+-1|0)>>>0>>0){d=-1;i=t;return d|0}else f=g}else{b:do if(!(n|o)){while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=za(g|0,m|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}else{while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=cb(g|0,m|0,r|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}while(0);d=(c[(co()|0)>>2]|0)==110;d=d?-2:-5;i=t;return d|0}while(0);g=b+4|0;q=c[b>>2]|0;r=(c[g>>2]|0)+q|0;f=(r>>>0>>0?r+q|0:r)-f|0;f=f>>>0>e>>>0?e:f;eq(h|0,d|0,f|0)|0;if(f>>>0>>0)eq(c[g>>2]|0,d+f|0,e-f|0)|0;r=h+e|0;d=c[b>>2]|0;c[s>>2]=r>>>0<((c[g>>2]|0)+d|0)>>>0?r:r+(0-d)|0;Ra((c[b+56>>2]|0)+12|0)|0;d=e;i=t;return d|0}function vc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;e=c[q>>2]|0;g=(a[e>>0]|0)!=0;do if(g){f=e+4|0;e=e+8|0;if((c[f>>2]|0)==0?(c[e>>2]|0)==0:0){n=0;o=0;break}ib(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[e>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[f>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);s=b+52|0;if(a[s>>0]|0){b=-3;i=t;return b|0}k=b+64|0;p=b+8|0;l=b+12|0;m=b+16|0;h=r+4|0;a:do if(!g){if(a[k>>0]|0){b=0;i=t;return b|0}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>>0){b=-1;i=t;return b|0}}else{b:do if(!(n|o)){while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=za(f|0,m|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}else{while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=cb(f|0,m|0,r|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}while(0);b=(c[(co()|0)>>2]|0)==110;b=b?-2:-5;i=t;return b|0}while(0);c[b+44>>2]=d;c[b+48>>2]=e;a[s>>0]=1;b=d;i=t;return b|0}function wc(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;if(a[b+64>>0]|0){d=0;return d|0}g=b+44|0;if((c[g>>2]|0)>>>0>>0){d=-4;return d|0}h=b+48|0;j=c[h>>2]|0;i=b+4|0;k=c[b>>2]|0;f=(c[i>>2]|0)+k|0;f=(f>>>0>>0?f+k|0:f)-j|0;f=f>>>0>e>>>0?e:f;eq(j|0,d|0,f|0)|0;if(f>>>0>>0)eq(c[i>>2]|0,d+f|0,e-f|0)|0;j=(c[h>>2]|0)+e|0;k=c[b>>2]|0;c[h>>2]=j>>>0<((c[i>>2]|0)+k|0)>>>0?j:j+(0-k)|0;c[g>>2]=(c[g>>2]|0)-e;k=e;return k|0}function xc(b){b=b|0;var d=0;if(a[b+64>>0]|0){b=0;return b|0}d=b+52|0;if(!(a[d>>0]|0)){b=-4;return b|0}if(c[b+44>>2]|0){b=-4;return b|0}c[b+12>>2]=c[b+48>>2];a[d>>0]=0;Ra((c[b+56>>2]|0)+12|0)|0;b=0;return b|0}function yc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;x=i;i=i+16|0;if((i|0)>=(j|0))ba();t=x;s=b+56|0;f=c[s>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){o=0;p=0;break}ib(t|0,0)|0;p=((c[t+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;w=(p|0)>1e9;o=(c[t>>2]|0)+(c[g>>2]|0)+(w&1)|0;p=w?p+-1e9|0:p}else{o=0;p=0}while(0);w=b+8|0;q=b+12|0;v=b+64|0;n=b+16|0;m=t+4|0;a:do if(h)if(!(o|p)){b:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){k=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=za(g|0,n|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{k=-2;break b}default:{r=-5;u=30;break b}}}if((u|0)==30){i=x;return r|0}d=k;i=x;return d|0}else{c:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){l=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=cb(g|0,n|0,t|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{l=-2;break c}default:{r=-5;u=30;break c}}}if((u|0)==30){i=x;return r|0}d=l;i=x;return d|0}else{h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>>0){d=(a[v>>0]|0)+-1<<24>>24<<24>>24;i=x;return d|0}}while(0);g=b+4|0;u=c[b>>2]|0;v=(c[g>>2]|0)+u|0;f=(v>>>0>>0?v+u|0:v)-f|0;f=f>>>0>e>>>0?e:f;eq(d|0,h|0,f|0)|0;if(f>>>0>>0)eq(d+f|0,c[g>>2]|0,e-f|0)|0;v=h+e|0;d=c[b>>2]|0;c[w>>2]=v>>>0<((c[g>>2]|0)+d|0)>>>0?v:v+(0-d)|0;Ra((c[b+60>>2]|0)+12|0)|0;d=e;i=x;return d|0}function zc(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=(c[d>>2]|0)+b|0;b=c[a>>2]|0;c[d>>2]=e>>>0<((c[a+4>>2]|0)+b|0)>>>0?e:e+(0-b)|0;return}function Ac(a){a=a|0;hb(a+16|0)|0;return}function Bc(a){a=a|0;Ua(a+16|0)|0;return}function Cc(a){a=a|0;hb(a+16|0)|0;return}function Dc(a){a=a|0;Ua(a+16|0)|0;return}function Ec(a){a=a|0;var b=0,d=0;b=Wp(12)|0;c[b+4>>2]=a;a=a<<2;d=Wp(a)|0;c[b>>2]=d;c[b+8>>2]=0;dq(d|0,0,a|0)|0;return b|0}function Fc(a){a=a|0;c[a+8>>2]=0;dq(c[a>>2]|0,0,c[a+4>>2]<<2|0)|0;return}function Gc(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function Hc(a,b){a=a|0;b=+b;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=b;c[d>>2]=((e+1|0)>>>0)%((c[a+4>>2]|0)>>>0)|0;return}function Ic(a,b){a=a|0;b=b|0;c[b>>2]=c[(c[a>>2]|0)+(c[a+8>>2]<<2)>>2];return}function Jc(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2344]|0;c[b>>2]=20222;Jp(d,20227,b)|0;lb(1)}else{b=Wp(28)|0;c[b+4>>2]=a;e=Kc(a)|0;c[b+8>>2]=e;e=1<>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<2;e=Wp(a)|0;c[b>>2]=e;c[b+24>>2]=0;dq(e|0,0,a|0)|0;i=d;return b|0}return 0}function Kc(a){a=a|0;var b=0;b=a>>>24;if(!b){b=a>>>16&255;if(!b){b=a>>>8&255;if(!b){b=a&255;if(!b){a=0;return a|0}else a=8}else a=16}else a=24}else a=32;a=a-(c[8232+(b<<2)>>2]|0)|0;return a|0}function Lc(a){a=a|0;c[a+24>>2]=0;dq(c[a>>2]|0,0,c[a+20>>2]<<2|0)|0;return}function Mc(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<2);return}function Nc(a,b){a=a|0;b=+b;var d=0,e=0,f=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;fq(f|0,f+(c[a+12>>2]<<2)|0,(c[d>>2]<<2)+-4|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g[(c[f>>2]|0)+(d+-1+(c[a>>2]|0)<<2)>>2]=b;return}function Oc(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function Pc(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2344]|0;c[b>>2]=20224;Jp(d,20227,b)|0;lb(1)}else{b=Wp(28)|0;c[b+4>>2]=a;e=Kc(a)|0;c[b+8>>2]=e;e=1<>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<3;e=Wp(a)|0;c[b>>2]=e;c[b+24>>2]=0;dq(e|0,0,a|0)|0;i=d;return b|0}return 0}function Qc(a){a=a|0;c[a+24>>2]=0;dq(c[a>>2]|0,0,c[a+20>>2]<<3|0)|0;return}function Rc(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<3);return}function Sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;fq(f|0,f+(c[a+12>>2]<<3)|0,(c[d>>2]<<3)+-8|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g=c[b+4>>2]|0;e=d+-1+(c[a>>2]|0)|0;f=c[f>>2]|0;c[f+(e<<3)>>2]=c[b>>2];c[f+(e<<3)+4>>2]=g;return}function Tc(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function Uc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;d=Wp(1060)|0;c[d>>2]=a;a=d+12|0;b=0;do{g[a+(b<<2)>>2]=+R(+(+(b>>>0)*.02454369260617026));b=b+1|0}while((b|0)!=256);g[d+1052>>2]=.10000000149011612;g[d+1056>>2]=.3162277638912201;a=c[d>>2]|0;switch(a|0){case 0:{c[d+1048>>2]=3;break}case 1:{c[d+1048>>2]=4;break}default:{b=c[2344]|0;c[e>>2]=a;Jp(b,20292,e)|0;lb(1)}}g[d+4>>2]=0.0;g[d+8>>2]=0.0;c[d+1036>>2]=0;g[d+1040>>2]=0.0;g[d+1044>>2]=1.0;i=f;return d|0}function Vc(a){a=a|0;var b=0,d=0;b=~~(+g[a+4>>2]*40.7436637878418+512.5)>>>0;d=b&255;c[a+1036>>2]=d;c[a+1040>>2]=c[a+12+(d<<2)>>2];c[a+1044>>2]=c[a+12+((b+64&255)<<2)>>2];return}function Wc(a){a=a|0;var b=0.0;b=+g[a+4>>2];g[a+1040>>2]=+R(+b);g[a+1044>>2]=+Q(+b);return}function Xc(a,b){a=a|0;b=b|0;var d=0,e=0;d=Wp(8)|0;c[d+4>>2]=b;b=b<<3;e=Wp(b)|0;c[d>>2]=e;eq(e|0,a|0,b|0)|0;return d|0}function Yc(a){a=a|0;Xp(a);return}function Zc(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function _c(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function $c(a,b){a=a|0;b=+b;a=a+4|0;g[a>>2]=b;if(b>3.141592653589793){g[a>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[a>>2]=b+6.283185307179586;return}function ad(a){a=a|0;var b=0;if((a+-2|0)>>>0>13){Pp(20334,42,1,c[2344]|0)|0;lb(1)}else{b=Wp(24)|0;a=7848+(a*24|0)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];return b|0}return 0}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;if(!b){b=0;return b|0}g=a+16|0;h=a+4|0;i=a+20|0;d=a+12|0;e=c[g>>2]|0;f=0;a=0;do{j=cd(e,c[h>>2]|0)|0;c[i>>2]=j;e=(c[g>>2]<<1|j)&c[d>>2];c[g>>2]=e;a=j|a<<1;f=f+1|0}while((f|0)!=(b|0));return a|0}function cd(a,b){a=a|0;b=b|0;b=b&a;return (d[19705+(b>>>8&255)>>0]|0)+(d[19705+(b&255)>>0]|0)+(d[19705+(b>>>16&255)>>0]|0)+(d[19705+(b>>>24)>>0]|0)&1|0}function dd(a){a=a|0;Xp(a);return}function ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0;i=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){e=0.0;f=0.0;b=d+4|0;g[d>>2]=e;g[b>>2]=f;return}else{h=0;f=0.0;e=0.0}do{j=+g[i+(h<<3)>>2];l=+g[i+(h<<3)+4>>2];m=+g[b+(h<<3)>>2];k=+g[b+(h<<3)+4>>2];f=m*j+f-k*l;e=m*l+e+k*j;h=h+1|0}while((h|0)!=(a|0));b=d+4|0;g[d>>2]=f;g[b>>2]=e;return}function fd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0;rb[c[a+1048>>2]&31](a);h=+g[b>>2];e=+g[b+4>>2];f=+g[a+1044>>2];i=+g[a+1040>>2];g[d>>2]=f*h-i*e;g[d+4>>2]=i*h+f*e;return}function gd(a){a=a|0;var b=0.0,c=0;c=a+4|0;b=+g[c>>2]+ +g[a+8>>2];g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function hd(a,b){a=a|0;b=b|0;var d=0,e=0;d=Wp(8)|0;c[d+4>>2]=b;b=b<<2;e=Wp(b)|0;c[d>>2]=e;eq(e|0,a|0,b|0)|0;return d|0}function id(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0.0;i=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){f=0.0;e=0.0}else{h=0;f=0.0;e=0.0;do{j=+g[i+(h<<2)>>2];f=+g[b+(h<<3)>>2]*j+f;e=+g[b+(h<<3)+4>>2]*j+e;h=h+1|0}while((h|0)!=(a|0))}g[d>>2]=f;g[d+4>>2]=e;return}function kd(a,b){a=a|0;b=b|0;var d=0,e=0;d=Wp(8)|0;c[d+4>>2]=b;b=b<<2;e=Wp(b)|0;c[d>>2]=e;eq(e|0,a|0,b|0)|0;return d|0}function ld(a){a=a|0;Xp(c[a>>2]|0);Xp(a);return}function md(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0;h=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){e=0.0;g[d>>2]=e;return}else{f=0;e=0.0}do{e=+g[b+(f<<2)>>2]*+g[h+(f<<2)>>2]+e;f=f+1|0}while((f|0)!=(a|0));g[d>>2]=e;return}function nd(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0;e=b<<1;b=e&-4;if(!b){b=0;c=0.0}else{d=0;c=0.0;do{j=+g[a+(d<<2)>>2];i=+g[a+((d|1)<<2)>>2];h=+g[a+((d|2)<<2)>>2];f=+g[a+((d|3)<<2)>>2];c=j*j+c+i*i+h*h+f*f;d=d+4|0}while(d>>>0>>0)}if(b>>>0>=e>>>0){j=c;return +j}do{j=+g[a+(b<<2)>>2];c=j*j+c;b=b+1|0}while((b|0)!=(e|0));return +c}function od(a,b,d,e,f,k){a=a|0;b=b|0;d=d|0;e=+e;f=+f;k=k|0;var l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+80|0;if((i|0)>=(j|0))ba();A=E+16|0;z=E+8|0;m=E;x=E+56|0;y=E+44|0;B=E+32|0;C=E+20|0;t=_(b<<1,d)|0|1;u=+(b>>>0);v=.5/u;w=e/u;n=w*14.260000228881836;o=+(t>>>0);if(w>.5|w<=0.0){F=c[2344]|0;h[m>>3]=w;Jp(F,20377,m)|0;lb(1)}else{p=.009999999776482582;q=200.0;r=0}while(1){l=(q+p)*.5;if(l<=0.0){D=4;break}m=(l+-7.949999809265137)/n>>0>=20){s=l;break}else{p=m?l:p;q=m?q:l}}if((D|0)==4){F=c[2344]|0;h[z>>3]=l;Jp(F,20442,z)|0;lb(1)}g[x>>2]=0.0;w=w*.5;g[x+4>>2]=v-w;g[x+8>>2]=v;g[x+12>>2]=v;g[x+16>>2]=w+v;g[x+20>>2]=.5;g[y>>2]=u;g[y+4>>2]=u*.5;g[y+8>>2]=0.0;c[B>>2]=c[2314];c[B+4>>2]=c[2315];c[B+8>>2]=c[2316];c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;do switch(a|0){case 1:{pd(t,v,s,f,k);i=E;return}case 2:{ud(t,3,x,y,B,C,0,k);i=E;return}case 3:{Ed(b,d,e,f,k);i=E;return}case 4:{Fd(b,d,e,f,k);i=E;return}case 5:{je(b,d,e,f,k);i=E;return}case 6:{ke(b,d,e,f,k);i=E;return}case 7:{le(b,d,e,f,k);i=E;return}case 8:{oe(b,d,e,f,k);i=E;return}case 9:{se(b,d,e,f,k);i=E;return}case 10:{te(b,d,e,f,k);i=E;return}case 11:{ue(b,d,e,f,k);i=E;return}case 12:{we(b,d,e,f,k);i=E;return}case 13:{xe(b,d,e,f,k);i=E;return}case 14:{ye(b,d,e,f,k);i=E;return}case 15:{ze(b,d,e,f,k);i=E;return}default:{F=c[2344]|0;c[A>>2]=a;Jp(F,23792,A)|0;lb(1)}}while(0)}function pd(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=f|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();l=o+8|0;k=o;if(e<-.5|e>.5){p=c[2344]|0;h[k>>3]=e;Jp(p,20505,k)|0;lb(1)}if(b<0.0|b>.5){p=c[2344]|0;h[l>>3]=b;Jp(p,20574,l)|0;lb(1)}if(!a){Pp(20654,71,1,c[2344]|0)|0;lb(1)}d=+N(+d);if(!(d>50.0))if(d>21.0){n=d+-21.0;n=+P(+n,.4000000059604645)*.5842+n*.07885999977588654}else n=0.0;else n=(d+-8.699999809265137)*.11020000278949738;m=+((a+-1|0)>>>0)*-.5+e;d=b*2.0;k=0;do{b=+qd(d*(m+ +(k>>>0)));g[f+(k<<2)>>2]=+rd(k,a,n,e)*b;k=k+1|0}while((k|0)!=(a|0));i=o;return}function qd(a){a=+a;var b=0.0,c=0.0;b=a;c=b*3.141592653589793;if(+N(+a)<.009999999776482582){a=+Q(+(b*.7853981633974483))*+Q(+(b*1.5707963267948966))*+Q(+(b*.39269908169872414));return +a}else{a=+R(+c)/c;return +a}return 0.0}function rd(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;if(a>>>0>b>>>0){Pp(20726,60,1,c[2344]|0)|0;lb(1)}if(d<0.0){Pp(20787,60,1,c[2344]|0)|0;lb(1)}if(e<-.5|e>.5){Pp(20848,64,1,c[2344]|0)|0;lb(1)}else{e=(+(a>>>0)+e+ +((b+-1|0)>>>0)*-.5)*2.0/+(b>>>0);e=+sd(+O(+(1.0-e*e))*d);return +(e/+sd(d))}return +(0.0)}function sd(a){a=+a;var b=0.0,c=0,d=0.0;if(a==0.0){b=1.0;return +b}b=+Y(+(a*.5));c=0;a=0.0;do{d=+(c>>>0);a=+X(+((b*d-+td(d+1.0))*2.0))+a;c=c+1|0}while((c|0)!=32);return +a}function td(a){a=+a;if(a<0.0){Pp(20913,47,1,c[2344]|0)|0;lb(1)}if(a<10.0)return +(+td(a+1.0)-+Y(+a));else return +((1.8378770351409912-+Y(+a))*.5+(+Y(+(1.0/(a*12.0-.10000000149011612/a)+a))+-1.0)*a);return 0.0}function ud(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|0;h=h|0;f=vd(a,b,c,d,e,f,g)|0;xd(f,h);Dd(f);return}function vd(a,b,d,e,f,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;var k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;n=b<<1;if(n){k=1;m=0;do{l=+g[d+(m<<2)>>2];k=l<=.5&l>=0.0&1&k;m=m+1|0}while((m|0)!=(n|0));if(n>>>0>1){l=+g[d>>2];m=1;do{t=l;l=+g[d+(m<<2)>>2];k=l>=t&k;m=m+1|0}while((m|0)!=(n|0))}}else k=1;o=(b|0)==0;if(o)m=1;else{n=0;m=1;do{m=+g[f+(n<<2)>>2]>0.0&m;n=n+1|0}while((n|0)!=(b|0))}if(!k){Pp(20961,40,1,c[2344]|0)|0;lb(1)}if(!m){Pp(21002,61,1,c[2344]|0)|0;lb(1)}if(o){Pp(21064,54,1,c[2344]|0)|0;lb(1)}s=Wp(104)|0;c[s>>2]=a;p=a&1;c[s+4>>2]=p;r=(a-p|0)>>>1;c[s+8>>2]=r;p=r+p|0;r=s+12|0;c[r>>2]=p;c[s+28>>2]=j;c[s+88>>2]=Wp((p<<2)+4|0)|0;p=(p<<3)+8|0;c[s+64>>2]=Wp(p)|0;c[s+68>>2]=Wp(p)|0;c[s+72>>2]=Wp(p)|0;p=s+16|0;c[p>>2]=b;q=s+32|0;c[q>>2]=Wp(b<<4)|0;k=b<<3;o=s+36|0;c[o>>2]=Wp(k)|0;j=s+40|0;c[j>>2]=Wp(k)|0;k=Wp(b<<2)|0;n=s+44|0;c[n>>2]=k;if(!i){c[k>>2]=0;k=c[p>>2]|0;if(k>>>0>1){m=1;do{c[(c[n>>2]|0)+(m<<2)>>2]=0;m=m+1|0;k=c[p>>2]|0}while(m>>>0>>0)}}else{c[k>>2]=c[i>>2];k=c[p>>2]|0;if(k>>>0>1){m=1;do{c[(c[n>>2]|0)+(m<<2)>>2]=c[i+(m<<2)>>2];m=m+1|0;k=c[p>>2]|0}while(m>>>0>>0)}}if(k|0){a=c[q>>2]|0;o=c[o>>2]|0;n=c[j>>2]|0;if(!f){m=0;do{f=m<<1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];f=f|1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];h[o+(m<<3)>>3]=+g[e+(m<<2)>>2];h[n+(m<<3)>>3]=1.0;m=m+1|0}while(m>>>0>>0)}else{m=0;do{i=m<<1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];i=i|1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];h[o+(m<<3)>>3]=+g[e+(m<<2)>>2];h[n+(m<<3)>>3]=+g[f+(m<<2)>>2];m=m+1|0}while(m>>>0>>0)}}c[s+24>>2]=20;a=s+20|0;c[a>>2]=0;o=c[p>>2]|0;if(!o){d=0;f=Wp(d)|0;e=s+48|0;c[e>>2]=f;e=Wp(d)|0;f=s+52|0;c[f>>2]=e;f=Wp(d)|0;e=s+56|0;c[e>>2]=f;d=Wp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;wd(s);return s|0}n=c[q>>2]|0;l=+(((c[r>>2]|0)*20|0)>>>0)*2.0;k=0;m=0;do{e=m<<1;k=(~~(l*(+h[n+((e|1)<<3)>>3]-+h[n+(e<<3)>>3])+1.0)>>>0)+k|0;m=m+1|0}while(m>>>0>>0);c[a>>2]=k;d=k<<3;f=Wp(d)|0;e=s+48|0;c[e>>2]=f;e=Wp(d)|0;f=s+52|0;c[f>>2]=e;f=Wp(d)|0;e=s+56|0;c[e>>2]=f;d=Wp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;wd(s);return s|0}function wd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0.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.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;if((i|0)>=(j|0))ba();A=D;x=.5/+((_(c[a+12>>2]|0,c[a+24>>2]|0)|0)>>>0);y=a+16|0;a:do if(!(c[y>>2]|0)){B=a+28|0;C=0}else{m=a+32|0;n=a+28|0;o=a+48|0;p=a+96|0;q=a+36|0;r=a+52|0;s=a+44|0;t=a+40|0;u=a+56|0;v=a+100|0;z=0;d=0;b:while(1){l=z<<1;f=c[m>>2]|0;g=+h[f+(l<<3)>>3];w=+h[f+((l|1)<<3)>>3];if((z|0)==0?(c[n>>2]|0)!=0:0)g=g>>0;e=(e|0)==0?1:e;f=0;l=d;while(1){k=+(f>>>0)*x+g;h[(c[o>>2]|0)+(l<<3)>>3]=k;b=c[p>>2]|0;if(!b){h[(c[r>>2]|0)+(l<<3)>>3]=+h[(c[q>>2]|0)+(z<<3)>>3];b=c[(c[s>>2]|0)+(z<<2)>>2]|0;switch(b|0){case 0:{k=1.0;break}case 1:{k=+X(+(+(f>>>0)*2.0*x));break}case 2:{k=+(f>>>0)*2.700000047683716*x+1.0;break}default:break b}h[(c[u>>2]|0)+(l<<3)>>3]=+h[(c[t>>2]|0)+(z<<3)>>3]*k}else tb[b&0](k,c[v>>2]|0,(c[r>>2]|0)+(l<<3)|0,(c[u>>2]|0)+(l<<3)|0)|0;d=l+1|0;f=f+1|0;if(f>>>0>=e>>>0){b=l;break}else l=d}l=c[y>>2]|0;h[(c[o>>2]|0)+(b<<3)>>3]=w;z=z+1|0;if(z>>>0>=l>>>0){B=n;C=d;break a}}z=c[2344]|0;c[A>>2]=b;Jp(z,21119,A)|0;lb(1)}while(0);c[a+20>>2]=C;d=(c[a+4>>2]|0)==0;if(!(c[B>>2]|0)){if((C|0)==0|d^1){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+Q(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+Q(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=+h[a>>3]*x;d=d+1|0}while(d>>>0>>0);i=D;return}b=(C|0)!=0;if(d){if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=+h[a>>3]*x;d=d+1|0}while(d>>>0>>0);i=D;return}else{if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*6.283185307179586));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*6.283185307179586));a=b+(d<<3)|0;h[a>>3]=+h[a>>3]*x;d=d+1|0}while(d>>>0>>0);i=D;return}}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.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.0,x=0;v=a+12|0;d=c[v>>2]|0;t=a+20|0;u=a+88|0;if((d|0)!=-1){f=c[u>>2]|0;e=0;do{c[f+(e<<2)>>2]=((_((c[t>>2]|0)+-1|0,e)|0)>>>0)/(d>>>0)|0;e=e+1|0;d=c[v>>2]|0}while(e>>>0<(d+1|0)>>>0)}m=a+92|0;n=a+60|0;o=a+48|0;p=a+64|0;q=a+72|0;r=a+68|0;k=a+56|0;l=a+52|0;s=0;while(1){yd(a);if(c[t>>2]|0){d=0;do{i=+Q(+(+h[(c[o>>2]|0)+(d<<3)>>3]*6.283185307179586));i=+Ad(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,i,(c[v>>2]|0)+1|0);h[(c[n>>2]|0)+(d<<3)>>3]=(+h[(c[l>>2]|0)+(d<<3)>>3]-i)*+h[(c[k>>2]|0)+(d<<3)>>3];d=d+1|0}while(d>>>0<(c[t>>2]|0)>>>0)}Bd(a);if(!(c[m>>2]|0)){d=12;break}d=c[v>>2]|0;if((d|0)==-1){i=0.0;g=0.0}else{e=c[u>>2]|0;f=c[n>>2]|0;i=0.0;g=0.0;j=0;while(1){w=+N(+(+h[f+(c[e+(j<<2)>>2]<<3)>>3]));x=(j|0)==0;g=x|wi?w:i;if((j|0)==(d|0))break;else j=j+1|0}}s=s+1|0;if(!(s>>>0<40?!((i-g)/i<1.0000000474974513e-03):0)){d=12;break}}if((d|0)==12){Cd(a,b);return}}function yd(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;k=a+12|0;f=(c[k>>2]|0)+1|0;if(!f){f=0;d=c[a+64>>2]|0}else{g=c[a+88>>2]|0;i=c[a+48>>2]|0;d=c[a+64>>2]|0;j=0;do{h[d+(j<<3)>>3]=+Q(+(+h[i+(c[g+(j<<2)>>2]<<3)>>3]*6.283185307179586));j=j+1|0}while(j>>>0>>0)}g=a+68|0;zd(d,f,c[g>>2]|0);n=c[k>>2]|0;m=(n|0)==-1;if(m){h[a+80>>3]=0.0;return}d=c[g>>2]|0;f=c[a+88>>2]|0;g=c[a+52>>2]|0;i=c[a+56>>2]|0;j=n+1|0;k=0;e=0.0;b=0.0;do{o=+h[d+(k<<3)>>3];l=c[f+(k<<2)>>2]|0;e=+h[g+(l<<3)>>3]*o+e;b=o/+h[i+(l<<3)>>3]*(k&1|0?-1.0:1.0)+b;k=k+1|0}while(k>>>0>>0);b=e/b;l=a+80|0;h[l>>3]=b;if(m)return;i=c[a+88>>2]|0;j=c[a+52>>2]|0;k=c[a+56>>2]|0;g=c[a+72>>2]|0;f=n+1|0;d=0;while(1){a=c[i+(d<<2)>>2]|0;h[g+(d<<3)>>3]=+h[j+(a<<3)>>3]-b*+((d<<1&2^2)+-1|0)/+h[k+(a<<3)>>3];d=d+1|0;if(d>>>0>=f>>>0)break;b=+h[l>>3]}return}function zd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0,g=0,i=0,j=0;j=(b|0)==0;if(j)return;else i=0;do{g=c+(i<<3)|0;h[g>>3]=1.0;d=a+(i<<3)|0;e=1.0;f=0;do{if((i|0)!=(f|0)){e=e*(+h[d>>3]-+h[a+(f<<3)>>3]);h[g>>3]=e}f=f+1|0}while((f|0)!=(b|0));h[g>>3]=1.0/e;i=i+1|0}while((i|0)!=(b|0));e=+h[c>>3];if(j)return;h[c>>3]=1.0;if((b|0)==1)return;else d=1;do{h[c+(d<<3)>>3]=+h[c+(d<<3)>>3]/e;d=d+1|0}while((d|0)!=(b|0));return}function Ad(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0;a:do if(!e){i=0.0;g=0.0}else{f=0;i=0.0;g=0.0;while(1){j=d-+h[a+(f<<3)>>3];if(+N(+j)<9.999999974752427e-07)break;k=+h[c+(f<<3)>>3];i=+h[b+(f<<3)>>3]*k/j+i;g=k/j+g;f=f+1|0;if(f>>>0>=e>>>0)break a}k=+h[b+(f<<3)>>3];return +k}while(0);k=i/g;return +k}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();l=r;k=c[a+12>>2]|0;q=i;i=i+((1*((c[a+16>>2]|0)+k<<1<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c[q>>2]=0;f=(c[a+20>>2]|0)+-1|0;if(f>>>0>1){d=c[a+60>>2]|0;e=1;b=1;do{g=+h[d+(e<<3)>>3];if((g>=0.0?+h[d+(e+-1<<3)>>3]<=g:0)?+h[d+(e+1<<3)>>3]<=g:0)p=9;else if((g<0.0?+h[d+(e+-1<<3)>>3]>=g:0)?+h[d+(e+1<<3)>>3]>=g:0)p=9;if((p|0)==9){p=0;c[q+(b<<2)>>2]=e;b=b+1|0}e=e+1|0}while(e>>>0>>0)}else b=1;d=b+1|0;c[q+(b<<2)>>2]=f;o=k+1|0;if(d>>>0>>0){q=c[2344]|0;c[l>>2]=o;c[l+4>>2]=d;Jp(q,21181,l)|0;c[a+92>>2]=0;i=r;return}b=d-k+-1|0;if(b|0){n=c[a+60>>2]|0;m=d;l=b;while(1){a:do if(m>>>0>1){e=c[q>>2]|0;f=e;k=1;b=0;e=+h[n+(e<<3)>>3]>0.0&1;while(1){d=c[q+(k<<2)>>2]|0;g=+h[n+(d<<3)>>3];s=+N(+g);f=s<+N(+(+h[n+(f<<3)>>3]));b=f?k:b;if(!e)if(!(g>=0.0)){b=k;break}else e=1;else if(g<0.0)e=0;else{b=k;break}d=k+1|0;if(d>>>0>=m>>>0){p=23;break a}f=c[q+(b<<2)>>2]|0;k=d}s=+N(+(+h[n+(d<<3)>>3]));k=b+-1|0;f=s<+N(+(+h[n+(c[q+(k<<2)>>2]<<3)>>3]));b=f?b:k}else{b=0;p=23}while(0);if((p|0)==23){p=0;if((l|0)==1){s=+N(+(+h[n+(c[q>>2]<<3)>>3]));b=m+-1|0;k=s<+N(+(+h[n+(c[q+(b<<2)>>2]<<3)>>3]));b=k?0:b}}if(b>>>0>>0)do{k=b;b=b+1|0;c[q+(k<<2)>>2]=c[q+(b<<2)>>2]}while((b|0)!=(m|0));l=l+-1|0;if(!l)break;else m=m+-1|0}}f=a+92|0;c[f>>2]=0;b=a+88|0;if(!o){d=0;b=c[b>>2]|0}else{b=c[b>>2]|0;d=0;e=0;do{d=((c[b+(e<<2)>>2]|0)!=(c[q+(e<<2)>>2]|0)&1)+d|0;c[f>>2]=d;e=e+1|0}while(e>>>0>>0);d=o<<2}fq(b|0,q|0,d|0)|0;i=r;return}function Cd(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;yd(a);x=a+12|0;k=c[x>>2]|0;w=a+4|0;f=c[w>>2]|0;v=k-f|0;e=v+1|0;y=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(!e)e=c[a+28>>2]|0;else{t=a+64|0;u=a+72|0;r=a+68|0;s=a+28|0;p=k+1-f|0;f=0;while(1){d=+(f>>>0);l=+Q(+(d/+((c[a>>2]|0)>>>0)*6.283185307179586));l=+Ad(c[t>>2]|0,c[u>>2]|0,c[r>>2]|0,l,k+1|0);e=c[s>>2]|0;if((e|0)==0?(c[w>>2]|0)==0:0)d=+Q(+(d*3.141592653589793/+((c[a>>2]|0)>>>0)));else d=1.0;h[y+(f<<3)>>3]=d*l;f=f+1|0;if((f|0)==(p|0))break a;k=c[x>>2]|0}}while(0);if(e|0)switch(c[w>>2]|0){case 1:{Pp(21282,73,1,c[2344]|0)|0;i=z;return}case 0:{Pp(21282,73,1,c[2344]|0)|0;i=z;return}default:{i=z;return}}p=c[a>>2]|0;if(!p){i=z;return}q=+h[y>>3];o=+(v>>>0);m=+((1-(c[w>>2]|0)|0)>>>0)*.5;e=c[x>>2]|0;n=+(p>>>0);if(e>>>0>1)f=0;else{d=q/n;e=0;do{g[b+(e<<2)>>2]=d;e=e+1|0}while(e>>>0

>>0);i=z;return}while(1){l=(+(f>>>0)-o+m)/n*6.283185307179586;k=1;d=q;do{d=+h[y+(k<<3)>>3]*2.0*+Q(+(l*+(k>>>0)))+d;k=k+1|0}while(k>>>0>>0);g[b+(f<<2)>>2]=d/n;f=f+1|0;if(f>>>0>=p>>>0)break;e=c[x>>2]|0}i=z;return}function Dd(a){a=a|0;Xp(c[a+88>>2]|0);Xp(c[a+64>>2]|0);Xp(c[a+68>>2]|0);Xp(c[a+72>>2]|0);Xp(c[a+48>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);Xp(c[a+60>>2]|0);Xp(c[a+32>>2]|0);Xp(c[a+36>>2]|0);Xp(c[a+40>>2]|0);Xp(c[a+44>>2]|0);Xp(a);return}function Ed(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;if(!a){Pp(21356,54,1,c[2344]|0)|0;lb(1)}if(!b){Pp(21411,54,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(21466,51,1,c[2344]|0)|0;lb(1)}n=+(a>>>0);o=+(b>>>0);m=d;k=1.5707963267948966/m;l=d*.5;m=m*3.141592653589793;a=(_(b,a)|0)<<1|1;b=0;do{h=(+(b>>>0)+e)/n-o;i=+qd(h);j=h*d;j=1.0-j*j*4.0;if(+N(+j)<1.0000000474974513e-03)h=l*+R(+k);else h=+Q(+(m*h))*i/j;g[f+(b<<2)>>2]=h;b=b+1|0}while((b|0)!=(a|0));return}function Fd(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(4,0,a,b,c,0.0,e);return}function Gd(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;q=i;if(!d){Pp(21518,58,1,c[2344]|0)|0;lb(1)}if(!e){Pp(21577,58,1,c[2344]|0)|0;lb(1)}if(f<0.0|f>1.0){Pp(21636,55,1,c[2344]|0)|0;lb(1)}p=_(d<<1,e)|0|1;l=i;i=i+((1*(p<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(a|0){case 4:{Hd(d,e,f,l);break}case 5:{Id(d,e,f,l);break}case 6:{Jd(d,e,f,l);break}default:{Pp(21738,65,1,c[2344]|0)|0;lb(1)}}a=_(e,d)|0;n=a<<1|1;if(!b){e=0;do{c[m+(e<<3)>>2]=c[l+(e<<2)>>2];g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}else{e=0;do{g[m+(e<<3)>>2]=+O(+(+g[l+(e<<2)>>2]));g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}Kd(p,m,o,-1,0);a=a+1|0;h=+(d>>>0);f=+(p>>>0);e=0;do{g[k+(e<<2)>>2]=+g[o+((((a+e|0)>>>0)%(p>>>0)|0)<<3)>>2]*h/f;e=e+1|0}while((e|0)!=(n|0));i=q;return}function Hd(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=.6931471824645996/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=h*l;i=i*l;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(ck&c>2]=0.0;break}if(c>2]=+X(+((h-c)*e));break}else{g[d+(b<<2)>>2]=1.0-+X(+((c-i)*e));break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function Id(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=1.316957950592041/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=h*l;i=i*l;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(ck&c>2]=0.0;break}if(c>2]=1.0/+Do((c-h)*e);break}else{g[d+(b<<2)>>2]=1.0-1.0/+Do((i-c)*e);break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function Jd(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=1.0-d;k=+(a>>>0);n=j*.5/k;o=.5/k;h=d+1.0;k=h*.5/k;l=1.0/(d*2.0*o);m=+((_(a<<1,b)|0|1)>>>0);f=d*.7593256831169128*o*l;h=h*o;i=c[2344]|0;j=j*o;a=(_(b,a)|0)<<1|1;b=0;do{d=+(b>>>0)/m;d=+N(+(d>.5?d+-1.0:d));do if(!(dn&d>2]=0.0;break}if(d1.0){Pp(21692,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(+O(+(d+-1.0))*+O(+(d+1.0))+d))}g[e+(b<<2)>>2]=1.0-d*f;break}else{d=(d-j)*l;if(d<=0.0|d>1.0){Pp(21692,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(+O(+(d+-1.0))*+O(+(d+1.0))+d))}g[e+(b<<2)>>2]=d*f;break}}else g[e+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function Kd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Ld(a,b,d,e,f)|0;rb[c[d+28>>2]&31](d);ie(d);return}function Ld(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(Md(a)|0){case 1:{d=Od(a,b,d,e,f)|0;return d|0}case 2:{d=Rd(a,b,d,e,f)|0;return d|0}case 3:{d=Ud(a,b,d,e,f)|0;return d|0}case 4:{d=Yd(a,b,d,e,f)|0;return d|0}case 5:{d=_d(a,b,d,e,f)|0;return d|0}default:{Pp(22102,53,1,c[2344]|0)|0;lb(1)}}return 0}function Md(a){a=a|0;if(!a){Pp(21804,58,1,c[2344]|0)|0;a=0;return a|0}if((a|1|0)==17|((a|0)==13|(a>>>0<9|(a|0)==11))){a=5;return a|0}if(((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1){a=2;return a|0}if(!(Nd(a)|0)){a=2;return a|0}a=a+-1|0;a=((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1?3:4;return a|0}function Nd(a){a=a|0;var b=0;a:do if(a>>>0>3){b=2;while(1){if(!((a>>>0)%(b>>>0)|0)){a=0;break a}b=b+1|0;if(b>>>0>=a>>>0){a=1;break}}}else a=1;while(0);return a|0}function Od(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();m=q+16|0;n=q+8|0;o=q;p=Wp(72)|0;c[p>>2]=a;c[p+4>>2]=b;c[p+8>>2]=d;c[p+16>>2]=f;e=(e|0)==1?1:-1;c[p+20>>2]=e;l=p+12|0;c[l>>2]=e;c[p+24>>2]=1;c[p+28>>2]=5;e=(Kc(a)|0)+-1|0;c[p+40>>2]=e;f=Wp(a<<2)|0;c[p+44>>2]=f;if(!a){e=0;a=0}else{b=0;do{c[f+(b<<2)>>2]=Qd(b,e)|0;b=b+1|0}while(b>>>0>>0);e=a<<3;a=c[p>>2]|0}d=Wp(e)|0;c[p+48>>2]=d;if(!a){i=q;return p|0}h=(c[l>>2]|0)==1?-6.283185307179586:6.283185307179586;e=o+4|0;f=n+4|0;k=+(a>>>0);b=0;do{g[o>>2]=0.0;g[e>>2]=+(b>>>0)*h/k;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];Ho(n,m);l=c[f>>2]|0;c[d+(b<<3)>>2]=c[n>>2];c[d+(b<<3)+4>>2]=l;b=b+1|0}while(b>>>0>>0);i=q;return p|0}function Pd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0;d=c[a>>2]&-4;if(!d)b=a+8|0;else{e=a+44|0;f=a+4|0;b=a+8|0;h=0;do{m=c[(c[e>>2]|0)+(h<<2)>>2]|0;o=c[f>>2]|0;l=c[o+(m<<3)+4>>2]|0;p=c[b>>2]|0;c[p+(h<<3)>>2]=c[o+(m<<3)>>2];c[p+(h<<3)+4>>2]=l;p=h|1;l=c[(c[e>>2]|0)+(p<<2)>>2]|0;m=c[f>>2]|0;o=c[m+(l<<3)+4>>2]|0;n=c[b>>2]|0;c[n+(p<<3)>>2]=c[m+(l<<3)>>2];c[n+(p<<3)+4>>2]=o;p=h|2;n=c[(c[e>>2]|0)+(p<<2)>>2]|0;o=c[f>>2]|0;l=c[o+(n<<3)+4>>2]|0;m=c[b>>2]|0;c[m+(p<<3)>>2]=c[o+(n<<3)>>2];c[m+(p<<3)+4>>2]=l;p=h|3;m=c[(c[e>>2]|0)+(p<<2)>>2]|0;l=c[f>>2]|0;n=c[l+(m<<3)+4>>2]|0;o=c[b>>2]|0;c[o+(p<<3)>>2]=c[l+(m<<3)>>2];c[o+(p<<3)+4>>2]=n;h=h+4|0}while(h>>>0>>0)}n=c[b>>2]|0;o=a+40|0;b=c[o>>2]|0;if(!b)return;m=c[a>>2]|0;p=a+48|0;d=m;k=0;l=1;do{h=l;l=l<<1;m=m>>>1;if(h){e=0;f=0;do{b=c[p>>2]|0;i=+g[b+(f<<3)>>2];j=+g[b+(f<<3)+4>>2];f=((f+m|0)>>>0)%(d>>>0)|0;if(e>>>0>>0){b=e;do{t=b+h|0;v=n+(t<<3)|0;q=+g[v>>2];t=n+(t<<3)+4|0;u=+g[t>>2];s=q*i-u*j;q=u*i+q*j;r=n+(b<<3)|0;d=n+(b<<3)+4|0;u=+g[d>>2]-q;g[v>>2]=+g[r>>2]-s;g[t>>2]=u;q=+g[d>>2]+q;g[r>>2]=+g[r>>2]+s;g[d>>2]=q;b=b+l|0;d=c[a>>2]|0}while(b>>>0>>0)}e=e+1|0}while((e|0)!=(h|0));b=c[o>>2]|0}k=k+1|0}while(k>>>0>>0);return}function Qd(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b){b=0;return b|0}else{c=a;a=0;d=0}while(1){a=a<<1|c&1;d=d+1|0;if((d|0)==(b|0))break;else c=c>>>1}return a|0}function Rd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+208|0;if((i|0)>=(j|0))ba();q=u+48|0;p=u+16|0;o=u+8|0;n=u;v=u+32|0;r=u+40|0;s=u+24|0;t=Wp(72)|0;c[t>>2]=a;c[t+4>>2]=b;c[t+8>>2]=d;c[t+16>>2]=f;d=(e|0)==1;b=d?1:-1;c[t+20>>2]=b;c[t+12>>2]=b;c[t+24>>2]=2;c[t+28>>2]=6;Td(a,q,v);e=c[v>>2]|0;if(e>>>0<2){v=c[2344]|0;c[n>>2]=a;Jp(v,21922,n)|0;c[o>>2]=a;Jp(v,21972,o)|0;lb(1)}else l=0;while(1){if((c[q+(l<<2)>>2]|0)!=2){e=5;break}l=l+1|0;if(l>>>0>=e>>>0){e=6;break}}if((e|0)==5)if(!l){l=c[q>>2]|0;if(!l){v=c[2344]|0;c[o>>2]=a;Jp(v,21972,o)|0;lb(1)}else h=l}else e=6;if((e|0)==6)if(a&15)if(!(a&7))h=8;else h=(a&3|0)==0?4:2;else h=16;if((a>>>0)%(h>>>0)|0|0){v=c[2344]|0;c[p>>2]=a;c[p+4>>2]=h;Jp(v,22029,p)|0;lb(1)}n=(a>>>0)/(h>>>0)|0;c[t+44>>2]=h;c[t+40>>2]=n;p=(h>>>0>n>>>0?h:n)<<3;o=Wp(p)|0;c[t+52>>2]=o;p=Wp(p)|0;c[t+56>>2]=p;v=a<<3;c[t+48>>2]=Wp(v)|0;c[t+64>>2]=Ld(n,o,p,b,f)|0;c[t+68>>2]=Ld(h,o,p,b,f)|0;b=Wp(v)|0;c[t+60>>2]=b;if(!a){i=u;return t|0}k=d?-6.283185307179586:6.283185307179586;h=s+4|0;l=r+4|0;m=+(a>>>0);e=0;do{g[s>>2]=0.0;g[h>>2]=+(e>>>0)*k/m;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Ho(r,q);v=c[l>>2]|0;c[b+(e<<3)>>2]=c[r>>2];c[b+(e<<3)+4>>2]=v;e=e+1|0}while(e>>>0>>0);i=u;return t|0}function Sd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0;n=c[a+40>>2]|0;j=c[a+44>>2]|0;k=c[a+52>>2]|0;l=c[a+56>>2]|0;m=c[a+48>>2]|0;d=c[a+60>>2]|0;fq(m|0,c[a+4>>2]|0,c[a>>2]<<3|0)|0;i=(j|0)==0;a:do if(!i){f=a+64|0;if(!n){b=0;while(1){h=c[f>>2]|0;rb[c[h+28>>2]&31](h);b=b+1|0;if((b|0)==(j|0))break a}}else e=0;do{b=0;do{o=(_(b,j)|0)+e|0;h=c[m+(o<<3)+4>>2]|0;c[k+(b<<3)>>2]=c[m+(o<<3)>>2];c[k+(b<<3)+4>>2]=h;b=b+1|0}while((b|0)!=(n|0));b=c[f>>2]|0;rb[c[b+28>>2]&31](b);b=0;do{r=+g[l+(b<<3)>>2];p=+g[l+(b<<3)+4>>2];o=_(b,e)|0;q=+g[d+(o<<3)>>2];s=+g[d+(o<<3)+4>>2];o=(_(b,j)|0)+e|0;g[m+(o<<3)>>2]=q*r-s*p;g[m+(o<<3)+4>>2]=s*r+q*p;b=b+1|0}while((b|0)!=(n|0));e=e+1|0}while((e|0)!=(j|0))}while(0);if(!n)return;h=a+68|0;f=a+8|0;if(i){b=0;do{o=c[h>>2]|0;rb[c[o+28>>2]&31](o);b=b+1|0}while((b|0)!=(n|0));return}else e=0;do{b=_(e,j)|0;d=0;do{i=d+b|0;o=c[m+(i<<3)+4>>2]|0;c[k+(d<<3)>>2]=c[m+(i<<3)>>2];c[k+(d<<3)+4>>2]=o;d=d+1|0}while((d|0)!=(j|0));b=c[h>>2]|0;rb[c[b+28>>2]&31](b);b=0;do{a=c[l+(b<<3)+4>>2]|0;o=(_(b,n)|0)+e|0;i=c[f>>2]|0;c[i+(o<<3)>>2]=c[l+(b<<3)>>2];c[i+(o<<3)+4>>2]=a;b=b+1|0}while((b|0)!=(j|0));e=e+1|0}while((e|0)!=(n|0));return}function Td(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;g=a;e=0;do{if(g>>>0<2){f=0;break}else f=2;do{if(!((g>>>0)%(f>>>0)|0)){h=4;break}f=f+1|0}while(f>>>0<=g>>>0);if((h|0)==4){h=0;c[b+(e<<2)>>2]=f;g=(g>>>0)/(f>>>0)|0;e=e+1|0}f=g>>>0>1}while(f&e>>>0<40);if(f&(e|0)==40){l=c[2344]|0;c[k>>2]=a;c[k+4>>2]=40;Jp(l,21863,k)|0;lb(1)}else{c[d>>2]=e;i=l;return}}function Ud(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+32|0;if((i|0)>=(j|0))ba();r=v+16|0;s=v+8|0;t=v;u=Wp(72)|0;c[u>>2]=a;c[u+4>>2]=b;c[u+8>>2]=d;c[u+16>>2]=f;p=(e|0)==1?1:-1;c[u+20>>2]=p;l=u+12|0;c[l>>2]=p;c[u+24>>2]=3;c[u+28>>2]=7;p=(a<<3)+-8|0;e=Wp(p)|0;m=u+40|0;o=u+48|0;c[o>>2]=e;p=Wp(p)|0;c[u+52>>2]=p;h=a+-1|0;q=Ld(h,e,p,1,f)|0;c[u+56>>2]=q;c[u+60>>2]=Ld(h,p,e,-1,f)|0;e=Wd(a)|0;b=Wp((a<<2)+-4|0)|0;c[m>>2]=b;if((a|0)==1){t=0;s=q+28|0;s=c[s>>2]|0;rb[s&31](q);s=Wp(t)|0;r=u+44|0;c[r>>2]=s;eq(s|0,p|0,t|0)|0;i=v;return u|0}else d=0;do{f=d;d=d+1|0;c[b+(f<<2)>>2]=Xd(e,d,a)|0}while(d>>>0>>0);a=c[u>>2]|0;if((a|0)==1){t=0;s=q+28|0;s=c[s>>2]|0;rb[s&31](q);s=Wp(t)|0;r=u+44|0;c[r>>2]=s;eq(s|0,p|0,t|0)|0;i=v;return u|0}n=(c[l>>2]|0)==1?-6.283185307179586:6.283185307179586;h=c[m>>2]|0;f=t+4|0;l=s+4|0;e=c[o>>2]|0;b=a+-1|0;k=+(a>>>0);d=0;do{w=+((c[h+(d<<2)>>2]|0)>>>0)*n/k;g[t>>2]=0.0;g[f>>2]=w;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];Ho(s,r);o=c[l>>2]|0;c[e+(d<<3)>>2]=c[s>>2];c[e+(d<<3)+4>>2]=o;d=d+1|0}while(d>>>0>>0);t=(a<<3)+-8|0;s=q+28|0;s=c[s>>2]|0;rb[s&31](q);s=Wp(t)|0;r=u+44|0;c[r>>2]=s;eq(s|0,p|0,t|0)|0;i=v;return u|0}function Vd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;b=(c[a>>2]|0)+-1|0;i=a+40|0;if(b|0){e=a+4|0;f=a+48|0;d=0;do{k=c[(c[i>>2]|0)+(b+~d<<2)>>2]|0;l=c[e>>2]|0;j=c[l+(k<<3)+4>>2]|0;h=c[f>>2]|0;c[h+(d<<3)>>2]=c[l+(k<<3)>>2];c[h+(d<<3)+4>>2]=j;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(b>>>0>d>>>0)}l=c[a+56>>2]|0;rb[c[l+28>>2]&31](l);if((c[a>>2]|0)!=1){b=a+44|0;d=a+52|0;e=0;do{l=c[b>>2]|0;o=+g[l+(e<<3)>>2];m=+g[l+(e<<3)+4>>2];l=c[d>>2]|0;k=l+(e<<3)|0;n=+g[k>>2];l=l+(e<<3)+4|0;p=+g[l>>2];g[k>>2]=n*o-p*m;g[l>>2]=p*o+n*m;e=e+1|0}while(e>>>0<((c[a>>2]|0)+-1|0)>>>0)}h=c[a+60>>2]|0;rb[c[h+28>>2]&31](h);h=a+8|0;l=c[h>>2]|0;g[l>>2]=0.0;g[l+4>>2]=0.0;if(c[a>>2]|0){d=a+4|0;e=0;do{k=c[d>>2]|0;l=c[h>>2]|0;b=l+4|0;p=+g[b>>2]+ +g[k+(e<<3)+4>>2];g[l>>2]=+g[l>>2]+ +g[k+(e<<3)>>2];g[b>>2]=p;e=e+1|0;b=c[a>>2]|0}while(e>>>0>>0);b=b+-1|0;if(!b)return}else b=-1;e=a+48|0;f=a+4|0;d=0;do{l=c[(c[i>>2]|0)+(d<<2)>>2]|0;j=c[e>>2]|0;o=+(b>>>0);q=c[f>>2]|0;p=+g[q+4>>2]+ +g[j+(d<<3)+4>>2]/o;k=c[h>>2]|0;g[k+(l<<3)>>2]=+g[q>>2]+ +g[j+(d<<3)>>2]/o;g[k+(l<<3)+4>>2]=p;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(d>>>0>>0);return}function Wd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+160|0;if((i|0)>=(j|0))ba();m=o;l=a+-1|0;b=l;e=0;while(1){if(b>>>0<2){h=e;break}else d=2;while(1){if(!((b>>>0)%(d>>>0)|0)){n=4;break}d=d+1|0;if(d>>>0>b>>>0){d=e;break}}if((n|0)==4){n=0;b=(b>>>0)/(d>>>0)|0;c[m+(e<<2)>>2]=d;if(!e)d=1;else d=((c[m+(e+-1<<2)>>2]|0)!=(d|0)&1)+e|0}if(b>>>0>1&d>>>0<40)e=d;else{h=d;break}}if(a>>>0<3|(h|0)==0){n=2;i=o;return n|0}else b=2;while(1){g=0;while(1){f=(l>>>0)/((c[m+(g<<2)>>2]|0)>>>0)|0;if(!f)break;else{d=1;e=0}do{d=((_(d,b)|0)>>>0)%(a>>>0)|0;e=e+1|0}while((e|0)!=(f|0));k=(d|0)==1;g=g+1|0;if(!(g>>>0>>0&(k^1))){n=12;break}}if((n|0)==12?(n=0,!k):0){n=15;break}b=b+1|0;if(b>>>0>=a>>>0){n=15;break}}if((n|0)==15){i=o;return b|0}return 0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!b){e=1;return e|0}else{d=1;e=0}do{d=((_(d,a)|0)>>>0)%(c>>>0)|0;e=e+1|0}while((e|0)!=(b|0));return d|0}function Yd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.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.0;w=i;i=i+32|0;if((i|0)>=(j|0))ba();s=w+16|0;t=w+8|0;u=w;v=Wp(72)|0;c[v>>2]=a;c[v+4>>2]=b;c[v+8>>2]=d;l=v+16|0;c[l>>2]=f;b=(e|0)==1?1:-1;c[v+20>>2]=b;p=v+12|0;c[p>>2]=b;c[v+24>>2]=4;c[v+28>>2]=8;b=Wd(a)|0;d=Wp((a<<2)+-4|0)|0;r=v+40|0;q=v+44|0;c[q>>2]=d;if((a|0)==1)b=-3;else{e=a+-1|0;f=0;do{o=f;f=f+1|0;c[d+(o<<2)>>2]=Xd(b,f,a)|0}while(f>>>0>>0);b=(a<<1)+-5|0}c[r>>2]=b;d=0;do{b=b>>>1;d=d+1|0}while((b|0)!=0);b=d;m=1<>2]=m;e=m<<3;n=Wp(e)|0;c[v+52>>2]=n;e=Wp(e)|0;o=v+56|0;c[o>>2]=e;b=c[l>>2]|0;l=v+60|0;c[l>>2]=Ld(m,n,e,1,b)|0;c[v+64>>2]=Ld(m,e,n,-1,b)|0;k=(c[p>>2]|0)==1?-6.283185307179586:6.283185307179586;b=c[q>>2]|0;e=c[v>>2]|0;d=e+-1|0;h=+(e>>>0);e=u+4|0;f=t+4|0;a=0;do{x=+((c[b+(((a>>>0)%(d>>>0)|0)<<2)>>2]|0)>>>0)*k/h;g[u>>2]=0.0;g[e>>2]=x;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Ho(t,s);q=c[f>>2]|0;c[n+(a<<3)>>2]=c[t>>2];c[n+(a<<3)+4>>2]=q;a=a+1|0}while(a>>>0>>0);s=c[l>>2]|0;u=c[r>>2]|0;t=c[o>>2]|0;rb[c[s+28>>2]&31](s);u=u<<3;s=Wp(u)|0;c[v+48>>2]=s;fq(s|0,t|0,u|0)|0;i=w;return v|0}function Zd(a){a=a|0;var b=0,d=0.0,e=0,f=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.0,t=0.0,u=0.0;l=c[a+52>>2]|0;i=c[a+56>>2]|0;j=c[a+48>>2]|0;n=c[a+44>>2]|0;k=c[a+40>>2]|0;h=c[n+((c[a>>2]|0)+-2<<2)>>2]|0;m=a+4|0;f=c[m>>2]|0;b=c[f+(h<<3)+4>>2]|0;c[l>>2]=c[f+(h<<3)>>2];c[l+4>>2]=b;b=c[a>>2]|0;h=k+1|0;if((h|0)!=(b|0)){e=0;do{e=e+1|0;g[l+(e<<3)>>2]=0.0;g[l+(e<<3)+4>>2]=0.0;b=c[a>>2]|0}while(e>>>0<(h-b|0)>>>0)}e=b+-1|0;if(e>>>0>1){f=1;do{q=c[n+(e+~f<<2)>>2]|0;r=c[m>>2]|0;p=c[r+(q<<3)+4>>2]|0;o=h+f-b|0;c[l+(o<<3)>>2]=c[r+(q<<3)>>2];c[l+(o<<3)+4>>2]=p;f=f+1|0;b=c[a>>2]|0;e=b+-1|0}while(e>>>0>f>>>0)}r=c[a+60>>2]|0;rb[c[r+28>>2]&31](r);if(k|0){b=0;do{t=+g[j+(b<<3)>>2];d=+g[j+(b<<3)+4>>2];q=i+(b<<3)|0;s=+g[q>>2];r=i+(b<<3)+4|0;u=+g[r>>2];g[q>>2]=s*t-u*d;g[r>>2]=u*t+s*d;b=b+1|0}while((b|0)!=(k|0))}f=c[a+64>>2]|0;rb[c[f+28>>2]&31](f);f=a+8|0;r=c[f>>2]|0;g[r>>2]=0.0;g[r+4>>2]=0.0;if(c[a>>2]|0){e=0;do{q=c[m>>2]|0;r=c[f>>2]|0;b=r+4|0;u=+g[b>>2]+ +g[q+(e<<3)+4>>2];g[r>>2]=+g[r>>2]+ +g[q+(e<<3)>>2];g[b>>2]=u;e=e+1|0;b=c[a>>2]|0}while(e>>>0>>0);if((b|0)==1)return}d=+(k>>>0);b=0;do{r=c[n+(b<<2)>>2]|0;p=c[m>>2]|0;u=+g[p+4>>2]+ +g[l+(b<<3)+4>>2]/d;q=c[f>>2]|0;g[q+(r<<3)>>2]=+g[p>>2]+ +g[l+(b<<3)>>2]/d;g[q+(r<<3)+4>>2]=u;b=b+1|0}while(b>>>0<((c[a>>2]|0)+-1|0)>>>0);return}function _d(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.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.0;u=i;i=i+32|0;if((i|0)>=(j|0))ba();q=u+16|0;r=u+8|0;s=u;t=Wp(72)|0;c[t>>2]=a;c[t+4>>2]=b;c[t+8>>2]=d;c[t+16>>2]=f;b=(e|0)==1;n=b?1:-1;c[t+20>>2]=n;c[t+12>>2]=n;c[t+24>>2]=5;n=t+40|0;c[n>>2]=0;f=t+44|0;c[f>>2]=0;switch(a|0){case 2:{c[t+28>>2]=9;i=u;return t|0}case 3:{c[t+28>>2]=10;i=u;return t|0}case 4:{c[t+28>>2]=11;i=u;return t|0}case 5:{c[t+28>>2]=12;i=u;return t|0}case 6:{c[t+28>>2]=13;i=u;return t|0}case 7:{c[t+28>>2]=14;i=u;return t|0}case 8:{c[t+28>>2]=15;i=u;return t|0}default:{e=t+28|0;if((a|0)==16){c[e>>2]=16;i=u;return t|0}c[e>>2]=17;o=Wp(a<<3)|0;c[n>>2]=o;p=Wp(a<<2)|0;c[f>>2]=p;if(!a){i=u;return t|0}h=b?-6.283185307179586:6.283185307179586;d=s+4|0;k=r+4|0;if(a>>>0>1){l=o;m=a;e=0}else{e=a+-1|0;f=0;do{c[p+(f<<2)>>2]=Xc(o,e)|0;f=f+1|0}while(f>>>0>>0);i=u;return t|0}while(1){f=a;b=1;while(1){w=+((_(b,e)|0)>>>0)*h/+(f>>>0);g[s>>2]=0.0;g[d>>2]=w;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Ho(r,q);v=c[k>>2]|0;f=b+-1|0;c[l+(f<<3)>>2]=c[r>>2];c[l+(f<<3)+4>>2]=v;b=b+1|0;if(b>>>0>=m>>>0)break;else f=m}c[p+(e<<2)>>2]=Xc(o,m+-1|0)|0;e=e+1|0;if((e|0)==(a|0))break;l=c[n>>2]|0;m=c[t>>2]|0}i=u;return t|0}}return 0}function $d(a){a=a|0;var b=0.0,d=0,e=0,f=0;d=a+4|0;f=c[d>>2]|0;b=+g[f+12>>2]+ +g[f+4>>2];a=a+8|0;e=c[a>>2]|0;g[e>>2]=+g[f+8>>2]+ +g[f>>2];g[e+4>>2]=b;d=c[d>>2]|0;b=+g[d+4>>2]-+g[d+12>>2];a=c[a>>2]|0;g[a+8>>2]=+g[d>>2]-+g[d+8>>2];g[a+12>>2]=b;return}function ae(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0,h=0.0,k=0,l=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,v=0,w=0,x=0,y=0;m=i;i=i+48|0;if((i|0)>=(j|0))ba();t=m+32|0;v=m+24|0;w=m+16|0;k=m+8|0;u=m;l=a+4|0;y=c[l>>2]|0;s=+g[y+12>>2]+ +g[y+4>>2]+ +g[y+20>>2];b=a+8|0;x=c[b>>2]|0;g[x>>2]=+g[y+8>>2]+ +g[y>>2]+ +g[y+16>>2];g[x+4>>2]=s;x=c[l>>2]|0;s=+g[x+8>>2];p=+g[x+12>>2];r=+g[x+4>>2];d=+g[x>>2];e=+g[x+16>>2];q=+g[x+20>>2];g[w>>2]=-.5;g[w+4>>2]=-.8660253882408142;c[t>>2]=c[w>>2];c[t+4>>2]=c[w+4>>2];Jo(v,t);o=+g[v>>2];f=+g[v+4>>2];d=p*.8660253882408142-s*.5+d+(o*e-f*q);e=p*-.5-s*.8660253882408142+r+o*q+f*e;v=c[l>>2]|0;f=+g[v>>2];q=+g[v+4>>2];o=+g[v+8>>2];r=+g[v+12>>2];g[u>>2]=-.5;g[u+4>>2]=-.8660253882408142;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];Jo(k,t);s=+g[k>>2];p=+g[k+4>>2];l=c[l>>2]|0;h=+g[l+16>>2];n=+g[l+20>>2];f=s*o+f-p*r-h*.5+n*.8660253882408142;h=s*r+q+p*o+(n*-.5-h*.8660253882408142);l=c[b>>2]|0;k=l+8|0;l=l+12|0;if((c[a+12>>2]|0)==1){g[k>>2]=d;g[l>>2]=e;y=c[b>>2]|0;g[y+16>>2]=f;g[y+20>>2]=h;i=m;return}else{g[k>>2]=f;g[l>>2]=h;y=c[b>>2]|0;g[y+16>>2]=d;g[y+20>>2]=e;i=m;return}}function be(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=0.0,i=0.0,j=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0;l=c[a+4>>2]|0;p=c[a+8>>2]|0;z=c[l>>2]|0;y=c[l+4>>2]|0;m=p+4|0;c[p>>2]=z;c[m>>2]=y;B=c[l+16>>2]|0;A=c[l+20>>2]|0;f=p+8|0;b=p+12|0;c[f>>2]=B;c[b>>2]=A;x=c[l+8>>2]|0;w=c[l+12>>2]|0;t=p+16|0;s=p+20|0;c[t>>2]=x;c[s>>2]=w;q=+g[l+24>>2];n=+g[l+28>>2];l=p+24|0;j=p+28|0;r=(c[k>>2]=B,+g[k>>2]);o=(c[k>>2]=A,+g[k>>2]);u=(c[k>>2]=z,+g[k>>2]);v=(c[k>>2]=y,+g[k>>2]);h=u-r;e=v-o;g[f>>2]=h;g[b>>2]=e;r=u+r;o=v+o;v=(c[k>>2]=x,+g[k>>2]);u=(c[k>>2]=w,+g[k>>2]);d=v-q;i=u-n;g[l>>2]=d;g[j>>2]=i;q=v+q;n=u+n;g[t>>2]=r-q;g[s>>2]=o-n;g[p>>2]=r+q;g[m>>2]=o+n;a=(c[a+12>>2]|0)==-1;i=a?-i:i;d=a?d:-d;g[l>>2]=h-i;g[j>>2]=e-d;g[f>>2]=i+h;g[b>>2]=e+d;return}function ce(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0.0,k=0.0,l=0.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.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,O=0.0,P=0.0,Q=0.0;D=i;i=i+80|0;if((i|0)>=(j|0))ba();n=D+64|0;d=D+56|0;e=D+48|0;m=D+40|0;f=D+32|0;y=D+24|0;z=D+16|0;A=D+8|0;B=D;C=c[a+4>>2]|0;o=c[a+8>>2]|0;p=C+4|0;q=C+8|0;r=C+12|0;s=C+16|0;t=C+20|0;u=C+24|0;v=C+28|0;w=C+32|0;x=C+36|0;l=+g[r>>2]+ +g[p>>2]+ +g[t>>2]+ +g[v>>2]+ +g[x>>2];g[o>>2]=+g[q>>2]+ +g[C>>2]+ +g[s>>2]+ +g[u>>2]+ +g[w>>2];g[o+4>>2]=l;if((c[a+12>>2]|0)==-1){g[e>>2]=.30901700258255005;g[e+4>>2]=-.9510565400123596;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];Jo(d,n);h=+g[d>>2];k=+g[d+4>>2];g[f>>2]=-.80901700258255;g[f+4>>2]=-.5877852439880371;c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];Jo(m,n);l=+g[m>>2];b=+g[m+4>>2]}else{h=.30901700258255005;k=-.9510565400123596;l=-.80901700258255;b=-.5877852439880371}g[z>>2]=h;g[z+4>>2]=k;c[n>>2]=c[z>>2];c[n+4>>2]=c[z+4>>2];Jo(y,n);N=+g[y>>2];G=+g[y+4>>2];g[B>>2]=l;g[B+4>>2]=b;c[n>>2]=c[B>>2];c[n+4>>2]=c[B+4>>2];Jo(A,n);P=+g[A>>2];I=+g[A+4>>2];L=+g[q>>2];O=+g[r>>2];K=+g[s>>2];J=+g[t>>2];H=+g[u>>2];E=+g[v>>2];Q=+g[w>>2];F=+g[x>>2];M=O*h+L*k+K*b+J*l+H*I+E*P+Q*G+F*N+ +g[p>>2];g[o+8>>2]=K*l+L*h+H*P+Q*N-F*G+ +g[C>>2]-(J*b+O*k+E*I);g[o+12>>2]=M;M=+g[q>>2];E=+g[r>>2];O=+g[s>>2];J=+g[t>>2];F=+g[u>>2];Q=+g[v>>2];H=+g[w>>2];L=+g[x>>2];K=E*l+M*b+O*G+J*N+F*k+Q*h+H*I+L*P+ +g[p>>2];g[o+16>>2]=O*N+M*l+F*h+H*P-L*I+ +g[C>>2]-(J*G+E*b+Q*k);g[o+20>>2]=K;K=+g[q>>2];Q=+g[r>>2];E=+g[s>>2];J=+g[t>>2];L=+g[u>>2];H=+g[v>>2];F=+g[w>>2];M=+g[x>>2];O=Q*P+K*I+E*k+J*h+L*G+H*N+F*b+M*l+ +g[p>>2];g[o+24>>2]=E*h+K*P+L*N+F*l-M*b+ +g[C>>2]-(J*k+Q*I+H*G);g[o+28>>2]=O;O=+g[q>>2];H=+g[r>>2];Q=+g[s>>2];J=+g[t>>2];M=+g[u>>2];F=+g[v>>2];L=+g[w>>2];K=+g[x>>2];E=H*N+O*G+Q*I+J*P+M*b+F*l+L*k+K*h+ +g[p>>2];g[o+32>>2]=Q*P+O*N+M*l+L*h-K*k+ +g[C>>2]-(J*I+H*G+F*b);g[o+36>>2]=E;i=D;return}function de(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.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.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0;J=i;i=i+80|0;if((i|0)>=(j|0))ba();f=J+64|0;h=J+56|0;k=J+48|0;v=J+40|0;l=J+32|0;m=J+24|0;n=J+16|0;u=J+8|0;o=J;I=c[a+4>>2]|0;w=c[a+8>>2]|0;x=I+4|0;y=I+8|0;z=I+12|0;A=I+16|0;B=I+20|0;C=I+24|0;D=I+28|0;E=I+32|0;F=I+36|0;G=I+40|0;H=I+44|0;t=+g[z>>2]+ +g[x>>2]+ +g[B>>2]+ +g[D>>2]+ +g[F>>2]+ +g[H>>2];g[w>>2]=+g[y>>2]+ +g[I>>2]+ +g[A>>2]+ +g[C>>2]+ +g[E>>2]+ +g[G>>2];g[w+4>>2]=t;if((c[a+12>>2]|0)==1){g[k>>2]=.5;g[k+4>>2]=-.8660253882408142;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];Jo(h,f);r=-+g[h>>2];s=-+g[h+4>>2];g[l>>2]=.5;g[l+4>>2]=-.8660253882408142;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];Jo(v,f);p=.5;q=-.8660253882408142;t=-.5;d=.8660253882408142;e=+g[v>>2];b=+g[v+4>>2]}else{g[n>>2]=.5;g[n+4>>2]=-.8660253882408142;c[f>>2]=c[n>>2];c[f+4>>2]=c[n+4>>2];Jo(m,f);p=+g[m>>2];q=+g[m+4>>2];g[o>>2]=.5;g[o+4>>2]=-.8660253882408142;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];Jo(u,f);r=-.5;s=.8660253882408142;t=-+g[u>>2];d=-+g[u+4>>2];e=.5;b=-.8660253882408142}O=+g[y>>2];R=+g[z>>2];K=+g[A>>2];S=+g[B>>2];P=+g[E>>2];Q=+g[F>>2];M=+g[G>>2];L=+g[H>>2];N=R*p+O*q+K*s+S*r+P*d+Q*t+M*b+L*e+ +g[x>>2]-+g[D>>2];g[w+8>>2]=K*r+O*p+P*t+M*e-L*b+ +g[I>>2]-+g[C>>2]-(S*s+R*q+Q*d);g[w+12>>2]=N;N=+g[B>>2];Q=+g[H>>2];R=+g[G>>2]+ +g[A>>2];S=+g[E>>2]+ +g[y>>2];L=+g[F>>2]+ +g[z>>2];M=L*r+S*s+ +g[x>>2]+R*d+ +g[D>>2]+(Q+N)*t;g[w+16>>2]=R*t+S*r-Q*d+ +g[I>>2]+ +g[C>>2]-(L*s+N*d);g[w+20>>2]=M;M=+g[x>>2]-+g[z>>2]+ +g[B>>2]-+g[D>>2]+ +g[F>>2]-+g[H>>2];g[w+24>>2]=+g[I>>2]-+g[y>>2]+ +g[A>>2]-+g[C>>2]+ +g[E>>2]-+g[G>>2];g[w+28>>2]=M;M=+g[B>>2];N=+g[H>>2];L=+g[G>>2]+ +g[A>>2];Q=+g[E>>2]+ +g[y>>2];S=+g[F>>2]+ +g[z>>2];R=S*t+Q*d+ +g[x>>2]+L*s+ +g[D>>2]+(N+M)*r;g[w+32>>2]=L*r+Q*t-N*s+ +g[I>>2]+ +g[C>>2]-(S*d+M*s);g[w+36>>2]=R;R=+g[y>>2];M=+g[z>>2];S=+g[A>>2];N=+g[B>>2];Q=+g[E>>2];L=+g[F>>2];P=+g[G>>2];O=+g[H>>2];K=M*e+R*b+S*d+N*t+Q*s+L*r+P*q+O*p+ +g[x>>2]-+g[D>>2];g[w+40>>2]=S*t+R*e+Q*r+P*p-O*q+ +g[I>>2]-+g[C>>2]-(N*d+M*b+L*s);g[w+44>>2]=K;i=J;return}function ee(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0,k=0,l=0.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,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.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.0,aa=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0;N=i;i=i+112|0;if((i|0)>=(j|0))ba();r=N+96|0;d=N+88|0;e=N+80|0;f=N+72|0;h=N+64|0;q=N+56|0;k=N+48|0;J=N+40|0;K=N+32|0;L=N+24|0;M=N+16|0;s=N+8|0;t=N;u=c[a+4>>2]|0;v=c[a+8>>2]|0;w=u+4|0;x=u+8|0;y=u+12|0;z=u+16|0;A=u+20|0;B=u+24|0;C=u+28|0;D=u+32|0;E=u+36|0;F=u+40|0;G=u+44|0;H=u+48|0;I=u+52|0;p=+g[y>>2]+ +g[w>>2]+ +g[A>>2]+ +g[C>>2]+ +g[E>>2]+ +g[G>>2]+ +g[I>>2];g[v>>2]=+g[x>>2]+ +g[u>>2]+ +g[z>>2]+ +g[B>>2]+ +g[D>>2]+ +g[F>>2]+ +g[H>>2];g[v+4>>2]=p;if((c[a+12>>2]|0)==1){l=.6234897971153259;m=-.7818315029144287;n=-.22252093255519867;o=-.9749279022216797;p=-.9009688496589661;b=-.4338837265968323}else{g[e>>2]=.6234897971153259;g[e+4>>2]=-.7818315029144287;c[r>>2]=c[e>>2];c[r+4>>2]=c[e+4>>2];Jo(d,r);l=+g[d>>2];m=+g[d+4>>2];g[h>>2]=-.22252093255519867;g[h+4>>2]=-.9749279022216797;c[r>>2]=c[h>>2];c[r+4>>2]=c[h+4>>2];Jo(f,r);n=+g[f>>2];o=+g[f+4>>2];g[k>>2]=-.9009688496589661;g[k+4>>2]=-.4338837265968323;c[r>>2]=c[k>>2];c[r+4>>2]=c[k+4>>2];Jo(q,r);p=+g[q>>2];b=+g[q+4>>2]}g[K>>2]=p;g[K+4>>2]=b;c[r>>2]=c[K>>2];c[r+4>>2]=c[K+4>>2];Jo(J,r);$=+g[J>>2];R=+g[J+4>>2];g[M>>2]=n;g[M+4>>2]=o;c[r>>2]=c[M>>2];c[r+4>>2]=c[M+4>>2];Jo(L,r);ea=+g[L>>2];V=+g[L+4>>2];g[t>>2]=l;g[t+4>>2]=m;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];Jo(s,r);ca=+g[s>>2];T=+g[s+4>>2];aa=+g[x>>2];O=+g[y>>2];P=+g[z>>2];S=+g[A>>2];da=+g[B>>2];W=+g[C>>2];Q=+g[D>>2];_=+g[E>>2];Z=+g[F>>2];fa=+g[G>>2];X=+g[H>>2];Y=+g[I>>2];U=O*l+aa*m+P*o+S*n+da*b+W*p+Q*R+_*$+Z*V+fa*ea+X*T+Y*ca+ +g[w>>2];g[v+8>>2]=P*n+aa*l+da*p+Q*$+Z*ea+X*ca-Y*T+ +g[u>>2]-(S*o+O*m+W*b+_*R+fa*V);g[v+12>>2]=U;U=+g[x>>2];fa=+g[y>>2];_=+g[z>>2];W=+g[A>>2];O=+g[B>>2];S=+g[C>>2];Y=+g[D>>2];X=+g[E>>2];Z=+g[F>>2];Q=+g[G>>2];da=+g[H>>2];aa=+g[I>>2];P=fa*n+U*o+_*R+W*$+O*T+S*ca+Y*m+X*l+Z*b+Q*p+da*V+aa*ea+ +g[w>>2];g[v+16>>2]=_*$+U*n+O*ca+Y*l+Z*p+da*ea-aa*V+ +g[u>>2]-(W*R+fa*o+S*T+X*m+Q*b);g[v+20>>2]=P;P=+g[x>>2];Q=+g[y>>2];X=+g[z>>2];S=+g[A>>2];fa=+g[B>>2];W=+g[C>>2];aa=+g[D>>2];da=+g[E>>2];Z=+g[F>>2];Y=+g[G>>2];O=+g[H>>2];U=+g[I>>2];_=Q*p+P*b+X*T+S*ca+fa*o+W*n+aa*V+da*ea+Z*m+Y*l+O*R+U*$+ +g[w>>2];g[v+24>>2]=X*ca+P*p+fa*n+aa*ea+Z*l+O*$-U*R+ +g[u>>2]-(S*T+Q*b+W*o+da*V+Y*m);g[v+28>>2]=_;_=+g[x>>2];Y=+g[y>>2];da=+g[z>>2];W=+g[A>>2];Q=+g[B>>2];S=+g[C>>2];U=+g[D>>2];O=+g[E>>2];Z=+g[F>>2];aa=+g[G>>2];fa=+g[H>>2];P=+g[I>>2];X=Y*$+_*R+da*m+W*l+Q*V+S*ea+U*o+O*n+Z*T+aa*ca+fa*b+P*p+ +g[w>>2];g[v+32>>2]=da*l+_*$+Q*ea+U*n+Z*ca+fa*p-P*b+ +g[u>>2]-(W*m+Y*R+S*V+O*o+aa*T);g[v+36>>2]=X;X=+g[x>>2];aa=+g[y>>2];O=+g[z>>2];S=+g[A>>2];Y=+g[B>>2];W=+g[C>>2];P=+g[D>>2];fa=+g[E>>2];Z=+g[F>>2];U=+g[G>>2];Q=+g[H>>2];_=+g[I>>2];da=aa*ea+X*V+O*b+S*p+Y*m+W*l+P*T+fa*ca+Z*R+U*$+Q*o+_*n+ +g[w>>2];g[v+40>>2]=O*p+X*ea+Y*l+P*ca+Z*$+Q*n-_*o+ +g[u>>2]-(S*b+aa*V+W*m+fa*T+U*R);g[v+44>>2]=da;da=+g[x>>2];U=+g[y>>2];fa=+g[z>>2];W=+g[A>>2];aa=+g[B>>2];S=+g[C>>2];_=+g[D>>2];Q=+g[E>>2];Z=+g[F>>2];P=+g[G>>2];Y=+g[H>>2];X=+g[I>>2];O=U*ca+da*T+fa*V+W*ea+aa*R+S*$+_*b+Q*p+Z*o+P*n+Y*m+X*l+ +g[w>>2];g[v+48>>2]=fa*ea+da*ca+aa*$+_*p+Z*n+Y*l-X*m+ +g[u>>2]-(W*V+U*T+S*R+Q*b+P*o);g[v+52>>2]=O;i=N;return}function fe(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=0,i=0.0,j=0.0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0,E=0.0,F=0,G=0.0,H=0.0,I=0,J=0,K=0.0,L=0.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;f=c[a+4>>2]|0;F=c[a+8>>2]|0;l=(c[a+12>>2]|0)==1;X=c[f>>2]|0;W=c[f+4>>2]|0;D=F+4|0;c[F>>2]=X;c[D>>2]=W;Z=c[f+32>>2]|0;Y=c[f+36>>2]|0;x=F+8|0;u=F+12|0;c[x>>2]=Z;c[u>>2]=Y;T=c[f+16>>2]|0;S=c[f+20>>2]|0;p=F+16|0;m=F+20|0;c[p>>2]=T;c[m>>2]=S;V=c[f+48>>2]|0;U=c[f+52>>2]|0;a=F+24|0;e=F+28|0;c[a>>2]=V;c[e>>2]=U;P=c[f+8>>2]|0;O=c[f+12>>2]|0;J=F+32|0;I=F+36|0;c[J>>2]=P;c[I>>2]=O;R=c[f+40>>2]|0;Q=c[f+44>>2]|0;B=F+40|0;A=F+44|0;c[B>>2]=R;c[A>>2]=Q;N=c[f+24>>2]|0;M=c[f+28>>2]|0;t=F+48|0;s=F+52|0;c[t>>2]=N;c[s>>2]=M;G=+g[f+56>>2];v=+g[f+60>>2];f=F+56|0;h=F+60|0;q=(c[k>>2]=Z,+g[k>>2]);n=(c[k>>2]=Y,+g[k>>2]);E=(c[k>>2]=X,+g[k>>2]);H=(c[k>>2]=W,+g[k>>2]);d=E-q;b=H-n;g[x>>2]=d;g[u>>2]=b;q=E+q;n=H+n;H=(c[k>>2]=V,+g[k>>2]);E=(c[k>>2]=U,+g[k>>2]);i=(c[k>>2]=T,+g[k>>2]);j=(c[k>>2]=S,+g[k>>2]);w=i-H;z=j-E;g[a>>2]=w;g[e>>2]=z;H=i+H;E=j+E;j=(c[k>>2]=R,+g[k>>2]);i=(c[k>>2]=Q,+g[k>>2]);r=(c[k>>2]=P,+g[k>>2]);o=(c[k>>2]=O,+g[k>>2]);L=r-j;K=o-i;g[B>>2]=L;g[A>>2]=K;j=r+j;i=o+i;o=(c[k>>2]=N,+g[k>>2]);r=(c[k>>2]=M,+g[k>>2]);y=o-G;C=r-v;g[f>>2]=y;g[h>>2]=C;G=o+G;v=r+v;r=q-H;o=n-E;g[p>>2]=r;g[m>>2]=o;H=q+H;E=n+E;g[F>>2]=H;g[D>>2]=E;n=j-G;q=i-v;g[t>>2]=n;g[s>>2]=q;G=j+G;v=i+v;g[J>>2]=G;g[I>>2]=v;z=l?z:-z;w=l?-w:w;i=d-z;j=b-w;g[a>>2]=i;g[e>>2]=j;z=d+z;w=b+w;g[x>>2]=z;g[u>>2]=w;C=l?C:-C;y=l?-y:y;b=L-C;d=K-y;g[f>>2]=b;g[h>>2]=d;C=L+C;y=K+y;g[B>>2]=C;g[A>>2]=y;g[J>>2]=H-G;g[I>>2]=E-v;g[F>>2]=H+G;g[D>>2]=E+v;v=(y+(l?-C:C))*.7071067811865476;y=(C+(l?y:-y))*.7071067811865476;g[B>>2]=z-y;g[A>>2]=w-v;g[x>>2]=z+y;g[u>>2]=w+v;q=l?q:-q;n=l?-n:n;g[t>>2]=r-q;g[s>>2]=o-n;g[p>>2]=r+q;g[m>>2]=o+n;if(l){K=(b-d)*-.7071067811865476;L=(d+b)*-.7071067811865476;G=i-K;H=j-L;g[f>>2]=G;g[h>>2]=H;K=i+K;L=j+L;g[a>>2]=K;g[e>>2]=L;return}else{K=b*-.7071067811865476-d*.7071067811865476;L=(b-d)*.7071067811865476;G=i-K;H=j-L;g[f>>2]=G;g[h>>2]=H;K=i+K;L=j+L;g[a>>2]=K;g[e>>2]=L;return}}function ge(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=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,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,O=0.0,P=0.0,Q=0.0,R=0.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.0,xa=0.0;va=c[a+4>>2]|0;U=c[a+8>>2]|0;ia=(c[a+12>>2]|0)==1;V=c[va+4>>2]|0;a=U+4|0;c[U>>2]=c[va>>2];c[a>>2]=V;V=c[va+68>>2]|0;W=U+8|0;X=U+12|0;c[W>>2]=c[va+64>>2];c[X>>2]=V;V=c[va+36>>2]|0;Y=U+16|0;Z=U+20|0;c[Y>>2]=c[va+32>>2];c[Z>>2]=V;V=c[va+100>>2]|0;_=U+24|0;$=U+28|0;c[_>>2]=c[va+96>>2];c[$>>2]=V;V=c[va+20>>2]|0;aa=U+32|0;ba=U+36|0;c[aa>>2]=c[va+16>>2];c[ba>>2]=V;V=c[va+84>>2]|0;ca=U+40|0;da=U+44|0;c[ca>>2]=c[va+80>>2];c[da>>2]=V;V=c[va+52>>2]|0;ea=U+48|0;fa=U+52|0;c[ea>>2]=c[va+48>>2];c[fa>>2]=V;V=c[va+116>>2]|0;ga=U+56|0;ha=U+60|0;c[ga>>2]=c[va+112>>2];c[ha>>2]=V;V=c[va+12>>2]|0;S=U+64|0;T=U+68|0;c[S>>2]=c[va+8>>2];c[T>>2]=V;V=c[va+76>>2]|0;ja=U+72|0;ka=U+76|0;c[ja>>2]=c[va+72>>2];c[ka>>2]=V;V=c[va+44>>2]|0;la=U+80|0;ma=U+84|0;c[la>>2]=c[va+40>>2];c[ma>>2]=V;V=c[va+108>>2]|0;na=U+88|0;oa=U+92|0;c[na>>2]=c[va+104>>2];c[oa>>2]=V;V=c[va+28>>2]|0;pa=U+96|0;qa=U+100|0;c[pa>>2]=c[va+24>>2];c[qa>>2]=V;V=c[va+92>>2]|0;ra=U+104|0;sa=U+108|0;c[ra>>2]=c[va+88>>2];c[sa>>2]=V;V=c[va+60>>2]|0;ta=U+112|0;ua=U+116|0;c[ta>>2]=c[va+56>>2];c[ua>>2]=V;x=+g[va+120>>2];z=+g[va+124>>2];va=U+120|0;V=U+124|0;D=+g[W>>2];C=+g[X>>2];u=+g[U>>2];s=+g[a>>2];g[W>>2]=u-D;g[X>>2]=s-C;D=u+D;C=s+C;s=+g[_>>2];u=+g[$>>2];E=+g[Y>>2];F=+g[Z>>2];g[_>>2]=E-s;g[$>>2]=F-u;s=E+s;u=F+u;F=+g[ca>>2];E=+g[da>>2];v=+g[aa>>2];t=+g[ba>>2];g[ca>>2]=v-F;g[da>>2]=t-E;F=v+F;E=t+E;t=+g[ga>>2];v=+g[ha>>2];G=+g[ea>>2];H=+g[fa>>2];b=G-t;d=H-v;g[ga>>2]=b;g[ha>>2]=d;t=G+t;v=H+v;H=+g[ja>>2];G=+g[ka>>2];y=+g[S>>2];w=+g[T>>2];e=y-H;f=w-G;g[ja>>2]=e;g[ka>>2]=f;H=y+H;G=w+G;w=+g[na>>2];y=+g[oa>>2];l=+g[la>>2];m=+g[ma>>2];h=l-w;i=m-y;g[na>>2]=h;g[oa>>2]=i;w=l+w;y=m+y;m=+g[ra>>2];l=+g[sa>>2];A=+g[pa>>2];B=+g[qa>>2];j=A-m;p=B-l;g[ra>>2]=j;g[sa>>2]=p;m=A+m;l=B+l;B=+g[ta>>2];A=+g[ua>>2];q=B-x;k=A-z;g[va>>2]=q;g[V>>2]=k;x=B+x;z=A+z;A=D-s;B=C-u;g[Y>>2]=A;g[Z>>2]=B;s=D+s;u=C+u;g[U>>2]=s;g[a>>2]=u;C=F-t;D=E-v;g[ea>>2]=C;g[fa>>2]=D;t=F+t;v=E+v;g[aa>>2]=t;g[ba>>2]=v;E=H-w;F=G-y;g[la>>2]=E;g[ma>>2]=F;w=H+w;y=G+y;g[S>>2]=w;g[T>>2]=y;G=m-x;H=l-z;g[ta>>2]=G;g[ua>>2]=H;x=m+x;z=l+z;g[pa>>2]=x;g[qa>>2]=z;l=+g[_>>2];m=+g[$>>2];n=+g[W>>2];o=+g[X>>2];if(ia){P=n-m;Q=o+l;g[_>>2]=P;g[$>>2]=Q;L=n+m;O=o-l;g[W>>2]=L;g[X>>2]=O;M=+g[ca>>2];N=+g[da>>2];m=M-d;l=N+b;g[ga>>2]=m;g[ha>>2]=l;d=M+d;b=N-b;g[ca>>2]=d;g[da>>2]=b;N=e-i;M=f+h;g[na>>2]=N;g[oa>>2]=M;i=e+i;n=f-h;g[ja>>2]=i;g[ka>>2]=n;o=j-k;R=p+q;g[va>>2]=o;g[V>>2]=R;r=j+k;e=p-q;f=L;h=O;j=n;k=m;m=P;n=Q;p=R}else{P=n+m;Q=o-l;g[_>>2]=P;g[$>>2]=Q;L=n-m;O=o+l;g[W>>2]=L;g[X>>2]=O;M=+g[ca>>2];N=+g[da>>2];m=M+d;l=N-b;g[ga>>2]=m;g[ha>>2]=l;d=M-d;b=N+b;g[ca>>2]=d;g[da>>2]=b;N=e+i;M=f-h;g[na>>2]=N;g[oa>>2]=M;i=e-i;n=f+h;g[ja>>2]=i;g[ka>>2]=n;o=j+k;R=p-q;g[va>>2]=o;g[V>>2]=R;r=j-k;e=p+q;f=L;h=O;j=n;k=m;m=P;n=Q;p=R}g[ra>>2]=r;g[sa>>2]=e;Q=s-t;R=u-v;g[aa>>2]=Q;g[ba>>2]=R;L=s+t;K=u+v;g[U>>2]=L;g[a>>2]=K;O=w-x;P=y-z;g[pa>>2]=O;g[qa>>2]=P;J=w+x;I=y+z;g[S>>2]=J;g[T>>2]=I;if(ia){wa=(b+d)*.70710677;b=(b-d)*.70710677;v=f-wa;w=h-b;g[ca>>2]=v;g[da>>2]=w;wa=f+wa;h=h+b;g[W>>2]=wa;g[X>>2]=h;b=r;t=e;f=(t+b)*.70710677;b=(t-b)*.70710677;t=i-f;u=j-b;g[ra>>2]=t;g[sa>>2]=u;f=f+i;b=b+j;g[ja>>2]=f;g[ka>>2]=b;z=A-D;j=B+C;g[ea>>2]=z;g[fa>>2]=j;A=A+D;q=B-C;g[Y>>2]=A;g[Z>>2]=q;x=E-H;y=F+G;g[ta>>2]=x;g[ua>>2]=y;E=E+H;H=F-G;g[la>>2]=E;g[ma>>2]=H;s=k;B=l;r=(s-B)*-.70710677;s=(B+s)*-.70710677;B=m-r;C=n-s;g[ga>>2]=B;g[ha>>2]=C;r=r+m;s=s+n;g[_>>2]=r;g[$>>2]=s;l=o;e=p;d=(e+l)*-.70710677;e=(l-e)*-.70710677;l=wa;m=h;n=E;o=H;p=A;A=j}else{xa=(d-b)*.70710677;b=(b+d)*.70710677;v=f-xa;w=h-b;g[ca>>2]=v;g[da>>2]=w;xa=f+xa;h=h+b;g[W>>2]=xa;g[X>>2]=h;b=r;t=e;f=(b-t)*.70710677;b=(t+b)*.70710677;t=i-f;u=j-b;g[ra>>2]=t;g[sa>>2]=u;f=f+i;b=b+j;g[ja>>2]=f;g[ka>>2]=b;z=A+D;wa=B-C;g[ea>>2]=z;g[fa>>2]=wa;A=A-D;q=B+C;g[Y>>2]=A;g[Z>>2]=q;x=E+H;y=F-G;g[ta>>2]=x;g[ua>>2]=y;E=E-H;H=F+G;g[la>>2]=E;g[ma>>2]=H;B=k;s=l;r=B*-.70710677-s*.70710677;s=(B-s)*.70710677;B=m-r;C=n-s;g[ga>>2]=B;g[ha>>2]=C;r=r+m;s=s+n;g[_>>2]=r;g[$>>2]=s;l=o;e=p;d=(l-e)*.70710677;e=l*-.70710677-e*.70710677;l=xa;m=h;n=E;o=H;p=A;A=wa}h=e;i=d;j=N-h;k=M-i;g[va>>2]=j;g[V>>2]=k;i=i+M;h=h+N;g[na>>2]=h;g[oa>>2]=i;g[S>>2]=L-J;g[T>>2]=K-I;g[U>>2]=L+J;g[a>>2]=K+I;e=f;d=e*.9238795;e=e*.38268346;f=b*.9238795;if(ia){wa=b*.38268346+d;xa=f-e;g[ja>>2]=l-wa;g[ka>>2]=m-xa;g[W>>2]=l+wa;g[X>>2]=m+xa;xa=n;wa=o;N=(wa+xa)*.70710677;xa=(wa-xa)*.70710677;g[la>>2]=p-N;g[ma>>2]=q-xa;g[Y>>2]=N+p;g[Z>>2]=xa+q;xa=h;N=i;wa=N*.9238795+xa*.38268343;xa=N*.38268343-xa*.9238795;g[na>>2]=r-wa;g[oa>>2]=s-xa;g[_>>2]=wa+r;g[$>>2]=xa+s;g[pa>>2]=Q-P;g[qa>>2]=R+O;g[aa>>2]=Q+P;g[ba>>2]=R-O;xa=t;R=u;wa=R*.92387956-xa*.3826834;xa=R*-.3826834-xa*.92387956;g[ra>>2]=v-wa;g[sa>>2]=w-xa;g[ca>>2]=wa+v;g[da>>2]=xa+w;xa=x;wa=y;R=(xa-wa)*-.70710677;xa=(wa+xa)*-.70710677;g[ta>>2]=z-R;g[ua>>2]=A-xa;g[ea>>2]=R+z;g[fa>>2]=xa+A;xa=j;R=k;wa=R*.38268349-xa*.9238795;xa=R*-.9238795-xa*.38268349;g[va>>2]=B-wa;g[V>>2]=C-xa;xa=xa+C;wa=wa+B;g[ga>>2]=wa;g[ha>>2]=xa;return}else{xa=d-b*.38268346;wa=f+e;g[ja>>2]=l-xa;g[ka>>2]=m-wa;g[W>>2]=l+xa;g[X>>2]=m+wa;wa=n;xa=o;N=(wa-xa)*.70710677;wa=(xa+wa)*.70710677;g[la>>2]=p-N;g[ma>>2]=q-wa;g[Y>>2]=N+p;g[Z>>2]=wa+q;wa=h;N=i;xa=wa*.38268343-N*.9238795;wa=N*.38268343+wa*.9238795;g[na>>2]=r-xa;g[oa>>2]=s-wa;g[_>>2]=xa+r;g[$>>2]=wa+s;g[pa>>2]=Q+P;g[qa>>2]=R-O;g[aa>>2]=Q-P;g[ba>>2]=R+O;Q=t;R=u;wa=Q*-.3826834-R*.92387956;R=Q*.92387956-R*.3826834;g[ra>>2]=v-wa;g[sa>>2]=w-R;g[ca>>2]=wa+v;g[da>>2]=R+w;R=x;wa=y;Q=R*-.70710677-wa*.70710677;wa=(R-wa)*.70710677;g[ta>>2]=z-Q;g[ua>>2]=A-wa;g[ea>>2]=Q+z;g[fa>>2]=wa+A;wa=j;Q=k;R=wa*-.9238795-Q*.38268349;Q=wa*.38268349-Q*.9238795;wa=+g[ga>>2];xa=+g[ha>>2];g[va>>2]=wa-R;g[V>>2]=xa-Q;xa=Q+xa;wa=R+wa;g[ga>>2]=wa;g[ha>>2]=xa;return}}function he(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=0;d=c[a>>2]|0;if(!d)return;e=a+44|0;f=a+4|0;a=a+8|0;b=0;do{ed(c[(c[e>>2]|0)+(b<<2)>>2]|0,(c[f>>2]|0)+8|0,(c[a>>2]|0)+(b<<3)|0);k=c[f>>2]|0;h=c[a>>2]|0;j=h+(b<<3)|0;h=h+(b<<3)+4|0;i=+g[h>>2]+ +g[k+4>>2];g[j>>2]=+g[j>>2]+ +g[k>>2];g[h>>2]=i;b=b+1|0}while((b|0)!=(d|0));return}function ie(a){a=a|0;var b=0,d=0;switch(c[a+20>>2]|0){case -1:case 1:{switch(c[a+24>>2]|0){case 5:{b=c[a+40>>2]|0;if(b|0)Xp(b);d=a+44|0;b=c[d>>2]|0;if(b|0){if(c[a>>2]|0){Zc(c[b>>2]|0);if((c[a>>2]|0)>>>0>1){b=1;do{Zc(c[(c[d>>2]|0)+(b<<2)>>2]|0);b=b+1|0}while(b>>>0<(c[a>>2]|0)>>>0)}b=c[d>>2]|0}Xp(b)}Xp(a);return}case 1:{Xp(c[a+44>>2]|0);Xp(c[a+48>>2]|0);Xp(a);return}case 2:{ie(c[a+64>>2]|0);ie(c[a+68>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);Xp(c[a+48>>2]|0);Xp(c[a+60>>2]|0);Xp(a);return}case 3:{Xp(c[a+40>>2]|0);Xp(c[a+44>>2]|0);Xp(c[a+48>>2]|0);Xp(c[a+52>>2]|0);ie(c[a+56>>2]|0);ie(c[a+60>>2]|0);Xp(a);return}case 4:{Xp(c[a+44>>2]|0);Xp(c[a+48>>2]|0);Xp(c[a+52>>2]|0);Xp(c[a+56>>2]|0);ie(c[a+60>>2]|0);ie(c[a+64>>2]|0);Xp(a);return}default:{Pp(22156,54,1,c[2344]|0)|0;lb(1)}}break}case 23:case 22:case 21:case 20:case 13:case 12:case 11:case 10:{Xp(a);return}case 31:case 30:return;default:{Pp(22211,52,1,c[2344]|0)|0;lb(1)}}}function je(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(5,0,a,b,c,0.0,e);return}function ke(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(6,0,a,b,c,0.0,e);return}function le(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0;if(a>>>0<2){Pp(22264,54,1,c[2344]|0)|0;lb(1)}if(!b){Pp(22319,54,1,c[2344]|0)|0;lb(1)}if(d<=0.0|d>=1.0){Pp(22374,55,1,c[2344]|0)|0;lb(1)}if(e<-1.0|e>1.0){Pp(22430,54,1,c[2344]|0)|0;lb(1)}h=+(b>>>0);i=+Y(+d);h=(i*+Y(+(1.0-+P(+h,-1.600000023841858)*.088))+.06551499664783478)*i+(+Y(+h)*.067663+.762886);if(h<=0.0|h>=1.0)h=+me(b,d);j=_(a<<1,b)|0|1;i=+(a>>>0);pd(j,((1.0-h)*d+1.0)*.5/i,+ne(h*d/i,j),e,f);b=(_(b,a)|0)<<1|1;h=0.0;a=0;do{e=+g[f+(a<<2)>>2];h=e*e+h;a=a+1|0}while((a|0)!=(b|0));h=+O(+(i/h));a=0;do{j=f+(a<<2)|0;g[j>>2]=+g[j>>2]*h;a=a+1|0}while((a|0)!=(b|0));return}function me(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0;if(!a){Pp(22485,59,1,c[2344]|0)|0;lb(1)}if(b<0.0|b>1.0){Pp(22545,56,1,c[2344]|0)|0;lb(1)}do switch(a|0){case 1:{d=.7574973106384277;e=.061343029141426086;f=-.08729662746191025;break}case 2:{d=.8115186095237732;e=.07437658309936523;f=-.01427088025957346;break}case 3:{d=.8424953818321228;e=.07684185355901718;f=-.005368790123611689;break}case 4:{d=.8614078164100647;e=.07144126296043396;f=-.005586519837379456;break}case 5:{d=.8745774030685425;e=.0657869428396225;f=-.006504470016807318;break}case 6:{d=.8843879699707031;e=.06074265018105507;f=-.007364050019532442;break}case 7:{d=.8921661972999573;e=.05669236183166504;f=-.007912220433354378;break}case 8:{d=.898749828338623;e=.0536169596016407;f=-.008153010159730911;break}case 9:{d=.9046003222465515;e=.051679521799087524;f=-.008078929968178272;break}case 10:{d=.9103443026542664;e=.05130752921104431;f=-.007461919914931059;break}case 11:{d=.9158767461776733;e=.05180436000227928;f=-.006707109976559877;break}case 12:{d=.921218752861023;e=.0527380108833313;f=-.00588351022452116;break}case 13:{d=.9263819456100464;e=.054007638245821;f=-.00508452020585537;break}case 14:{d=.9312355518341064;e=.05516162887215614;f=-4.3730600737035275e-03;break}case 15:{d=.9356499314308167;e=.0559656098484993;f=-3.8815198931843042e-03;break}case 16:{d=.9397674202919006;e=.056622739881277084;f=-3.4827999770641327e-03;break}case 17:{d=.9435170292854309;e=.0569412000477314;f=-3.1882100738584995e-03;break}case 18:{d=.9455727338790894;e=.05227591097354889;f=-.004006760194897652;break}case 19:{d=.9500161409378052;e=.05681641027331352;f=-3.0062799341976643e-03;break}case 20:{d=.9528170824050903;e=.05637606978416443;f=-.003047900041565299;break}case 21:{d=.9553625583648682;e=.055758800357580185;f=-.00312987994402647;break}case 22:{d=.9575420618057251;e=.05426060035824776;f=-3.8594501093029976e-03;break}default:{d=+Y(+(+(a>>>0)+1.0000000474974513e-03))*.056873+.781388;e=.054260000586509705;f=-.003860000055283308}}while(0);b=+Y(+b);d=(b*f+e)*b+d;if(d<0.0){b=0.0;return +b}if(!(d>1.0)){b=d;return +b}b=1.0;return +b}function ne(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,k=0.0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n+8|0;d=n;f=a*14.260000228881836;e=+(b>>>0);if(a>.5|a<=0.0){b=c[2344]|0;h[d>>3]=a;Jp(b,20377,d)|0;lb(1)}else{g=.009999999776482582;k=200.0;l=0}while(1){a=(g+k)*.5;if(a<=0.0){b=4;break}b=(a+-7.949999809265137)/f>>0>=20){b=6;break}else{g=b?a:g;k=b?k:a}}if((b|0)==4){n=c[2344]|0;h[m>>3]=a;Jp(n,20442,m)|0;lb(1)}else if((b|0)==6){i=n;return +a}return +(0.0)}function oe(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();if(a>>>0<2){Pp(22602,53,1,c[2344]|0)|0;lb(1)}if(!b){Pp(22656,53,1,c[2344]|0)|0;lb(1)}if(d<=0.0|d>=1.0){Pp(22710,54,1,c[2344]|0)|0;lb(1)}if(e<-1.0|e>1.0){Pp(22765,53,1,c[2344]|0)|0;lb(1)}else{pe(a,b,d,e,f,g);i=g;return}}function pe(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=f|0;h=h|0;var i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=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;if(!a){Pp(22819,67,1,c[2344]|0)|0;lb(1)}if(!b){Pp(22887,67,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(22955,64,1,c[2344]|0)|0;lb(1)}m=+me(b,d);l=.20000000298023224;j=0;i=m;n=0.0;while(1){p=m-l;o=l+m;p=!(p<=0.0)?p:.009999999776482582;o=!(o>=1.0)?o:.9900000095367432;r=+qe(a,b,d,e,p,f);s=+qe(a,b,d,e,m,f);q=+qe(a,b,d,e,o,f);w=(j|0)==0|so){k=i;break}if(j>>>0>3?+N(+(m-k))<9.999999974752427e-07:0){k=i;break}j=j+1|0;if(j>>>0>=14){k=i;break}else l=l*.5}+qe(a,b,d,e,k,f);b=(_(b,a)|0)<<1|1;i=0.0;j=0;do{v=+g[f+(j<<2)>>2];i=v*v+i;j=j+1|0}while((j|0)!=(b|0));i=+O(+(+(a>>>0)/i));j=0;do{w=f+(j<<2)|0;g[w>>2]=+g[w>>2]*i;j=j+1|0}while((j|0)!=(b|0));g[h>>2]=k;return}function qe(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=+f;h=h|0;var k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();k=m+4|0;l=m;if(!(f<0.0)){if(f>1.0)Pp(23076,55,1,c[2344]|0)|0}else Pp(23020,55,1,c[2344]|0)|0;n=_(a<<1,b)|0|1;o=+(a>>>0);pd(n,((1.0-f)*d+1.0)*.5/o,+ne(f*d/o,n),e,h);re(h,a,b,l,k);i=m;return +(+g[l>>2])}function re(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0;n=_(b<<1,c)|0|1;i=0;f=0.0;do{l=+g[a+(i<<2)>>2];f=l*l+f;i=i+1|0}while((i|0)!=(n|0));l=f;m=c<<1;if(!m){l=0.0;h=0.0;j=+(m>>>0);j=h/j;j=+O(+j);g[d>>2]=j;g[e>>2]=l;return}else{k=1;h=0.0;f=0.0}do{i=_(k,b)|0;i=(i|0)>-1?i:0-i|0;if(i>>>0>>0){c=i;j=0.0;do{j=+g[a+(c-i<<2)>>2]*+g[a+(c<<2)>>2]+j;c=c+1|0}while((c|0)!=(n|0))}else j=0.0;j=+N(+(j/l));f=j*j+f;h=(k|0)==1|j>h?j:h;k=k+1|0}while(k>>>0<=m>>>0);l=+(m>>>0);l=f/l;l=+O(+l);g[d>>2]=l;g[e>>2]=h;return}function se(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;if(!a){Pp(23132,55,1,c[2344]|0)|0;lb(1)}if(!b){Pp(23188,55,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(23244,52,1,c[2344]|0)|0;lb(1)}s=+(a>>>0);t=+(b>>>0);l=(d+1.0)*3.141592653589793;p=1.0-d;m=p*3.141592653589793;n=d*4.0;o=n;p=o*.3183098861837907+p;q=.7853981633974483/d;r=d*.7071067690849304;a=(_(b,a)|0)<<1|1;b=0;do{h=(+(b>>>0)+e)/s-t;j=h;i=+Q(+(l*j));j=+R(+(m*j));do if(!(+N(+h)<1.0e-05)){k=h*d;k=1.0-k*k*16.0;if(k*k<1.0e-05){g[f+(b<<2)>>2]=r*(+Q(+q)*.36338022351264954+ +R(+q)*1.6366198062896729);break}else{g[f+(b<<2)>>2]=(j*(1.0/(h*n))+i)*(o/(k*3.141592653589793));break}}else g[f+(b<<2)>>2]=p;while(0);b=b+1|0}while((b|0)!=(a|0));return}function te(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+80|0;if((i|0)>=(j|0))ba();p=v+48|0;q=v+32|0;t=v+20|0;u=v+8|0;r=v+4|0;s=v;if(a>>>0<2){Pp(23297,53,1,c[2344]|0)|0;lb(1)}if(!b){Pp(23351,53,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(23405,50,1,c[2344]|0)|0;lb(1)}k=a<<1;o=_(k,b)|0|1;w=1.0/+(k>>>0);l=w;e=d;g[p>>2]=0.0;k=p+4|0;g[k>>2]=l*(1.0-e);g[p+8>>2]=w;g[p+12>>2]=w;g[p+16>>2]=l*(e+1.0);g[p+20>>2]=.5;g[q>>2]=1.0;g[q+4>>2]=.7071067690849304;g[q+8>>2]=0.0;c[t>>2]=c[2314];c[t+4>>2]=c[2315];c[t+8>>2]=c[2316];c[u>>2]=c[2317];c[u+4>>2]=c[2318];c[u+8>>2]=c[2319];m=i;i=i+((1*(o<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();ud(o,3,p,q,t,u,0,m);n=o<<2;eq(f|0,m|0,n|0)|0;re(m,a,b,s,r);e=d*.009999999776482582;d=+g[s>>2];h=0;do{g[k>>2]=(1.0-e*+(h>>>0))*l;ud(o,3,p,q,t,u,0,m);re(m,a,b,s,r);w=d;d=+g[s>>2];if(d>w)break;eq(f|0,m|0,n|0)|0;h=h+1|0}while(h>>>0<100);k=(_(b,a)|0)<<1|1;e=0.0;h=0;do{w=+g[f+(h<<2)>>2];e=w*w+e;h=h+1|0}while((h|0)!=(k|0));e=+O(+(+(a>>>0)/e));h=0;do{a=f+(h<<2)|0;g[a>>2]=+g[a>>2]*e;h=h+1|0}while((h|0)!=(k|0));i=v;return}function ue(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0;if(!a){Pp(23456,56,1,c[2344]|0)|0;lb(1)}if(!b){Pp(23513,56,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(23570,53,1,c[2344]|0)|0;lb(1)}i=+(a>>>0);h=+(b>>>0);d=d*7.546874635563872;b=(_(b,a)|0)<<1|1;a=0;do{j=+(a>>>0)/i-h+e;k=+ve(d*(j+-.5));g[f+(a<<2)>>2]=k-+ve(d*(j+.5));a=a+1|0}while((a|0)!=(b|0));d=0.0;a=0;do{d=+g[f+(a<<2)>>2]+d;a=a+1|0}while((a|0)!=(b|0));d=3.141592653589793/(d*2.0);a=0;do{l=f+(a<<2)|0;g[l>>2]=+g[l>>2]*d;a=a+1|0}while((a|0)!=(b|0));a=0;do{l=f+(a<<2)|0;g[l>>2]=+g[l>>2]*i;a=a+1|0}while((a|0)!=(b|0));return}function ve(a){a=+a;return +((1.0-+pp(a*.7071067811865476))*.5)}function we(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0;F=i;if(!a){Pp(23624,56,1,c[2344]|0)|0;lb(1)}if(!b){Pp(23681,56,1,c[2344]|0)|0;lb(1)}if(d<0.0|d>1.0){Pp(23738,53,1,c[2344]|0)|0;lb(1)}D=_(a<<1,b)|0|1;h=i;i=i+((1*(D<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();E=i;i=i+((1*(D<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();ue(a,b,d,0.0,h);m=i;i=i+((1*(D<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();n=i;i=i+((1*(D<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();p=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();A=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();x=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(D<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();od(1,a,b,d,0.0,m);B=+(a>>>0);pd(D,(d*.1+.699999988079071)/B,60.0,0.0,n);v=_(b,a)|0;C=v<<1|1;b=0;do{G=((b+v|0)>>>0)%(D>>>0)|0;c[p+(b<<3)>>2]=c[m+(G<<2)>>2];g[p+(b<<3)+4>>2]=0.0;c[q+(b<<3)>>2]=c[n+(G<<2)>>2];g[q+(b<<3)+4>>2]=0.0;c[o+(b<<3)>>2]=c[h+(G<<2)>>2];g[o+(b<<3)+4>>2]=0.0;b=b+1|0}while((b|0)!=(C|0));Kd(D,p,x,1,0);Kd(D,q,y,1,0);Kd(D,o,w,1,0);t=+g[x>>2];s=+g[y>>2];r=0.0;e=0.0;d=0.0;b=0;while(1){l=+g[w+(b<<3)>>2];if(b){d=l>2];e=k>2];if(k>2];k=d;b=0;while(1){g[z+(b<<3)>>2]=(l+ +g[x+(b<<3)>>2])/(e+ +g[w+(b<<3)>>2])*((k-r)/d);g[z+(b<<3)+4>>2]=0.0;b=b+1|0;if((b|0)==(C|0))break;k=+g[y+(b<<3)>>2]}Kd(D,z,A,-1,0);h=v+1|0;e=+((_(D,a)|0)>>>0);b=0;do{g[E+(b<<2)>>2]=+g[A+((((h+b|0)>>>0)%(D>>>0)|0)<<3)>>2]/e;b=b+1|0}while((b|0)!=(C|0));e=B*B;b=0;do{g[f+(b<<2)>>2]=e*+g[E+(b<<2)>>2];b=b+1|0}while((b|0)!=(C|0));i=F;return}function xe(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(4,1,a,b,c,0.0,e);return}function ye(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(5,1,a,b,c,0.0,e);return}function ze(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;Gd(6,1,a,b,c,0.0,e);return}function Ae(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0,n=0,o=0,p=0;if(!((d|0)==(f|0)&((j|0)==(b|0)&(k|0)==(h|0)))){Pp(23865,40,1,c[2344]|0)|0;lb(1)}if(!j)return;h=(d|0)==0;if(!k)return;f=k<<2;p=0;do{m=_(p,k)|0;n=_(p,d)|0;if(h)dq(i+(m<<2)|0,0,f|0)|0;else{o=0;do{b=0;l=0.0;do{l=+g[e+((_(b,k)|0)+o<<2)>>2]*+g[a+(b+n<<2)>>2]+l;b=b+1|0}while((b|0)!=(d|0));g[i+(o+m<<2)>>2]=l;o=o+1|0}while((o|0)!=(k|0))}p=p+1|0}while((p|0)!=(j|0));return}function Be(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(cp(a,c[2]|0)|0)if(cp(a,c[4]|0)|0)if(cp(a,c[6]|0)|0)if(cp(a,c[8]|0)|0)if(cp(a,c[10]|0)|0)if(cp(a,c[12]|0)|0)if(!(cp(a,c[14]|0)|0))a=6;else{e=c[2344]|0;c[b>>2]=a;Jp(e,23906,b)|0;a=0}else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;i=d;return a|0}function Ce(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;switch(a|0){case 1:case 0:{b=0;break}case 2:{b=1;break}case 3:{b=1;break}case 4:{b=2;break}case 5:{b=3;break}case 6:{b=4;break}default:{f=c[2344]|0;c[d>>2]=a;Jp(f,23977,d)|0;lb(1)}}i=e;return b|0}function De(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;switch(a|0){case 0:{Pp(24034,71,1,c[2344]|0)|0;lb(-1);break}case 2:{if(!e){e=0;i=h;return e|0}else{f=0;a=0}do{a=(d[b+f>>0]|0)+a|0;f=f+1|0}while((f|0)!=(e|0));e=(a^255)+1&255;i=h;return e|0}case 3:{f=d[19968]|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=a&255^255;i=h;return e|0}case 4:{e=Ee(b,e)|0;i=h;return e|0}case 5:{e=Ge(b,e)|0;i=h;return e|0}case 6:{f=Ie(79764919)|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=~a;i=h;return e|0}case 1:{e=0;i=h;return e|0}default:{h=c[2344]|0;c[f>>2]=a;Jp(h,24106,f)|0;lb(1)}}return 0}function Ee(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=Fe(32773)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&65535^65535;return f|0}function Fe(a){a=a|0;return (d[19961+(a&255)>>0]|0)<<8|(d[19961+(a>>>8&255)>>0]|0)|0}function Ge(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=He(6122955)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&16777215^16777215;return f|0}function He(a){a=a|0;return (d[19961+(a>>>8&255)>>0]|0)<<8|(d[19961+(a&255)>>0]|0)<<16|(d[19961+(a>>>16&255)>>0]|0)|0}function Ie(a){a=a|0;return (d[19961+(a>>>8&255)>>0]|0)<<16|(d[19961+(a&255)>>0]|0)<<24|(d[19961+(a>>>16&255)>>0]|0)<<8|(d[19961+(a>>>24)>>0]|0)|0}function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;switch(a|0){case 0:{Pp(24165,71,1,c[2344]|0)|0;lb(-1);break}case 1:{a=1;return a|0}default:{a=(De(a,b,d)|0)==(e|0)&1;return a|0}}return 0}function Ke(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(cp(a,c[64+(b<<3)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<28);if((e|0)==5){i=f;return b|0}e=c[2344]|0;c[d>>2]=a;Jp(e,24237,d)|0;e=0;i=f;return e|0}function Le(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g;d=g+16|0;e=g+8|0;do switch(a|0){case 1:{f=b;i=g;return f|0}case 2:{f=b*3|0;i=g;return f|0}case 3:{f=b*5|0;i=g;return f|0}case 4:{f=(b<<1&1073741822)*7|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 5:{f=b<<1&536870910;i=g;return f|0}case 6:{f=(b&536870911)*12|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 7:{f=b<<3;f=(((((f>>>0)%12|0|0)!=0&1)+((f>>>0)/12|0)|0)*24|0)>>>3;i=g;return f|0}case 8:{f=(b>>>1)+b+(b&1)|0;i=g;return f|0}case 9:{f=(b>>>2)+b+((b&3|0)!=0&1)|0;i=g;return f|0}case 10:{f=(b>>>3)+b+((b&7|0)!=0&1)|0;i=g;return f|0}case 11:{f=(b<<1)+2|0;i=g;return f|0}case 12:{f=(b<<1)+2|0;i=g;return f|0}case 13:{f=(b*3|0)+3|0;i=g;return f|0}case 14:{f=(b*6|0)+11|0;i=g;return f|0}case 15:{f=(((b<<2&2147483644|3)+(b<<3|6)|0)>>>3)+1|0;i=g;return f|0}case 16:{f=b<<3|6;f=(((f+2|0)>>>0)/3|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 17:{f=b<<3|6;f=((f+3|0)>>>2)+f|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 18:{f=b<<3|6;f=(((f+4|0)>>>0)/5|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 19:{f=b<<3|6;f=(((f+5|0)>>>0)/6|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 20:{f=b<<3|6;f=(((f+6|0)>>>0)/7|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 21:{f=b<<3;f=f+8+((f+9|0)>>>1)|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 22:{f=b<<3;f=f+8+(((f+10|0)>>>0)/3|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 23:{f=b<<3;f=f+8+((f+11|0)>>>2)|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 24:{f=b<<3;f=f+8+(((f+12|0)>>>0)/5|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 25:{f=b<<3;f=f+8+(((f+13|0)>>>0)/6|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 26:{f=b<<3;f=f+8+(((f+14|0)>>>0)/7|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 27:{if(!b){Pp(24308,69,1,c[2344]|0)|0;lb(1)}Up(d,b,223);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;Up(e,b,f);f=_((c[e>>2]|0)+32+((c[e+4>>2]|0)!=0&1)|0,f)|0;i=g;return f|0}case 0:{f=0;i=g;return f|0}default:{c[f>>2]=a;Qp(24378,f)|0;lb(-1)}}while(0);return 0}function Me(a,b,d){a=a|0;b=b|0;d=d|0;if(!b){Pp(24443,61,1,c[2344]|0)|0;lb(1)}if(d>>>0>>0){Pp(24505,76,1,c[2344]|0)|0;lb(1)}else{a=a<<3;b=_((((a>>>0)%(b>>>0)|0|0)!=0&1)+((a>>>0)/(b>>>0)|0)|0,d)|0;return ((b&7|0)!=0&1)+(b>>>3)|0}return 0}function Ne(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;do switch(a|0){case 0:{b=0.0;break}case 1:{b=1.0;break}case 2:{b=.3333333432674408;break}case 3:{b=.20000000298023224;break}case 4:{b=.5714285969734192;break}case 5:{b=.5;break}case 6:{b=.6666666865348816;break}case 7:{b=.5;break}case 8:{b=.6666666865348816;break}case 9:{b=.800000011920929;break}case 10:{b=.8888888955116272;break}case 11:{b=.5;break}case 12:{b=.5;break}case 13:{b=.3333333432674408;break}case 14:{b=.1666666716337204;break}case 15:{b=.6666666865348816;break}case 16:{b=.75;break}case 17:{b=.800000011920929;break}case 18:{b=.8333333134651184;break}case 19:{b=.8571428656578064;break}case 20:{b=.875;break}case 21:{b=.6666666865348816;break}case 22:{b=.75;break}case 23:{b=.800000011920929;break}case 24:{b=.8333333134651184;break}case 25:{b=.8571428656578064;break}case 26:{b=.875;break}case 27:{b=.8745098114013672;break}default:{c[d>>2]=a;Qp(24582,d)|0;lb(-1)}}while(0);i=e;return +b}function Oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;do switch(a|0){case 0:{Rp(24637)|0;lb(-1);break}case 1:{d=Pe(0)|0;break}case 2:{d=Se(b)|0;break}case 3:{d=We(b)|0;break}case 4:{d=_e(b)|0;break}case 5:{d=ff(b)|0;break}case 6:{d=lf(b)|0;break}case 7:{d=rf(b)|0;break}case 8:{d=vf(b)|0;break}case 9:{d=Af(b)|0;break}case 10:{d=Ef(b)|0;break}case 14:case 13:case 12:case 11:{d=Kf(a)|0;break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{d=Pf(a)|0;break}case 27:{d=Vf(27)|0;break}default:{c[e>>2]=a;Qp(25160,e)|0;lb(-1)}}while(0);i=f;return d|0}function Pe(a){a=a|0;a=Wp(148)|0;c[a>>2]=1;g[a+4>>2]=+Ne(1);c[a+136>>2]=1;c[a+140>>2]=2;c[a+144>>2]=0;return a|0}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;return}function Re(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;return}function Se(a){a=a|0;a=Wp(148)|0;c[a>>2]=2;g[a+4>>2]=+Ne(2);c[a+136>>2]=3;c[a+140>>2]=4;c[a+144>>2]=5;return a|0}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;eq(d|0,c|0,b|0)|0;eq(d+b|0,c|0,b|0)|0;eq(d+(b<<1)|0,c|0,b|0)|0;return}function Ue(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!c)return;b=c<<1;f=0;do{g=a[d+(f+c)>>0]|0;h=a[d+(f+b)>>0]|0;a[e+f>>0]=(h|g)&a[d+f>>0]|h&g;f=f+1|0}while((f|0)!=(c|0));return}function Ve(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!c)return;b=c<<1;l=0;do{g=f+l|0;a[g>>0]=0;i=l<<3;j=l+c<<3;k=l+b<<3;h=0;m=0;do{h=h&255|(((d[e+(m+j)>>0]|0)+(d[e+(m+i)>>0]|0)+(d[e+(m+k)>>0]|0)|0)>>>0>383?1<<7-m:0);a[g>>0]=h;m=m+1|0}while((m|0)!=8);l=l+1|0}while((l|0)!=(c|0));return}function We(a){a=a|0;a=Wp(148)|0;c[a>>2]=3;g[a+4>>2]=+Ne(3);c[a+136>>2]=6;c[a+140>>2]=7;c[a+144>>2]=8;return a|0}function Xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;eq(d|0,c|0,b|0)|0;eq(d+b|0,c|0,b|0)|0;eq(d+(b<<1)|0,c|0,b|0)|0;eq(d+(b*3|0)|0,c|0,b|0)|0;eq(d+(b<<2)|0,c|0,b|0)|0;return}function Ye(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!c)return;b=c<<1;f=c*3|0;g=c<<2;h=0;do{l=a[d+h>>0]|0;m=a[d+(h+c)>>0]|0;j=a[d+(h+b)>>0]|0;k=a[d+(h+f)>>0]|0;i=a[d+(h+g)>>0]|0;o=j&l;n=j&m;a[e+h>>0]=(n|o)&k|i&o|k&l&i|i&n|k&m&i|k&j&i|m&l&(k|j|i);h=h+1|0}while((h|0)!=(c|0));return}function Ze(b,c,e,f){b=b|0;c=c|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;if(!c)return;b=c<<1;i=c*3|0;j=c<<2;p=0;do{k=f+p|0;a[k>>0]=0;m=p<<3;n=p+c<<3;o=p+b<<3;g=p+i<<3;h=p+j<<3;l=0;q=0;do{l=l&255|(((d[e+(q+n)>>0]|0)+(d[e+(q+m)>>0]|0)+(d[e+(q+o)>>0]|0)+(d[e+(q+g)>>0]|0)+(d[e+(q+h)>>0]|0)|0)>>>0>639?1<<7-q:0);a[k>>0]=l;q=q+1|0}while((q|0)!=8);p=p+1|0}while((p|0)!=(c|0));return}function _e(a){a=a|0;a=Wp(148)|0;c[a>>2]=4;g[a+4>>2]=+Ne(4);c[a+136>>2]=9;c[a+140>>2]=10;c[a+144>>2]=11;return a|0}function $e(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;b=Me(c,4,7)|0;if(!c)return;else{g=0;h=0}while(1){j=a[e+g>>0]|0;i=d[11643+(j&15)>>0]|0;af(f,b,h,7,d[11643+((j&255)>>>4&255)>>0]|0);af(f,b,h+7|0,7,i);g=g+1|0;if((g|0)==(c|0))break;else h=h+14|0}return}function af(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if(e<<3>>>0<=f>>>0){Pp(24701,59,1,c[2344]|0)|0;lb(1)}i=f>>>3;if(!(i>>>0>>0&(g|0)!=0))return;f=f-(i<<3)|0;j=i;while(1){k=8-f|0;k=g>>>0>>0?g:k;m=8-k|0;l=g;g=g-k|0;n=255>>>m&255;m=m-f|0;i=b+j|0;a[i>>0]=(d[i>>0]|0)&(n<>>g)<>>0>7;j=(i&1)+j|0;if(!(j>>>0>>0&(l|0)!=(k|0)))break;else f=i?f&7:f}return}function bf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+4|0;m=n;b=Me(e,4,7)|0;if(!e){i=n;return}else{h=0;k=0}while(1){cf(f,b,k,7,l);cf(f,b,k+7|0,7,m);a[g+h>>0]=d[11659+(c[m>>2]|0)>>0]|0|(d[11659+(c[l>>2]|0)>>0]|0)<<4;h=h+1|0;if((h|0)==(e|0))break;else k=k+14|0}i=n;return}function cf(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;if(b<<3>>>0<=e>>>0){Pp(24761,61,1,c[2344]|0)|0;lb(1)}h=e>>>3;if(!(h>>>0>>0&(f|0)!=0)){a=f;b=0;a=b<>2]=a;return}k=f;e=e-(h<<3)|0;f=0;while(1){i=8-e|0;l=k>>>0>>0?k:i;f=255>>>(8-l|0)&255&(d[a+h>>0]|0)>>>(i-l|0)|f<>>0>7;h=(j&1)+h|0;e=k-l|0;if(!(h>>>0>>0&(k|0)!=(l|0)))break;else{k=e;e=j?i&7:i}}l=f<>2]=l;return}function df(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;Me(c,4,7)|0;if(!c)return;else{b=0;f=0}while(1){g=ef(d+f|0)|0;a[e+b>>0]=(g&255)<<4|(ef(d+(f+7)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+14|0}return}function ef(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;r=d[a+1>>0]|0;s=r^255;t=d[a+2>>0]|0;j=t^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;b=d[a+6>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[11643+g>>0]|0;e=(e&32|0?s:r)+(e&64|0?o:i)+(e&16|0?j:t)+(e&8|0?l:k)+(e&4|0?n:m)+(e&2|0?q:p)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function ff(a){a=a|0;a=Wp(148)|0;c[a>>2]=5;g[a+4>>2]=+Ne(5);c[a+136>>2]=12;c[a+140>>2]=13;c[a+144>>2]=14;return a|0}function gf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if(!c)return;else{b=0;f=0}while(1){g=a[d+b>>0]|0;a[e+f>>0]=a[11787+((g&255)>>>4&255)>>0]|0;a[e+(f|1)>>0]=a[11787+(g&15)>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+2|0}return}function hf(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0;if(!c)return;else b=0;do{g=b<<1;a[f+b>>0]=(d[11803+(d[e+g>>0]|0)>>0]|0)<<4|(d[11803+(d[e+(g|1)>>0]|0)>>0]|0);b=b+1|0}while((b|0)!=(c|0));return}function jf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;Me(c,4,8)|0;if(!c)return;else{b=0;f=0}while(1){g=kf(d+f|0)|0;a[e+b>>0]=(g&255)<<4|(kf(d+(f|8)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+16|0}return}function kf(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;t=d[a+1>>0]|0;u=t^255;v=d[a+2>>0]|0;j=v^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;r=d[a+6>>0]|0;s=r^255;b=d[a+7>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[11787+g>>0]|0;e=(e&64|0?u:t)+(e&128|0?o:i)+(e&32|0?j:v)+(e&16|0?l:k)+(e&8|0?n:m)+(e&4|0?q:p)+(e&2|0?s:r)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function lf(a){a=a|0;a=Wp(148)|0;c[a>>2]=6;g[a+4>>2]=+Ne(6);c[a+136>>2]=15;c[a+140>>2]=16;c[a+144>>2]=17;return a|0}function mf(c,e,f,g){c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=e&1;h=e-j|0;if((j|0)==(e|0))c=0;else{i=0;c=0;do{l=b[9812+((d[f+i>>0]|0)<<1)>>1]|0;k=b[9812+((d[f+(i|1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(k&65535)>>>8&15|(l&65535)<<4;a[g+(c+2)>>0]=k;c=c+3|0;i=i+2|0}while(i>>>0>>0)}if(!j)return;l=b[9812+((d[f+(e+-1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(l&65535)<<4;return}function nf(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=c&1;g=c-h|0;if((h|0)==(c|0)){c=0;b=0}else{c=0;b=0;do{j=d[e+(b+1)>>0]|0;i=j<<8&3840|(d[e+(b+2)>>0]|0);a[f+c>>0]=of(j>>>4|(d[e+b>>0]|0)<<4)|0;a[f+(c|1)>>0]=of(i)|0;b=b+3|0;c=c+2|0}while(c>>>0>>0)}if(!h)return;a[f+c>>0]=of((d[e+(b+1)>>0]|0)>>>4|(d[e+b>>0]|0)<<4)|0;return}function of(a){a=a|0;var b=0,e=0;if(a>>>0>4095){Pp(24823,55,1,c[2344]|0)|0;lb(1)}b=a>>>8;b=(d[19705+(b&6)>>0]|0)+(d[19705+(a&102)>>0]|0)<<1&2|(d[19705+(b&10)>>0]|0)+(d[19705+(a&170)>>0]|0)&1|(d[19705+(b&1)>>0]|0)+(d[19705+(a&225)>>0]|0)<<2&4|(d[19705]|0)+(d[19705+(a&31)>>0]|0)<<3&8;if((b+-1|0)>>>0>11){b=a&15;e=a>>>1;e=e&112;b=e|b;a=a>>>2;a=a&128;a=b|a;return a|0}e=1<<12-b^a;a=e&15;b=e>>>1;b=b&112;a=b|a;e=e>>>2;e=e&128;e=a|e;return e|0}function pf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(!c)return;else{b=0;f=0}while(1){a[e+b>>0]=qf(d+f|0)|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+12|0}return}function qf(b){b=b|0;var c=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;u=b+1|0;w=b+2|0;y=b+3|0;A=b+4|0;C=b+5|0;c=b+6|0;g=b+7|0;i=b+8|0;k=b+9|0;m=b+10|0;o=b+11|0;r=of(((a[u>>0]|0)<0?1024:0)|((a[b>>0]|0)<0?2048:0)|((a[w>>0]|0)<0?512:0)|((a[y>>0]|0)<0?256:0)|((a[A>>0]|0)<0?128:0)|((a[C>>0]|0)<0?64:0)|((a[c>>0]|0)<0?32:0)|((a[g>>0]|0)<0?16:0)|((a[i>>0]|0)<0?8:0)|((a[k>>0]|0)<0?4:0)|((a[m>>0]|0)<0?2:0)|(d[o>>0]|0)>>>7&255)|0;E=e[9812+(r<<1)>>1]|0;s=d[b>>0]|0;t=s^255;u=d[u>>0]|0;v=u^255;w=d[w>>0]|0;x=w^255;y=d[y>>0]|0;z=y^255;A=d[A>>0]|0;B=A^255;C=d[C>>0]|0;D=C^255;c=d[c>>0]|0;f=c^255;g=d[g>>0]|0;h=g^255;i=d[i>>0]|0;j=i^255;k=d[k>>0]|0;l=k^255;m=d[m>>0]|0;n=m^255;o=d[o>>0]|0;p=o^255;E=(E&1024|0?v:u)+(E&2048|0?t:s)+(E&512|0?x:w)+(E&256|0?z:y)+(E&128|0?B:A)+(E&64|0?D:C)+(E&32|0?f:c)+(E&16|0?h:g)+(E&8|0?j:i)+(E&4|0?l:k)+(E&2|0?n:m)+(E&1|0?p:o)|0;F=0;b=r;while(1){G=d[12059+(b*17|0)+F>>0]|0;q=e[9812+(G<<1)>>1]|0;q=(q&1024|0?v:u)+(q&2048|0?t:s)+(q&512|0?x:w)+(q&256|0?z:y)+(q&128|0?B:A)+(q&64|0?D:C)+(q&32|0?f:c)+(q&16|0?h:g)+(q&8|0?j:i)+(q&4|0?l:k)+(q&2|0?n:m)+(q&1|0?p:o)|0;r=q>>>0>>0;b=r?G:b;F=F+1|0;if((F|0)==17)break;else E=r?q:E}return b|0}function rf(a){a=a|0;a=Wp(148)|0;c[a>>2]=7;g[a+4>>2]=+Ne(7);c[a+136>>2]=18;c[a+140>>2]=19;c[a+144>>2]=0;return a|0}function sf(b,e,f,g){b=b|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;r=(e>>>0)%3|0;l=e-r|0;if((r|0)==(e|0))b=0;else{q=d[19449]|0;r=0;b=0;do{n=d[f+(r+1)>>0]|0;m=a[f+(r+2)>>0]|0;h=n>>>4|(d[f+r>>0]|0)<<4;n=n<<8&3840;j=0;k=0;while(1){i=c[820+(j<<2)>>2]&h;i=(d[19449+(i>>>8)>>0]|0)+(d[19449+(i&255)>>0]|0)+q&1|k<<1;j=j+1|0;if((j|0)==24){p=i;o=k;break}else k=i}j=n|m&255;k=0;h=0;while(1){i=c[820+(k<<2)>>2]&j;i=(d[19449+(i>>>8)>>0]|0)+(d[19449+(i&255)>>0]|0)+q&1|h<<1;k=k+1|0;if((k|0)==24)break;else h=i}a[g+b>>0]=o>>>15;a[g+(b|1)>>0]=o>>>7;a[g+(b+2)>>0]=p;a[g+(b+3)>>0]=h>>>15;a[g+(b+4)>>0]=h>>>7;a[g+(b+5)>>0]=i;b=b+6|0;r=r+3|0}while(r>>>0>>0)}if(l>>>0>=e>>>0)return;while(1){j=d[f+l>>0]|0;k=0;h=0;while(1){i=(d[19449+(c[820+(k<<2)>>2]&j)>>0]|0)&1|h<<1;k=k+1|0;if((k|0)==24)break;else h=i}a[g+b>>0]=h>>>15;a[g+(b+1)>>0]=h>>>7;a[g+(b+2)>>0]=i;l=l+1|0;if((l|0)==(e|0))break;else b=b+3|0}return}function tf(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=(c>>>0)%3|0;g=c-h|0;if((h|0)==(c|0))b=0;else{h=0;b=0;do{i=(d[e+(b+4)>>0]|0)<<8|(d[e+(b+3)>>0]|0)<<16|(d[e+(b+5)>>0]|0);j=uf((d[e+(b|1)>>0]|0)<<8|(d[e+b>>0]|0)<<16|(d[e+(b+2)>>0]|0))|0;i=uf(i)|0;a[f+h>>0]=j>>>4;a[f+(h+1)>>0]=i>>>8&15|j<<4;a[f+(h+2)>>0]=i;b=b+6|0;h=h+3|0}while(h>>>0>>0)}if(g>>>0>=c>>>0)return;while(1){a[f+g>>0]=uf((d[e+(b+1)>>0]|0)<<8|(d[e+b>>0]|0)<<16|(d[e+(b+2)>>0]|0))|0;g=g+1|0;if((g|0)==(c|0))break;else b=b+3|0}return}function uf(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if(a>>>0>16777215){Pp(24879,61,1,c[2344]|0)|0;lb(1)}else{f=0;b=0}while(1){e=c[916+(f<<2)>>2]&a;e=(d[19449+(e>>>8&255)>>0]|0)+(d[19449+(e&255)>>0]|0)+(d[19449+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){g=e;break}else b=e}if(((d[19449+(b>>>7&255)>>0]|0)+(d[19449+(g&255)>>0]|0)|0)>>>0<4){h=0;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[772+(b<<2)>>2]^g;if(((d[19449+(e>>>8&255)>>0]|0)+(d[19449+(e&255)>>0]|0)|0)>>>0<3){h=7;break}b=b+1|0;if(b>>>0>=12){f=0;b=0;break}}if((h|0)==7){h=e<<12|1<<11-b;h=h^a;h=h&4095;return h|0}while(1){e=c[772+(f<<2)>>2]&g;e=(d[19449+(e>>>8&255)>>0]|0)+(d[19449+(e&255)>>0]|0)+(d[19449+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){f=e;break}else b=e}if(((d[19449+(b>>>7&255)>>0]|0)+(d[19449+(f&255)>>0]|0)|1|0)==3){h=f;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[772+(b<<2)>>2]^f;if(((d[19449+(e>>>8&255)>>0]|0)+(d[19449+(e&255)>>0]|0)|0)>>>0<3)break;b=b+1|0;if(b>>>0>=12){b=0;h=13;break}}if((h|0)==13){h=b^a;h=h&4095;return h|0}h=e|1<<23-b;h=h^a;h=h&4095;return h|0}function vf(a){a=a|0;a=Wp(148)|0;c[a>>2]=8;g[a+4>>2]=+Ne(8);c[a+136>>2]=20;c[a+140>>2]=21;c[a+144>>2]=0;return a|0}function wf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;g=c&1;f=c-g|0;if((g|0)==(c|0)){c=0;b=0}else{c=0;b=0;do{l=d+c|0;a[e+b>>0]=xf(l)|0;a[e+(b+1)>>0]=a[l>>0]|0;a[e+(b+2)>>0]=a[d+(c|1)>>0]|0;b=b+3|0;c=c+2|0}while(c>>>0>>0)}if(!g){i=k;return}l=a[d+c>>0]|0;a[h>>0]=l;a[h+1>>0]=0;a[e+b>>0]=xf(h)|0;a[e+(b+1)>>0]=l;i=k;return}function xf(b){b=b|0;var c=0;c=a[b>>0]|0;b=a[b+1>>0]|0;return ((d[19449+(b&a[16422]&255)>>0]|0)+(d[19449+(c&a[16421]&255)>>0]|0)&1|((d[19449+(b&a[16420]&255)>>0]|0)+(d[19449+(c&a[16419]&255)>>0]|0)&1|((d[19449+(b&a[16418]&255)>>0]|0)+(d[19449+(c&a[16417]&255)>>0]|0)&1|((d[19449+(b&a[16416]&255)>>0]|0)+(d[19449+(c&a[16415]&255)>>0]|0)&1|((d[19449+(b&a[16414]&255)>>0]|0)+(d[19449+(c&a[16413]&255)>>0]|0)&1|(d[19449+(b&a[16412]&255)>>0]|0)+(d[19449+(c&a[16411]&255)>>0]|0)<<1&2)<<1&6)<<1&14)<<1&30)<<1&62)&255|0}function yf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+3|0;m=n;k=c&1;h=c-k|0;if((k|0)==(c|0)){c=0;b=0}else{f=l+1|0;g=l+2|0;c=0;b=0;do{p=d+b|0;o=e+c|0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;zf(p,l)|0;a[o>>0]=a[f>>0]^a[p+1>>0];a[o+1>>0]=a[g>>0]^a[p+2>>0];b=b+3|0;c=c+2|0}while(c>>>0>>0)}if(!k){i=n;return}a[m>>0]=a[d+b>>0]|0;p=a[d+(b+1)>>0]|0;a[m+1>>0]=p;a[m+2>>0]=0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;zf(m,l)|0;a[e+c>>0]=a[l+1>>0]^p;i=n;return}function zf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;f=a[b+2>>0]|0;g=0;b=0;do{n=g<<1;b=((1<<5-g&h|0)!=0&1)+(d[19449+(a[16411+n>>0]&k&255)>>0]|0)+(d[19449+(a[16411+(n|1)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=6);f=b&255;if(!(a[19449+(b&255)>>0]|0)){n=0;i=m;return n|0}do if(f<<24>>24!=(a[16423]|0))if(f<<24>>24!=(a[16424]|0))if(f<<24>>24!=(a[16425]|0))if(f<<24>>24!=(a[16426]|0))if(f<<24>>24!=(a[16427]|0))if(f<<24>>24!=(a[16428]|0))if(f<<24>>24!=(a[16429]|0))if(f<<24>>24!=(a[16430]|0))if(f<<24>>24!=(a[16431]|0))if(f<<24>>24!=(a[16432]|0))if(f<<24>>24!=(a[16433]|0))if(f<<24>>24!=(a[16434]|0))if(f<<24>>24!=(a[16435]|0))if(f<<24>>24!=(a[16436]|0))if(f<<24>>24!=(a[16437]|0))if(f<<24>>24!=(a[16438]|0))if(f<<24>>24!=(a[16439]|0))if(f<<24>>24==(a[16440]|0))b=17;else{if(f<<24>>24==(a[16441]|0)){b=18;break}if(f<<24>>24==(a[16442]|0)){b=19;break}if(f<<24>>24==(a[16443]|0)){b=20;break}if(f<<24>>24==(a[16444]|0)){b=21;break}else b=2;i=m;return b|0}else b=16;else b=15;else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;while(0);Up(l,b,8);a[e+(2-(c[l>>2]|0))>>0]=1<>2];n=1;i=m;return n|0}function Af(a){a=a|0;a=Wp(148)|0;c[a>>2]=9;g[a+4>>2]=+Ne(9);c[a+136>>2]=22;c[a+140>>2]=23;c[a+144>>2]=0;return a|0}function Bf(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+16|0;if((i|0)>=(j|0))ba();u=w;v=w+4|0;t=f&3;s=f-t|0;if((t|0)==(f|0)){b=0;k=0}else{b=0;r=0;while(1){q=g+b|0;m=a[q>>0]|0;n=a[q+1>>0]|0;o=a[q+2>>0]|0;l=a[q+3>>0]|0;p=0;k=0;do{x=p<<2;k=(d[19449+(a[16445+(x|1)>>0]&n&255)>>0]|0)+(d[19449+(a[16445+x>>0]&m&255)>>0]|0)+(d[19449+(a[16445+(x|2)>>0]&o&255)>>0]|0)+(d[19449+(a[16445+(x|3)>>0]&l&255)>>0]|0)&1|k<<1&510;p=p+1|0}while((p|0)!=7);a[h+r>>0]=k;a[h+(r+1)>>0]=a[q>>0]|0;a[h+(r+2)>>0]=a[g+(b|1)>>0]|0;a[h+(r+3)>>0]=a[g+(b|2)>>0]|0;a[h+(r+4)>>0]=a[g+(b|3)>>0]|0;k=r+5|0;b=b+4|0;if(b>>>0>>0)r=k;else break}}if(!t){i=w;return}c[u>>2]=0;eq(u|0,g+b|0,f&3|0)|0;r=c[u>>2]|0;m=r&255;n=(r&65535)>>>8&255;p=r>>>16&255;q=r>>>24&255;r=r&255;o=(e[u>>1]|0)>>>8&255;l=0;b=0;do{x=l<<2;b=(d[19449+(a[16445+(x|1)>>0]&n&255)>>0]|0)+(d[19449+(a[16445+x>>0]&m&255)>>0]|0)+(d[19449+(a[16445+(x|2)>>0]&p&255)>>0]|0)+(d[19449+(a[16445+(x|3)>>0]&q&255)>>0]|0)&1|b<<1&510;l=l+1|0}while((l|0)!=7);u=b&255;a[v>>0]=u;x=v+1|0;a[x>>0]=r;a[v+2>>0]=o;a[v+3>>0]=p;a[v+4>>0]=q;a[h+k>>0]=u;eq(h+(k+1)|0,x|0,f&3|0)|0;i=w;return}function Cf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();o=r+9|0;q=r+4|0;p=r;n=c&3;g=c-n|0;if((n|0)==(c|0)){f=0;b=0}else{h=o+1|0;k=o+2|0;l=o+3|0;m=o+4|0;f=0;b=0;do{t=d+b|0;s=e+f|0;a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;Df(t,o)|0;a[s>>0]=a[h>>0]^a[t+1>>0];a[s+1>>0]=a[k>>0]^a[t+2>>0];a[s+2>>0]=a[l>>0]^a[t+3>>0];a[s+3>>0]=a[m>>0]^a[t+4>>0];b=b+5|0;f=f+4|0}while(f>>>0>>0)}if(!n){i=r;return}a[q>>0]=a[d+b>>0]|0;n=q+1|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;eq(n|0,d+(b+1)|0,c&3|0)|0;n=a[n>>0]|0;d=a[q+2>>0]|0;s=a[q+3>>0]|0;t=a[q+4>>0]|0;a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;Df(q,o)|0;a[p>>0]=a[o+1>>0]^n;a[p+1>>0]=a[o+2>>0]^d;a[p+2>>0]=a[o+3>>0]^s;a[p+3>>0]=a[o+4>>0]^t;eq(e+f|0,p|0,c&3|0)|0;i=r;return}function Df(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();n=p;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;a[e+4>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;l=a[b+2>>0]|0;m=a[b+3>>0]|0;f=a[b+4>>0]|0;g=0;b=0;do{q=g<<2;b=((1<<6-g&h|0)!=0&1)+(d[19449+(a[16445+q>>0]&k&255)>>0]|0)+(d[19449+(a[16445+(q|1)>>0]&l&255)>>0]|0)+(d[19449+(a[16445+(q|2)>>0]&m&255)>>0]|0)+(d[19449+(a[16445+(q|3)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=7);f=b&255;if(!(a[19449+(b&255)>>0]|0)){q=0;i=p;return q|0}else b=0;while(1){if(f<<24>>24==(a[16473+b>>0]|0))break;b=b+1|0;if(b>>>0>=39){b=2;o=7;break}}if((o|0)==7){i=p;return b|0}Up(n,b,8);a[e+(4-(c[n>>2]|0))>>0]=1<>2];q=1;i=p;return q|0}function Ef(a){a=a|0;a=Wp(148)|0;c[a>>2]=10;g[a+4>>2]=+Ne(10);c[a+136>>2]=24;c[a+140>>2]=25;c[a+144>>2]=0;return a|0}function Ff(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n;l=d&7;h=d-l|0;if((l|0)==(d|0)){k=0;b=0}else{g=0;b=0;do{o=e+g|0;k=f+b|0;a[k>>0]=Gf(o)|0;a[k+1>>0]=a[o>>0]|0;a[k+2>>0]=a[o+1>>0]|0;a[k+3>>0]=a[o+2>>0]|0;a[k+4>>0]=a[o+3>>0]|0;a[k+5>>0]=a[o+4>>0]|0;a[k+6>>0]=a[o+5>>0]|0;a[k+7>>0]=a[o+6>>0]|0;a[k+8>>0]=a[o+7>>0]|0;b=b+9|0;g=g+8|0}while(g>>>0>>0);k=g}if(!l){i=n;return}h=m;c[h>>2]=0;c[h+4>>2]=0;eq(m|0,e+k|0,d&7|0)|0;a[f+b>>0]=Gf(m)|0;h=b+1|0;b=d&7;g=0;do{a[f+(h+g)>>0]=a[e+(g+k)>>0]|0;g=g+1|0}while((g|0)!=(b|0));i=n;return}function Gf(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=a[b>>0]|0;i=a[b+1>>0]|0;j=a[b+2>>0]|0;k=a[b+3>>0]|0;l=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;c=a[b+7>>0]|0;e=0;b=0;do{m=e<<3;b=(d[19449+(i&a[16512+(m|1)>>0]&255)>>0]|0)+(d[19449+(f&a[16512+m>>0]&255)>>0]|0)+(d[19449+(j&a[16512+(m|2)>>0]&255)>>0]|0)+(d[19449+(k&a[16512+(m|3)>>0]&255)>>0]|0)+(d[19449+(l&a[16512+(m|4)>>0]&255)>>0]|0)+(d[19449+(g&a[16512+(m|5)>>0]&255)>>0]|0)+(d[19449+(h&a[16512+(m|6)>>0]&255)>>0]|0)+(d[19449+(c&a[16512+(m|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function Hf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+8|0;k=m;h=b&7;g=b-h|0;if((h|0)==(b|0)){f=0;a=0}else{f=0;a=0;do{If(d+a|0,e+f|0)|0;a=a+9|0;f=f+8|0}while(f>>>0>>0)}if(!h){i=m;return}h=k;c[h>>2]=0;c[h+4>>2]=0;b=b&7;h=b+1|0;dq(l+h|0,0,(h>>>0>8?0:8-b|0)|0)|0;eq(l|0,d+a|0,h|0)|0;If(l,k)|0;eq(e+f|0,k|0,b|0)|0;i=m;return}function If(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();g=q;p=q+8|0;e=p;f=e+9|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));f=Jf(b)|0;a:do if(!(a[19449+(f&255)>>0]|0)){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=0}else{e=0;while(1){if(f<<24>>24==(a[16576+e>>0]|0))break;e=e+1|0;if(e>>>0>=72){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=2;break a}}Up(g,e,8);a[p+(8-(c[g>>2]|0))>>0]=1<>2];g=a[p+1>>0]|0;h=a[p+2>>0]|0;k=a[p+3>>0]|0;l=a[p+4>>0]|0;m=a[p+5>>0]|0;n=a[p+6>>0]|0;o=a[p+7>>0]|0;e=a[p+8>>0]|0;f=1}while(0);a[d>>0]=g^a[b+1>>0];a[d+1>>0]=h^a[b+2>>0];a[d+2>>0]=k^a[b+3>>0];a[d+3>>0]=l^a[b+4>>0];a[d+4>>0]=m^a[b+5>>0];a[d+5>>0]=n^a[b+6>>0];a[d+6>>0]=o^a[b+7>>0];a[d+7>>0]=e^a[b+8>>0];i=q;return f|0}function Jf(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=d[b>>0]|0;j=a[b+1>>0]|0;k=a[b+2>>0]|0;l=a[b+3>>0]|0;m=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;i=a[b+7>>0]|0;c=a[b+8>>0]|0;e=0;b=0;do{n=e<<3;b=((f&1<<7-e|0)!=0&1)+(d[19449+(j&a[16512+n>>0]&255)>>0]|0)+(d[19449+(k&a[16512+(n|1)>>0]&255)>>0]|0)+(d[19449+(l&a[16512+(n|2)>>0]&255)>>0]|0)+(d[19449+(m&a[16512+(n|3)>>0]&255)>>0]|0)+(d[19449+(g&a[16512+(n|4)>>0]&255)>>0]|0)+(d[19449+(h&a[16512+(n|5)>>0]&255)>>0]|0)+(d[19449+(i&a[16512+(n|6)>>0]&255)>>0]|0)+(d[19449+(c&a[16512+(n|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function Kf(a){a=a|0;var b=0;b=Wp(148)|0;c[b>>2]=a;g[b+4>>2]=+Ne(a);c[b+136>>2]=26;c[b+140>>2]=27;c[b+144>>2]=28;switch(c[b>>2]|0){case 11:{c[b+28>>2]=2;c[b+32>>2]=7;c[b+24>>2]=288;c[b+44>>2]=3;c[b+48>>2]=1;c[b+52>>2]=5;c[b+56>>2]=1;c[b+60>>2]=18;break}case 12:{c[b+28>>2]=2;c[b+32>>2]=9;c[b+24>>2]=296;c[b+44>>2]=4;c[b+48>>2]=2;c[b+52>>2]=6;c[b+56>>2]=2;c[b+60>>2]=19;break}case 13:{c[b+28>>2]=3;c[b+32>>2]=9;c[b+24>>2]=304;c[b+44>>2]=5;c[b+48>>2]=3;c[b+52>>2]=7;c[b+56>>2]=3;c[b+60>>2]=20;break}case 14:{c[b+28>>2]=6;c[b+32>>2]=15;c[b+24>>2]=316;c[b+44>>2]=6;c[b+48>>2]=4;c[b+52>>2]=8;c[b+56>>2]=4;c[b+60>>2]=21;break}default:{Pp(24982,39,1,c[2344]|0)|0;lb(1)}}c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function Lf(b,e,f,g){b=b|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;if(!e){i=0;h=0;l=0}else{q=b+28|0;r=b+24|0;k=c[q>>2]|0;i=0;j=0;h=0;l=0;do{p=d[f+j>>0]|0;n=k;m=k;o=0;while(1){l=p>>>(7-o|0)&1|l<<1;if(!m){k=n;m=0}else{k=0;do{i=((fb(c[(c[r>>2]|0)+(k<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;k=k+1|0;m=c[q>>2]|0}while(k>>>0>>0);k=m}o=o+1|0;if((o|0)==8)break;else n=k}j=j+1|0}while((j|0)!=(e|0))}o=b+32|0;k=c[o>>2]|0;if((k|0)!=1){p=b+28|0;n=b+24|0;j=c[p>>2]|0;m=0;do{l=l<<1;if(!j)j=0;else{k=0;do{i=((fb(c[(c[n>>2]|0)+(k<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;k=k+1|0;j=c[p>>2]|0}while(k>>>0>>0);k=c[o>>2]|0}m=m+1|0}while(m>>>0<(k+-1|0)>>>0)}if(!(h&7))return;do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);return} +function Bn(f,g,h){f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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;M=i;i=i+48|0;if((i|0)>=(j|0))ba();I=M+24|0;L=M;J=f+8|0;H=c[J>>2]|0;k=H+-1|0;K=1<>>0>=(E-H|0)>>>0){i=M;return}F=f+28|0;G=(h|0)==0;H=f+20|0;v=f+4|0;w=f+32|0;x=K<<1;y=f+64|0;z=f+60|0;A=K>>>1;B=K>>>0>>0;C=f+16|0;D=L+20|0;u=f+56|0;do{r=c[F>>2]|0;a:do if(G){g=(yn(c[H>>2]|0,c[v>>2]|0)|0)&255;f=1<>2];l=0;do{b[r+(l<<1)>>1]=fb(l^g|0)|0;l=l+1|0}while(l>>>0>>0)}else{g=c[v>>2]|0;if(c[u>>2]|0){f=0;while(1){b[r+(f<<1)>>1]=zn(f,h+(_(g,k)|0)|0,g)|0;f=f+1|0;g=c[v>>2]|0;if(f>>>0>=1<>>0)break a}}n=h+(_(g,k)|0)|0;o=(g|0)==0;p=1<>0]|0)-(0-(l&1)&255)|0;f=((t|0)<0?0-t|0:t)+(f&65535)|0;m=m+1|0;if((m|0)==(g|0))break;else l=l>>>1}f=f&65535}b[r+(q<<1)>>1]=f;q=q+1|0}while(q>>>0

>>0)}while(0);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];c[L+16>>2]=c[w+16>>2];c[L+20>>2]=c[w+20>>2];c[I>>2]=c[w>>2];c[I+4>>2]=c[w+4>>2];c[I+8>>2]=c[w+8>>2];c[I+12>>2]=c[w+12>>2];c[I+16>>2]=c[w+16>>2];c[I+20>>2]=c[w+20>>2];Cn(I,r);f=c[y>>2]|0;g=c[f+16>>2]|0;f=c[f+20>>2]|0;l=Dn(c[z>>2]|0)|0;if(B){m=c[L>>2]|0;n=c[D>>2]|0;p=0;r=K;s=0;while(1){o=p+A|0;q=0;t=0;while(1){R=q+p|0;O=o+q|0;P=c[n+(c[m+(R<<2)>>2]<<2)>>2]|0;Q=c[n+(c[m+(O<<2)>>2]<<2)>>2]|0;R=e[g+(R<<1)>>1]|0;T=R+P|0;O=e[g+(O<<1)>>1]|0;U=O+Q|0;N=t+s|0;S=(T&65535)>>>0>(U&65535)>>>0;b[f+(N<<1)>>1]=S?U:T;a[l+N>>0]=S&1;N=N|1;P=R+(P>>>16)|0;Q=O+(Q>>>16)|0;O=(P&65535)>>>0>(Q&65535)>>>0;b[f+(N<<1)>>1]=O?Q:P;a[l+N>>0]=O&1;q=q+1|0;if((q|0)==4)break;else t=t+2|0}r=r+8|0;if(r>>>0>=x>>>0)break;else{p=p+4|0;s=s+8|0}}}En(c[z>>2]|0,f,c[C>>2]|0);An(c[y>>2]|0);k=k+1|0}while(k>>>0<(E-(c[J>>2]|0)|0)>>>0);i=M;return}function Cn(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0;f=c[a+16>>2]|0;if(f>>>0<=1)return;g=c[a+4>>2]|0;h=c[a+8>>2]|0;i=c[a+12>>2]|0;a=c[a+20>>2]|0;d=1;do{j=c[g+(d<<2)>>2]|0;c[a+(d<<2)>>2]=(e[b+(j>>>i<<1)>>1]|0)<<16|(e[b+((h&j)<<1)>>1]|0);d=d+1|0}while(d>>>0>>0);return}function Dn(a){a=a|0;return c[(c[a+20>>2]|0)+(c[a+24>>2]<<2)>>2]|0}function En(a,b,c){a=a|0;b=b|0;c=c|0;Fn(a,b,c,1);return}function Fn(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=a+24|0;m=(c[h>>2]|0)+1|0;o=c[a+8>>2]|0;c[h>>2]=(m|0)==(o|0)?0:m;h=a+40|0;m=(c[h>>2]|0)+1|0;c[h>>2]=m;l=a+28|0;n=(c[l>>2]|0)+1|0;c[l>>2]=n;if((m|0)!=(c[a+36>>2]|0)){if((n|0)!=(o|0))return;i=c[a+12>>2]|0;if(!i)h=0;else{h=0;l=-1;m=0;while(1){j=b[d+(m<<1)>>1]|0;k=(j&65535)<(l&65535);h=k?m:h;m=m+g|0;if(m>>>0>=i>>>0)break;else l=k?j:l}}Gn(a,h,c[a>>2]|0,f);return}c[h>>2]=0;m=c[a+12>>2]|0;if(!m)h=0;else{h=0;k=-1;l=0;while(1){i=b[d+(l<<1)>>1]|0;j=(i&65535)<(k&65535);h=j?l:h;l=l+g|0;if(l>>>0>=m>>>0)break;else k=j?i:k}i=e[d+(h<<1)>>1]|0;j=0;do{g=d+(j<<1)|0;b[g>>1]=(e[g>>1]|0)-i;j=j+1|0}while((j|0)!=(m|0))}if((n|0)!=(o|0))return;Gn(a,h,c[a>>2]|0,f);return}function Gn(b,d,e,f){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;m=c[b+16>>2]|0;g=c[b+24>>2]|0;n=c[b+8>>2]|0;g=((g|0)==0?n:g)+-1|0;if(!e){j=d;i=g}else{i=c[b+20>>2]|0;h=0;do{d=((a[(c[i+(g<<2)>>2]|0)+d>>0]|0?m:0)|d)>>>1;h=h+1|0;g=((g|0)==0?n:g)+-1|0}while((h|0)!=(e|0));j=d;i=g}l=b+28|0;d=c[l>>2]|0;if(d>>>0<=e>>>0){m=b+32|0;n=0;m=c[m>>2]|0;Hn(f,m,n);f=c[l>>2]|0;f=f-n|0;c[l>>2]=f;return}k=b+20|0;g=b+32|0;d=d-e|0;b=0;while(1){h=a[(c[(c[k>>2]|0)+(i<<2)>>2]|0)+j>>0]|0?m:0;a[(c[g>>2]|0)+b>>0]=(h|0)!=0&1;b=b+1|0;if((b|0)==(d|0))break;else{j=(h|j)>>>1;i=((i|0)==0?n:i)+-1|0}}n=c[g>>2]|0;Hn(f,n,d);f=c[l>>2]|0;f=f-d|0;c[l>>2]=f;return}function Hn(b,e,f){b=b|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;e=e+f+-1|0;m=c[b+8>>2]|0;n=b+12|0;j=c[n>>2]|0;o=b+4|0;k=c[o>>2]|0;do if(k){l=8-k|0;l=l>>>0>>0?l:f;g=a[b>>0]|0;if(!l){i=g;h=(g&255)>>>1}else{g=g&255;i=0;do{h=d[e>>0]|0|g&65535;g=h<<1;e=e+-1|0;i=i+1|0}while(i>>>0>>0);i=g&255;h=h&255}g=k+l|0;if((g|0)==8){a[m+j>>0]=h;f=f-l|0;j=j+1|0;break}a[b>>0]=i;b=g;c[o>>2]=b;return}while(0);k=f>>>3;if(k){i=e+(_(k,-8)|0)|0;g=j;h=0;while(1){a[m+g>>0]=(d[e+-1>>0]|0)<<6|(d[e>>0]|0)<<7|(d[e+-2>>0]|0)<<5|(d[e+-3>>0]|0)<<4|(d[e+-4>>0]|0)<<3|(d[e+-5>>0]|0)<<2|(d[e+-6>>0]|0)<<1|(d[e+-7>>0]|0);h=h+1|0;if((h|0)==(k|0))break;else{e=e+-8|0;g=g+1|0}}e=i;j=j+k|0}m=k<<3;i=f-m|0;if((f|0)==(m|0))e=0;else{g=e;e=0;h=0;while(1){e=(d[g>>0]|0|e&65534)<<1;h=h+1|0;if(h>>>0>=i>>>0)break;else g=g+-1|0}e=e&255}a[b>>0]=e;c[n>>2]=j;b=i;c[o>>2]=b;return}function In(f,g,h){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,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;v=f+8|0;i=c[v>>2]|0;D=1<>>0>=g>>>0)return;E=f+64|0;F=f+60|0;G=f+28|0;H=(h|0)==0;w=f+20|0;x=f+4|0;y=D<<1;z=D>>>1;A=D>>>0>>0;B=f+16|0;C=f+56|0;do{s=c[E>>2]|0;r=c[s+16>>2]|0;s=c[s+20>>2]|0;t=Dn(c[F>>2]|0)|0;u=c[G>>2]|0;a:do if(H){j=(yn(c[w>>2]|0,c[x>>2]|0)|0)&255;k=1<>2];l=0;do{b[u+(l<<1)>>1]=fb(l^j|0)|0;l=l+1|0}while(l>>>0>>0)}else{j=c[x>>2]|0;if(c[C>>2]|0){k=0;while(1){b[u+(k<<1)>>1]=zn(k,h+(_(j,i)|0)|0,j)|0;k=k+1|0;j=c[x>>2]|0;if(k>>>0>=1<>>0)break a}}n=h+(_(j,i)|0)|0;o=(j|0)==0;p=1<>0]|0)-(0-(l&1)&255)|0;k=((I|0)<0?0-I|0:I)+(k&65535)|0;m=m+1|0;if((m|0)==(j|0))break;else l=l>>>1}k=k&65535}b[u+(q<<1)>>1]=k;q=q+1|0}while(q>>>0

>>0)}while(0);j=c[f>>2]|0;k=1<>2]|0);l=k>>>1;if(A){m=0;n=D;o=0;while(1){p=(e[r+(m<<1)>>1]|0)+(e[u+(c[j+(o<<2)>>2]<<1)>>1]|0)|0;q=(e[r+(m+z<<1)>>1]|0)+(e[u+(c[j+(n<<2)>>2]<<1)>>1]|0)|0;I=(p&65535)>>>0<(q&65535)>>>0;b[s+(o<<1)>>1]=I?p:q;a[t+o>>0]=I&1^1;n=n+k|0;if(n>>>0>=y>>>0)break;else{m=m+l|0;o=o+k|0}}}Fn(c[F>>2]|0,s,c[B>>2]|0,k);An(c[E>>2]|0);i=i+1|0}while((i|0)!=(g|0));return}function Jn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[b+16>>2]|0;f=c[b+24>>2]|0;l=c[b+8>>2]|0;m=b+28|0;e=c[m>>2]|0;if(!e){k=b+32|0;l=0;k=c[k>>2]|0;Hn(d,k,l);d=c[m>>2]|0;d=d-l|0;c[m>>2]=d;return}k=b+20|0;b=b+32|0;h=0;i=0;g=((f|0)==0?l:f)+-1|0;while(1){f=a[(c[(c[k>>2]|0)+(g<<2)>>2]|0)+h>>0]|0?j:0;a[(c[b>>2]|0)+i>>0]=(f|0)!=0&1;i=i+1|0;if((i|0)==(e|0))break;else{h=(f|h)>>>1;g=((g|0)==0?l:g)+-1|0}}l=c[b>>2]|0;Hn(d,l,e);d=c[m>>2]|0;d=d-e|0;c[m>>2]=d;return}function Kn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;eq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Ln(a){a=a|0;var b=0,d=0;b=Wp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=9;a=Wp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=an(2,9,10328)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Mn(a){a=a|0;Xp(c[a+12>>2]|0);fn(c[a>>2]|0);Xp(a);return}function Nn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function On(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;pn(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Pn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;eq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Qn(a){a=a|0;var b=0,d=0;b=Wp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=3;c[b+8>>2]=9;a=Wp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=an(3,9,10332)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Rn(a){a=a|0;Xp(c[a+12>>2]|0);fn(c[a>>2]|0);Xp(a);return}function Sn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Tn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;pn(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Un(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;eq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Vn(a){a=a|0;var b=0,d=0;b=Wp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=6;c[b+8>>2]=15;a=Wp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=an(6,15,10338)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Wn(a){a=a|0;Xp(c[a+12>>2]|0);fn(c[a>>2]|0);Xp(a);return}function Xn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Yn(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+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0>>0;pn(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Zn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;eq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function _n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+yp(+sp(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){g=~~m;k=0-g|0;d=+hp(d,k);l=+hp(e,k)}else{l=e;g=0}i=d*d+l*l;k=0-g|0;f=+hp((d*b+l*c)/i,k);e=+hp((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+xo(s,d);f=e*b;e=e*c;break}i=+N(+b);g=i==s;j=+N(+c);k=j==s;if((g|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+xo(g?1.0:0.0,b);c=+xo(k?1.0:0.0,c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){k=+N(+d)==s;n=+xo(k?1.0:0.0,d);k=+N(+l)==s;e=+xo(k?1.0:0.0,l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);h[a>>3]=f;h[a+8>>3]=e;return}function $n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+zp(+tp(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){h=~~m;k=0-h|0;d=+vp(d,k);l=+vp(e,k)}else{l=e;h=0}i=d*d+l*l;k=0-h|0;f=+vp((d*b+l*c)/i,k);e=+vp((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+zo(s,d);f=e*b;e=e*c;break}i=+N(+b);h=i==s;j=+N(+c);k=j==s;if((h|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+zo(+(h&1),b);c=+zo(+(k&1),c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){n=+zo(+(+N(+d)==s&1),d);e=+zo(+(+N(+l)==s&1),l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);g[a>>2]=f;g[a+4>>2]=e;return}function ao(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=c[a+60>>2];a=bo(db(6,d|0)|0)|0;i=b;return a|0}function bo(a){a=a|0;if(a>>>0>4294963200){c[(co()|0)>>2]=0-a;a=-1}return a|0}function co(){var a=0;if(!(c[10750]|0))a=43044;else a=c[(Qa()|0)+64>>2]|0;return a|0}function eo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;if((i|0)>=(j|0))ba();o=r+16|0;n=r;e=r+32|0;p=a+28|0;f=c[p>>2]|0;c[e>>2]=f;q=a+20|0;f=(c[q>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;l=a+60|0;m=a+44|0;b=2;f=f+d|0;while(1){if(!(c[10750]|0)){c[o>>2]=c[l>>2];c[o+4>>2]=e;c[o+8>>2]=b;h=bo(nb(146,o|0)|0)|0}else{Ea(22,a|0);c[n>>2]=c[l>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=bo(nb(146,n|0)|0)|0;xa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[p>>2]=(c[p>>2]|0)+h;k=g;b=2}else k=g;else{k=c[m>>2]|0;c[p>>2]=k;c[q>>2]=k;k=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=k-h}if((f|0)==6){o=c[m>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);a=o;c[p>>2]=a;c[q>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[p>>2]=0;c[q>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=r;return d|0}function fo(a){a=a|0;if(!(c[a+68>>2]|0))go(a);return}function go(a){a=a|0;return}function ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;if((i|0)>=(j|0))ba();g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((bo(jb(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function io(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;if((i|0)>=(j|0))ba();h=n+16|0;g=n;f=n+32|0;c[f>>2]=d;k=f+4|0;m=b+48|0;o=c[m>>2]|0;c[k>>2]=e-((o|0)!=0&1);l=b+44|0;c[f+8>>2]=c[l>>2];c[f+12>>2]=o;if(!(c[10750]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=bo(mb(145,h|0)|0)|0}else{Ea(23,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=bo(mb(145,g|0)|0)|0;xa(0)}if((f|0)>=1){k=c[k>>2]|0;if(f>>>0>k>>>0){g=c[l>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-k);if(!(c[m>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=n;return f|0}function jo(a){a=a|0;if(!(c[a+68>>2]|0))go(a);return}function ko(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;if((i|0)>=(j|0))ba();f=g;c[b+36>>2]=1;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,Xa(54,f|0)|0):0)a[b+75>>0]=-1;f=eo(b,d,e)|0;i=g;return f|0}function lo(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,k=0,l=0;l=i;i=i+112|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=0;g=k+4|0;c[g>>2]=a;c[k+44>>2]=a;h=k+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[k+76>>2]=-1;mo(k,0);e=no(k,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[g>>2]|0)+(c[k+108>>2]|0)-(c[h>>2]|0));i=l;return e|0}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function no(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(co()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0}while((ro(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=oo(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=oo(b)|0;if((d[40130+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){mo(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[40130+i>>0]|0)>>>0>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;mo(b,0);c[(co()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=oo(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=oq(e|0,j|0,10,0)|0;l=C;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=gq(k|0,l|0,f|0,m|0)|0;j=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[40386+((e*23|0)>>>5&7)>>0]|0;j=a[40130+i>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f|i<>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;j=a[40130+i>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0>>0))break;else i=k}f=0}else{f=0;k=0}l=hq(-1,-1,n|0)|0;m=C;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=iq(k|0,i|0,n|0)|0;f=C;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;j=a[40130+i>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[40130+i>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f+(_(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;j=a[40130+i>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0>>0){n=pq(-1,-1,e|0,0)|0;o=C;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=oq(k|0,m|0,e|0,0)|0;l=C;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=gq(j|0,0,f|0,l|0)|0;f=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0;j=a[40130+i>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[40130+i>>0]|0)>>>0>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=oo(b)|0}while((d[40130+i>>0]|0)>>>0>>0);c[(co()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0>>0|(j|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(co()|0)>>2]=34;g=gq(g|0,h|0,-1,-1)|0;h=C;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(co()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=bq(i^e|0,j^g|0,e|0,g|0)|0;h=C}while(0);C=h;return g|0}function oo(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=po(b)|0;if((e|0)>=0){f=c[f>>2]|0;i=c[b+8>>2]|0;if(f){h=c[b+4>>2]|0;f=f-(c[b+108>>2]|0)|0;g=i;if((i-h|0)<(f|0))j=9;else c[b+100>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+100>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function po(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();b=e;if((c[a+8>>2]|0)==0?(qo(a)|0)!=0:0)b=-1;else if((qb[c[a+32>>2]&15](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function qo(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)qb[c[b+36>>2]&15](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function ro(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function so(a,b,c){a=a|0;b=b|0;c=c|0;a=lo(a,b,c,0,-2147483648)|0;return a|0}function to(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;j=+g[b+4>>2];i=+X(+(+g[b>>2]+-162.88958740234375));b=(g[k>>2]=i,c[k>>2]|0);i=(c[k>>2]=b&8388607|2130706432,+g[k>>2]);d=d+-19+(b>>>23)|0;b=(d|0)/2|0;h=(c[k>>2]=(b<<23)+1065353216,+g[k>>2]);f=(c[k>>2]=(d-b<<23)+1065353216,+g[k>>2]);e=+R(+j)*i*h*f;g[a>>2]=+Q(+j)*i*h*f;g[a+4>>2]=e;return}function uo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;a=+N(+a);h[k>>3]=a;m=c[k>>2]|0;g=c[k+4>>2]|0;a=+N(+b);h[k>>3]=a;e=c[k>>2]|0;f=c[k+4>>2]|0;i=g>>>0>>0|(g|0)==(f|0)&m>>>0>>0;l=i?e:m;j=i?f:g;e=i?m:e;f=i?g:f;g=hq(l|0,j|0,52)|0;i=hq(e|0,f|0,52)|0;c[k>>2]=l;c[k+4>>2]=j;a=+h[k>>3];c[k>>2]=e;c[k+4>>2]=f;b=+h[k>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+b;break}if(g>>>0<=1533)if(i>>>0<573){a=a*5260135901548373507240989.0e186;b=b*5260135901548373507240989.0e186;d=1.90109156629516e-211}else d=1.0;else{a=a*1.90109156629516e-211;b=b*1.90109156629516e-211;d=5260135901548373507240989.0e186}o=a*134217729.0;o=o+(a-o);n=a-o;a=a*a;q=b*134217729.0;q=q+(b-q);p=b-q;b=b*b;a=d*+O(+(a+(b+(p*p+(q*q-b+q*2.0*p)+(n*n+(o*o-a+o*2.0*n))))))}}else a=b;while(0);return +a}function vo(a){a=a|0;return +(+wo(+g[a>>2],+g[a+4>>2]))}function wo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,h=0,i=0;a=+N(+a);h=(g[k>>2]=a,c[k>>2]|0);b=+N(+b);f=(g[k>>2]=b,c[k>>2]|0);i=h>>>0>>0;e=i?f:h;f=i?h:f;b=(c[k>>2]=e,+g[k>>2]);a=(c[k>>2]=f,+g[k>>2]);do if((f|0)!=2139095040){if(e>>>0>2139095039|(f|0)==0|(e-f|0)>>>0>209715199){a=b+a;break}if(e>>>0<=1568669695)if(f>>>0<562036736){a=a*1237940039285380274899124.0e3;b=b*1237940039285380274899124.0e3;d=8.077935669463161e-28}else d=1.0;else{a=a*8.077935669463161e-28;b=b*8.077935669463161e-28;d=1237940039285380274899124.0e3}a=d*+O(+(b*b+a*a))}while(0);return +a}function xo(a,b){a=+a;b=+b;var d=0;h[k>>3]=b;d=c[k+4>>2]|0;b=+N(+a);h[k>>3]=b;d=d&-2147483648|c[k+4>>2];c[k>>2]=c[k>>2];c[k+4>>2]=d;return +(+h[k>>3])}function yo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,h=0.0;h=+g[b>>2];f=+g[b+4>>2];do if(!(h==0.0&f==0.0)){d=+N(+f);if(((g[k>>2]=d,c[k>>2]|0)|0)==2139095040){g[a>>2]=s;g[a+4>>2]=f;break}e=(g[k>>2]=h,c[k>>2]|0);d=+N(+h);b=(g[k>>2]=d,c[k>>2]|0);if(b>>>0>2139095040){f=f-f;g[a>>2]=h;g[a+4>>2]=f/f;break}if((b|0)==2139095040){d=f-f;if((e|0)<0){d=+N(+d);h=+zo(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{f=+zo(d,f);g[a>>2]=h;g[a+4>>2]=f;break}}else if(!(h>=0.0)){h=+O(+((-h+ +uo(h,f))*.5));d=+N(+f)/(h*2.0);h=+zo(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{h=+O(+((h+ +uo(h,f))*.5));g[a>>2]=h;g[a+4>>2]=f/(h*2.0);break}}else{g[a>>2]=0.0;g[a+4>>2]=f}while(0);return}function zo(a,b){a=+a;b=+b;var d=0;d=(g[k>>2]=b,c[k>>2]|0);b=+N(+a);return +(c[k>>2]=d&-2147483648|(g[k>>2]=b,c[k>>2]|0),+g[k>>2])}function Ao(a){a=a|0;return +(+W(+(+g[a+4>>2]),+(+g[a>>2])))}function Bo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();f=d+16|0;e=d+8|0;h=d;k=c[b>>2]|0;g[h>>2]=-+g[b+4>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Co(e,f);b=c[e+4>>2]|0;c[a>>2]=c[e>>2];c[a+4>>2]=b;i=d;return}function Co(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();e=s+16|0;f=s+8|0;h=s;p=+g[b>>2];l=b+4|0;q=+g[l>>2];r=(g[k>>2]=p,c[k>>2]|0);d=+N(+p);m=(g[k>>2]=d,c[k>>2]|0);d=+N(+q);n=(g[k>>2]=d,c[k>>2]|0);o=(m|0)<2139095040;do if(o&(n|0)<2139095040){if(!n){g[a>>2]=+Do(p);g[a+4>>2]=p*q;break}if((m|0)<1091567616){d=+Do(p)*+Q(+q);q=+Go(p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1118925336){t=+X(+(+N(+p)))*.5;d=t*+Q(+q);q=+zo(t,p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1128313319){g[h>>2]=+N(+p);g[h+4>>2]=q;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];to(f,e,-1);r=c[f>>2]|0;t=+g[f+4>>2];c[b>>2]=r;g[l>>2]=t;t=t*+zo(1.0,p);c[a>>2]=r;g[a+4>>2]=t;break}else{p=p*1701411834604692317316873.0e14;t=p*+R(+q);g[a>>2]=p*p*+Q(+q);g[a+4>>2]=t;break}}else{f=(n|0)>2139095039;if((m|0)==0&f){q=q-q;t=+zo(0.0,p*q);g[a>>2]=q;g[a+4>>2]=t;break}e=(m|0)>2139095039;if(e&(n|0)==0){d=p*p;if(!(r&8388607)){t=q*+zo(0.0,p);g[a>>2]=d;g[a+4>>2]=t;break}else{t=+zo(0.0,(p+p)*q);g[a>>2]=d;g[a+4>>2]=t;break}}if(o&f){t=q-q;g[a>>2]=t;g[a+4>>2]=p*t;break}d=p*p;if(!(e&(r&8388607|0)==0)){t=q-q;g[a>>2]=d*t;g[a+4>>2]=(p+p)*t;break}if(f){g[a>>2]=d;g[a+4>>2]=p*(q-q);break}else{t=p*+R(+q);g[a>>2]=d*+Q(+q);g[a+4>>2]=t;break}}while(0);i=s;return}function Do(a){a=+a;var b=0;a=+N(+a);b=(g[k>>2]=a,c[k>>2]|0);do if(b>>>0<1060205079)if(b>>>0<964689920)a=1.0;else{a=+Eo(a);a=a*a/((a+1.0)*2.0)+1.0}else if(b>>>0<1118925335){a=+X(+a);a=(a+1.0/a)*.5;break}else{a=+Fo(a);break}while(0);return +a}function Eo(a){a=+a;var b=0,d=0,e=0.0,f=0.0,h=0.0,i=0,j=0.0;d=(g[k>>2]=a,c[k>>2]|0);h=+N(+a);b=(g[k>>2]=h,c[k>>2]|0);d=d>>>31;do if(b>>>0>1100331075){if(b>>>0<=2139095040)if(!d)if(a>88.7216796875)a=a*1701411834604692317316873.0e14;else i=11;else a=-1.0}else{if(b>>>0<=1051816472)if(b>>>0<855638016)break;else{h=0.0;d=0;i=14;break}if(b>>>0<1065686418)if(!d){e=a+-.6931381225585938;b=1;f=9.05800061445916e-06;i=12;break}else{e=a+.6931381225585938;b=-1;f=-9.05800061445916e-06;i=12;break}else i=11}while(0);if((i|0)==11){b=~~(a*1.4426950216293335+(d|0?-.5:.5));f=+(b|0);e=a-f*.6931381225585938;f=f*9.05800061445916e-06;i=12}if((i|0)==12){h=e-f;a=h;h=e-h-f;d=b;i=14}a:do if((i|0)==14){f=a*.5;e=a*f;j=e*(e*1.5807170420885086e-03+-.03333321213722229)+1.0;f=3.0-f*j;f=e*((j-f)/(6.0-a*f));if(!d){a=a-(a*f-e);break}e=a*(f-h)-h-e;switch(d|0){case -1:{a=(a-e)*.5+-.5;break a}case 1:if(a<-.25){a=(e-(a+.5))*-2.0;break a}else{a=(a-e)*2.0+1.0;break a}default:{f=(c[k>>2]=(d<<23)+1065353216,+g[k>>2]);if(d>>>0>56){a=a-e+1.0;a=((d|0)==128?a*2.0*1701411834604692317316873.0e14:f*a)+-1.0;break a}b=127-d<<23;if((d|0)<23)a=1.0-(c[k>>2]=b,+g[k>>2])+(a-e);else a=a-((c[k>>2]=b,+g[k>>2])+e)+1.0;a=f*a;break a}}}while(0);return +a}function Fo(a){a=+a;return +(+X(+(a+-162.88958740234375))*1661534994731144841129758.0e11*1661534994731144841129758.0e11)}function Go(a){a=+a;var b=0.0,d=0.0,e=0;d=((g[k>>2]=a,c[k>>2]|0)|0)<0?-.5:.5;b=+N(+a);e=(g[k>>2]=b,c[k>>2]|0);do if(e>>>0<1118925335){b=+Eo(b);if(e>>>0>=1065353216){a=d*(b+b/(b+1.0));break}if(e>>>0>=964689920)a=d*(b*2.0-b*b/(b+1.0))}else a=d*2.0*+Fo(b);while(0);return +a}function Ho(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0.0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();h=o+16|0;l=o+8|0;m=o;n=+g[b>>2];d=+g[b+4>>2];p=+N(+d);e=(g[k>>2]=p,c[k>>2]|0);do if(e){f=(g[k>>2]=n,c[k>>2]|0);p=+N(+n);b=(g[k>>2]=p,c[k>>2]|0);if(!b){p=+R(+d);g[a>>2]=+Q(+d);g[a+4>>2]=p;break}if(e>>>0<=2139095039)if((f+-1118925336|0)>>>0<9342557){g[m>>2]=n;g[m+4>>2]=d;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];to(l,h,0);m=c[l+4>>2]|0;c[a>>2]=c[l>>2];c[a+4>>2]=m;break}else{n=+X(+n);p=n*+R(+d);g[a>>2]=n*+Q(+d);g[a+4>>2]=p;break}if((b|0)!=2139095040){p=d-d;g[a>>2]=p;g[a+4>>2]=p;break}if((f|0)<0){g[a>>2]=0.0;g[a+4>>2]=0.0;break}else{g[a>>2]=n;g[a+4>>2]=d-d;break}}else{g[a>>2]=+X(+n);g[a+4>>2]=d}while(0);i=o;return}function Io(a,b){a=a|0;b=b|0;var c=0.0;c=-+h[b+8>>3];h[a>>3]=+h[b>>3];h[a+8>>3]=c;return}function Jo(a,b){a=a|0;b=b|0;var d=0.0;d=-+g[b+4>>2];c[a>>2]=c[b>>2];g[a+4>>2]=d;return}function Ko(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,k=0,l=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();h=d+16|0;f=d+8|0;k=d;l=c[b>>2]|0;g[k>>2]=-+g[b+4>>2];c[k+4>>2]=l;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Lo(f,h);e=-+g[f>>2];c[a>>2]=c[f+4>>2];g[a+4>>2]=e;i=d;return}function Lo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,t=0.0,u=0.0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();d=r+16|0;e=r+8|0;f=r;m=+g[b>>2];h=b+4|0;n=+g[h>>2];o=(g[k>>2]=m,c[k>>2]|0);t=+N(+m);l=(g[k>>2]=t,c[k>>2]|0);t=+N(+n);p=(g[k>>2]=t,c[k>>2]|0);q=(l|0)<2139095040;do if(q&(p|0)<2139095040){if(!p){g[a>>2]=+Go(m);g[a+4>>2]=n;break}if((l|0)<1091567616){u=+Go(m)*+Q(+n);t=+Do(m)*+R(+n);g[a>>2]=u;g[a+4>>2]=t;break}if((l|0)<1118925336){t=+X(+(+N(+m)))*.5;u=t*+R(+n);g[a>>2]=+zo(t,m)*+Q(+n);g[a+4>>2]=u;break}if((l|0)<1128313319){g[f>>2]=+N(+m);g[f+4>>2]=n;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];to(e,d,-1);p=c[e>>2]|0;q=c[e+4>>2]|0;c[b>>2]=p;c[h>>2]=q;u=(c[k>>2]=p,+g[k>>2]);g[a>>2]=u*+zo(1.0,m);c[a+4>>2]=q;break}else{t=m*1701411834604692317316873.0e14;u=t*t*+R(+n);g[a>>2]=t*+Q(+n);g[a+4>>2]=u;break}}else{e=(p|0)>2139095039;if((l|0)==0&e){u=n-n;g[a>>2]=+zo(0.0,m*u);g[a+4>>2]=u;break}d=(l|0)>2139095039;if(d&(p|0)==0)if(!(o&8388607)){g[a>>2]=m;g[a+4>>2]=n;break}else{u=+zo(0.0,n);g[a>>2]=m;g[a+4>>2]=u;break}if(q&e){u=n-n;g[a>>2]=u;g[a+4>>2]=m*u;break}if(!(d&(o&8388607|0)==0)){u=n-n;g[a>>2]=m*m*u;g[a+4>>2]=(m+m)*u;break}if(e){g[a>>2]=m*m;g[a+4>>2]=m*(n-n);break}else{t=m*+Q(+n);u=+R(+n)*s;g[a>>2]=t;g[a+4>>2]=u;break}}while(0);i=r;return}function Mo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function No(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=Oo(a,b,f)|0;i=e;return d|0}function Oo(a,b,c){a=a|0;b=b|0;c=c|0;return Po(a,2147483647,b,c)|0}function Po(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+128|0;if((i|0)>=(j|0))ba();g=o+112|0;n=o;h=n;k=9612;l=h+112|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;m=4}else{c[(co()|0)>>2]=75;d=-1}else{g=b;m=4}if((m|0)==4){m=-2-g|0;m=d>>>0>m>>>0?m:d;c[n+48>>2]=m;b=n+20|0;c[b>>2]=g;c[n+44>>2]=g;d=g+m|0;g=n+16|0;c[g>>2]=d;c[n+28>>2]=d;d=Ro(n,e,f)|0;if(m){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=o;return d|0}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;eq(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Ro(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+224|0;if((i|0)>=(j|0))ba();p=t+120|0;s=t+80|0;r=t;q=t+136|0;f=s;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[p>>2]=c[e>>2];if((So(0,d,p,r,s)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)n=bp(b)|0;else n=0;e=c[b>>2]|0;o=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=q;k=b+28|0;c[k>>2]=q;l=b+20|0;c[l>>2]=q;c[e>>2]=80;m=b+16|0;c[m>>2]=q+80;f=So(b,d,p,r,s)|0;if(h){qb[c[b+36>>2]&15](b,0,0)|0;f=(c[l>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[m>>2]=0;c[k>>2]=0;c[l>>2]=0}}else f=So(b,d,p,r,s)|0;e=c[b>>2]|0;c[b>>2]=e|o;if(n|0)go(b);e=(e&32|0)==0?f:-1}i=t;return e|0}function So(e,f,g,l,m){e=e|0;f=f|0;g=g|0;l=l|0;m=m|0;var 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.0,z=0,A=0,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,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;ka=i;i=i+624|0;if((i|0)>=(j|0))ba();fa=ka+24|0;ha=ka+16|0;ga=ka+588|0;ca=ka+576|0;ea=ka;X=ka+536|0;ja=ka+8|0;ia=ka+528|0;N=(e|0)!=0;O=X+40|0;W=O;X=X+39|0;Y=ja+4|0;Z=ga;$=0-Z|0;aa=ca+12|0;ca=ca+11|0;da=aa;P=da-Z|0;Q=-2-Z|0;R=da+2|0;S=fa+288|0;T=ga+9|0;U=T;V=ga+8|0;n=0;p=0;o=0;z=f;a:while(1){do if((n|0)>-1)if((p|0)>(2147483647-n|0)){c[(co()|0)>>2]=75;n=-1;break}else{n=p+n|0;break}while(0);f=a[z>>0]|0;if(!(f<<24>>24)){M=244;break}else p=z;b:while(1){switch(f<<24>>24){case 37:{f=p;M=9;break b}case 0:{f=p;break b}default:{}}L=p+1|0;f=a[L>>0]|0;p=L}c:do if((M|0)==9)while(1){M=0;if((a[f+1>>0]|0)!=37)break c;p=p+1|0;f=f+2|0;if((a[f>>0]|0)==37)M=9;else break}while(0);x=p-z|0;if(N?(c[e>>2]&32|0)==0:0)To(z,x,e)|0;if((p|0)!=(z|0)){p=x;z=f;continue}s=f+1|0;p=a[s>>0]|0;q=(p<<24>>24)+-48|0;if(q>>>0<10){L=(a[f+2>>0]|0)==36;s=L?f+3|0:s;p=a[s>>0]|0;v=L?q:-1;o=L?1:o}else v=-1;f=p<<24>>24;d:do if((f&-32|0)==32){q=0;while(1){if(!(1<>24)+-32|q;s=s+1|0;p=a[s>>0]|0;f=p<<24>>24;if((f&-32|0)!=32){t=q;break}}}else t=0;while(0);do if(p<<24>>24==42){p=s+1|0;f=(a[p>>0]|0)+-48|0;if(f>>>0<10?(a[s+2>>0]|0)==36:0){c[m+(f<<2)>>2]=10;o=1;s=s+3|0;f=c[l+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(o|0){n=-1;break a}if(!N){w=t;o=0;s=p;L=0;break}o=(c[g>>2]|0)+(4-1)&~(4-1);f=c[o>>2]|0;c[g>>2]=o+4;o=0;s=p}if((f|0)<0){w=t|8192;L=0-f|0}else{w=t;L=f}}else{q=(p<<24>>24)+-48|0;if(q>>>0<10){f=s;p=0;do{p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0}while(q>>>0<10);if((p|0)<0){n=-1;break a}else{w=t;s=f;L=p}}else{w=t;L=0}}while(0);e:do if((a[s>>0]|0)==46){f=s+1|0;p=a[f>>0]|0;if(p<<24>>24!=42){q=(p<<24>>24)+-48|0;if(q>>>0<10)p=0;else{t=0;break}while(1){p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0;if(q>>>0>=10){t=p;break e}}}f=s+2|0;p=(a[f>>0]|0)+-48|0;if(p>>>0<10?(a[s+3>>0]|0)==36:0){c[m+(p<<2)>>2]=10;t=c[l+((a[f>>0]|0)+-48<<3)>>2]|0;f=s+4|0;break}if(o|0){n=-1;break a}if(N){K=(c[g>>2]|0)+(4-1)&~(4-1);t=c[K>>2]|0;c[g>>2]=K+4}else t=0}else{t=-1;f=s}while(0);u=0;while(1){p=(a[f>>0]|0)+-65|0;if(p>>>0>57){n=-1;break a}q=f+1|0;p=a[40395+(u*58|0)+p>>0]|0;s=p&255;if((s+-1|0)>>>0<8){f=q;u=s}else{K=q;break}}if(!(p<<24>>24)){n=-1;break}q=(v|0)>-1;do if(p<<24>>24==19)if(q){n=-1;break a}else M=52;else{if(q){c[m+(v<<2)>>2]=s;I=l+(v<<3)|0;J=c[I+4>>2]|0;M=ea;c[M>>2]=c[I>>2];c[M+4>>2]=J;M=52;break}if(!N){n=0;break a}Vo(ea,s,g)}while(0);if((M|0)==52?(M=0,!N):0){p=x;z=K;continue}v=a[f>>0]|0;v=(u|0)!=0&(v&15|0)==3?v&-33:v;q=w&-65537;J=(w&8192|0)==0?w:q;f:do switch(v|0){case 110:switch(u|0){case 0:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 1:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 2:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}case 3:{b[c[ea>>2]>>1]=n;p=x;z=K;continue a}case 4:{a[c[ea>>2]>>0]=n;p=x;z=K;continue a}case 6:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 7:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}default:{p=x;z=K;continue a}}case 112:{u=J|8;t=t>>>0>8?t:8;v=120;M=64;break}case 88:case 120:{u=J;M=64;break}case 111:{q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;if((p|0)==0&(q|0)==0)f=O;else{f=O;do{f=f+-1|0;a[f>>0]=p&7|48;p=hq(p|0,q|0,3)|0;q=C}while(!((p|0)==0&(q|0)==0))}if(!(J&8)){p=J;u=0;s=40875;M=77}else{u=W-f|0;p=J;t=(t|0)>(u|0)?t:u+1|0;u=0;s=40875;M=77}break}case 105:case 100:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;if((p|0)<0){f=bq(0,0,f|0,p|0)|0;p=C;q=ea;c[q>>2]=f;c[q+4>>2]=p;q=1;s=40875;M=76;break f}if(!(J&2048)){s=J&1;q=s;s=(s|0)==0?40875:40877;M=76}else{q=1;s=40876;M=76}break}case 117:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;q=0;s=40875;M=76;break}case 99:{a[X>>0]=c[ea>>2];f=X;v=1;x=0;w=40875;p=O;break}case 109:{p=Xo(c[(co()|0)>>2]|0)|0;M=82;break}case 115:{p=c[ea>>2]|0;p=p|0?p:42777;M=82;break}case 67:{c[ja>>2]=c[ea>>2];c[Y>>2]=0;c[ea>>2]=ja;f=ja;t=-1;M=86;break}case 83:{f=c[ea>>2]|0;if(!t){Yo(e,32,L,0,J);f=0;M=97}else M=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{r=+h[ea>>3];c[ha>>2]=0;h[k>>3]=r;if((c[k+4>>2]|0)>=0)if(!(J&2048)){I=J&1;H=I;I=(I|0)==0?42785:42790}else{H=1;I=42787}else{r=-r;H=1;I=42784}h[k>>3]=r;G=c[k+4>>2]&2146435072;do if(G>>>0<2146435072|(G|0)==2146435072&0<0){y=+$o(r,ha)*2.0;p=y!=0.0;if(p)c[ha>>2]=(c[ha>>2]|0)+-1;E=v|32;if((E|0)==97){w=v&32;z=(w|0)==0?I:I+9|0;x=H|2;f=12-t|0;do if(!(t>>>0>11|(f|0)==0)){r=8.0;do{f=f+-1|0;r=r*16.0}while((f|0)!=0);if((a[z>>0]|0)==45){r=-(r+(-y-r));break}else{r=y+r-r;break}}else r=y;while(0);p=c[ha>>2]|0;f=(p|0)<0?0-p|0:p;f=Wo(f,((f|0)<0)<<31>>31,aa)|0;if((f|0)==(aa|0)){a[ca>>0]=48;f=ca}a[f+-1>>0]=(p>>31&2)+43;u=f+-2|0;a[u>>0]=v+15;s=(t|0)<1;q=(J&8|0)==0;p=ga;while(1){I=~~r;f=p+1|0;a[p>>0]=d[40859+I>>0]|w;r=(r-+(I|0))*16.0;do if((f-Z|0)==1){if(q&(s&r==0.0))break;a[f>>0]=46;f=p+2|0}while(0);if(!(r!=0.0))break;else p=f}q=u;t=(t|0)!=0&(Q+f|0)<(t|0)?R+t-q|0:P-q+f|0;s=t+x|0;Yo(e,32,L,s,J);if(!(c[e>>2]&32))To(z,x,e)|0;Yo(e,48,L,s,J^65536);p=f-Z|0;if(!(c[e>>2]&32))To(ga,p,e)|0;f=da-q|0;Yo(e,48,t-(p+f)|0,0,0);if(!(c[e>>2]&32))To(u,f,e)|0;Yo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s;break}f=(t|0)<0?6:t;if(p){p=(c[ha>>2]|0)+-28|0;c[ha>>2]=p;r=y*268435456.0}else{r=y;p=c[ha>>2]|0}G=(p|0)<0?fa:S;F=G;p=G;do{D=~~r>>>0;c[p>>2]=D;p=p+4|0;r=(r-+(D>>>0))*1.0e9}while(r!=0.0);q=p;p=c[ha>>2]|0;if((p|0)>0){t=G;while(1){u=(p|0)>29?29:p;s=q+-4|0;do if(s>>>0>>0)s=t;else{p=0;do{D=iq(c[s>>2]|0,0,u|0)|0;D=gq(D|0,C|0,p|0,0)|0;p=C;B=qq(D|0,p|0,1e9,0)|0;c[s>>2]=B;p=pq(D|0,p|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=t>>>0);if(!p){s=t;break}s=t+-4|0;c[s>>2]=p}while(0);while(1){if(q>>>0<=s>>>0)break;p=q+-4|0;if(!(c[p>>2]|0))q=p;else break}p=(c[ha>>2]|0)-u|0;c[ha>>2]=p;if((p|0)>0)t=s;else break}}else s=G;if((p|0)<0){z=((f+25|0)/9|0)+1|0;A=(E|0)==102;w=s;while(1){x=0-p|0;x=(x|0)>9?9:x;do if(w>>>0>>0){p=(1<>>x;s=0;u=w;do{D=c[u>>2]|0;c[u>>2]=(D>>>x)+s;s=_(D&p,t)|0;u=u+4|0}while(u>>>0>>0);p=(c[w>>2]|0)==0?w+4|0:w;if(!s){s=p;break}c[q>>2]=s;s=p;q=q+4|0}else s=(c[w>>2]|0)==0?w+4|0:w;while(0);p=A?G:s;q=(q-p>>2|0)>(z|0)?p+(z<<2)|0:q;p=(c[ha>>2]|0)+x|0;c[ha>>2]=p;if((p|0)>=0){A=s;break}else w=s}}else A=s;do if(A>>>0>>0){p=(F-A>>2)*9|0;t=c[A>>2]|0;if(t>>>0<10)break;else s=10;do{s=s*10|0;p=p+1|0}while(t>>>0>=s>>>0)}else p=0;while(0);B=(E|0)==103;D=(f|0)!=0;s=f-((E|0)!=102?p:0)+((D&B)<<31>>31)|0;if((s|0)<(((q-F>>2)*9|0)+-9|0)){u=s+9216|0;s=G+4+(((u|0)/9|0)+-1024<<2)|0;u=((u|0)%9|0)+1|0;if((u|0)<9){t=10;do{t=t*10|0;u=u+1|0}while((u|0)!=9)}else t=10;x=c[s>>2]|0;z=(x>>>0)%(t>>>0)|0;u=(s+4|0)==(q|0);do if(u&(z|0)==0)t=A;else{y=(((x>>>0)/(t>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;w=(t|0)/2|0;if(z>>>0>>0)r=.5;else r=u&(z|0)==(w|0)?1.0:1.5;do if(H){if((a[I>>0]|0)!=45)break;y=-y;r=-r}while(0);u=x-z|0;c[s>>2]=u;if(!(y+r!=y)){t=A;break}E=u+t|0;c[s>>2]=E;if(E>>>0>999999999){p=A;while(1){t=s+-4|0;c[s>>2]=0;if(t>>>0

>>0){p=p+-4|0;c[p>>2]=0}E=(c[t>>2]|0)+1|0;c[t>>2]=E;if(E>>>0>999999999)s=t;else{w=p;s=t;break}}}else w=A;p=(F-w>>2)*9|0;u=c[w>>2]|0;if(u>>>0<10){t=w;break}else t=10;do{t=t*10|0;p=p+1|0}while(u>>>0>=t>>>0);t=w}while(0);E=s+4|0;A=t;q=q>>>0>E>>>0?E:q}x=0-p|0;while(1){if(q>>>0<=A>>>0){z=0;E=q;break}s=q+-4|0;if(!(c[s>>2]|0))q=s;else{z=1;E=q;break}}do if(B){f=(D&1^1)+f|0;if((f|0)>(p|0)&(p|0)>-5){v=v+-1|0;f=f+-1-p|0}else{v=v+-2|0;f=f+-1|0}q=J&8;if(q|0)break;do if(z){q=c[E+-4>>2]|0;if(!q){s=9;break}if(!((q>>>0)%10|0)){t=10;s=0}else{s=0;break}do{t=t*10|0;s=s+1|0}while(!((q>>>0)%(t>>>0)|0|0))}else s=9;while(0);q=((E-F>>2)*9|0)+-9|0;if((v|32|0)==102){q=q-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}else{q=q+p-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}}else q=J&8;while(0);w=f|q;t=(w|0)!=0&1;u=(v|32|0)==102;if(u){p=(p|0)>0?p:0;v=0}else{s=(p|0)<0?x:p;s=Wo(s,((s|0)<0)<<31>>31,aa)|0;if((da-s|0)<2)do{s=s+-1|0;a[s>>0]=48}while((da-s|0)<2);a[s+-1>>0]=(p>>31&2)+43;F=s+-2|0;a[F>>0]=v;p=da-F|0;v=F}x=H+1+f+t+p|0;Yo(e,32,L,x,J);if(!(c[e>>2]&32))To(I,H,e)|0;Yo(e,48,L,x,J^65536);do if(u){s=A>>>0>G>>>0?G:A;p=s;do{q=Wo(c[p>>2]|0,0,T)|0;do if((p|0)==(s|0)){if((q|0)!=(T|0))break;a[V>>0]=48;q=V}else{if(q>>>0<=ga>>>0)break;dq(ga|0,48,q-Z|0)|0;do q=q+-1|0;while(q>>>0>ga>>>0)}while(0);if(!(c[e>>2]&32))To(q,U-q|0,e)|0;p=p+4|0}while(p>>>0<=G>>>0);do if(w|0){if(c[e>>2]&32|0)break;To(42828,1,e)|0}while(0);if((f|0)>0&p>>>0>>0){q=p;while(1){p=Wo(c[q>>2]|0,0,T)|0;if(p>>>0>ga>>>0){dq(ga|0,48,p-Z|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}if(!(c[e>>2]&32))To(p,(f|0)>9?9:f,e)|0;q=q+4|0;p=f+-9|0;if(!((f|0)>9&q>>>0>>0)){f=p;break}else f=p}}Yo(e,48,f+9|0,9,0)}else{u=z?E:A+4|0;if((f|0)>-1){t=(q|0)==0;s=A;do{p=Wo(c[s>>2]|0,0,T)|0;if((p|0)==(T|0)){a[V>>0]=48;p=V}do if((s|0)==(A|0)){q=p+1|0;if(!(c[e>>2]&32))To(p,1,e)|0;if(t&(f|0)<1){p=q;break}if(c[e>>2]&32|0){p=q;break}To(42828,1,e)|0;p=q}else{if(p>>>0<=ga>>>0)break;dq(ga|0,48,p+$|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}while(0);q=U-p|0;if(!(c[e>>2]&32))To(p,(f|0)>(q|0)?q:f,e)|0;f=f-q|0;s=s+4|0}while(s>>>0>>0&(f|0)>-1)}Yo(e,48,f+18|0,18,0);if(c[e>>2]&32|0)break;To(v,da-v|0,e)|0}while(0);Yo(e,32,L,x,J^8192);f=(x|0)<(L|0)?L:x}else{u=(v&32|0)!=0;t=r!=r|0.0!=0.0;p=t?0:H;s=p+3|0;Yo(e,32,L,s,q);f=c[e>>2]|0;if(!(f&32)){To(I,p,e)|0;f=c[e>>2]|0}if(!(f&32))To(t?(u?42824:42811):u?42803:42807,3,e)|0;Yo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s}while(0);p=f;z=K;continue a}default:{f=z;q=J;v=t;x=0;w=40875;p=O}}while(0);g:do if((M|0)==64){q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;s=v&32;if(!((p|0)==0&(q|0)==0)){f=O;do{f=f+-1|0;a[f>>0]=d[40859+(p&15)>>0]|s;p=hq(p|0,q|0,4)|0;q=C}while(!((p|0)==0&(q|0)==0));M=ea;if((u&8|0)==0|(c[M>>2]|0)==0&(c[M+4>>2]|0)==0){p=u;u=0;s=40875;M=77}else{p=u;u=2;s=40875+(v>>4)|0;M=77}}else{f=O;p=u;u=0;s=40875;M=77}}else if((M|0)==76){f=Wo(f,p,O)|0;p=J;u=q;M=77}else if((M|0)==82){M=0;J=Mo(p,0,t)|0;I=(J|0)==0;f=p;v=I?t:J-p|0;x=0;w=40875;p=I?p+t|0:J}else if((M|0)==86){M=0;q=0;p=0;u=f;while(1){s=c[u>>2]|0;if(!s)break;p=Zo(ia,s)|0;if((p|0)<0|p>>>0>(t-q|0)>>>0)break;q=p+q|0;if(t>>>0>q>>>0)u=u+4|0;else break}if((p|0)<0){n=-1;break a}Yo(e,32,L,q,J);if(!q){f=0;M=97}else{s=0;while(1){p=c[f>>2]|0;if(!p){f=q;M=97;break g}p=Zo(ia,p)|0;s=p+s|0;if((s|0)>(q|0)){f=q;M=97;break g}if(!(c[e>>2]&32))To(ia,p,e)|0;if(s>>>0>=q>>>0){f=q;M=97;break}else f=f+4|0}}}while(0);if((M|0)==97){M=0;Yo(e,32,L,f,J^8192);p=(L|0)>(f|0)?L:f;z=K;continue}if((M|0)==77){M=0;q=(t|0)>-1?p&-65537:p;p=ea;p=(c[p>>2]|0)!=0|(c[p+4>>2]|0)!=0;if((t|0)!=0|p){v=(p&1^1)+(W-f)|0;v=(t|0)>(v|0)?t:v;x=u;w=s;p=O}else{f=O;v=0;x=u;w=s;p=O}}u=p-f|0;s=(v|0)<(u|0)?u:v;t=x+s|0;p=(L|0)<(t|0)?t:L;Yo(e,32,p,t,q);if(!(c[e>>2]&32))To(w,x,e)|0;Yo(e,48,p,t,q^65536);Yo(e,48,s,u,0);if(!(c[e>>2]&32))To(f,u,e)|0;Yo(e,32,p,t,q^8192);z=K}h:do if((M|0)==244)if(!e)if(o){n=1;while(1){o=c[m+(n<<2)>>2]|0;if(!o)break;Vo(l+(n<<3)|0,o,g);n=n+1|0;if((n|0)>=10){n=1;break h}}if((n|0)<10)while(1){if(c[m+(n<<2)>>2]|0){n=-1;break h}n=n+1|0;if((n|0)>=10){n=1;break}}else n=1}else n=0;while(0);i=ka;return n|0}function To(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Uo(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){i=e+20|0;f=c[i>>2]|0;h=f;if((g-f|0)>>>0>>0){f=qb[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){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((qb[c[e+36>>2]&15](e,b,f)|0)>>>0>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);eq(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Uo(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&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);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Vo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{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&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{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&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function Wo(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=qq(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=pq(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function Xo(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[40885+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=40973;e=5;break}}if((e|0)==2)if(!c)b=40973;else{b=40973;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function Yo(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,k=0;k=i;i=i+256|0;if((i|0)>=(j|0))ba();h=k;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;dq(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){To(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;To(h,f,a)|0}while(0);i=k;return}function Zo(a,b){a=a|0;b=b|0;if(!a)a=0;else a=_o(a,b,0)|0;return a|0}function _o(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=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;b=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;b=4;break}else{c[(co()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function $o(a,b){a=+a;b=b|0;return +(+ap(a,b))}function ap(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=hq(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+ap(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function bp(a){a=a|0;return 0}function cp(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function dp(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=a;a=db(6,d|0)|0;a=bo((a|0)==-4?-115:a)|0;i=b;return a|0}function ep(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();f=e;g=e+16|0;c[g>>2]=d;h=(c[g>>2]|0)+(4-1)&~(4-1);d=c[h>>2]|0;c[g>>2]=h+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=d;d=bo(eb(5,f|0)|0)|0;i=e;return d|0}function fp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,t=0.0,u=0.0,v=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,J=0,K=0,L=0,M=0,O=0.0;M=i;i=i+512|0;if((i|0)>=(j|0))ba();I=M;switch(e|0){case 0:{L=24;K=-149;B=4;break}case 1:{L=53;K=-1074;B=4;break}case 2:{L=53;K=-1074;B=4;break}default:g=0.0}a:do if((B|0)==4){F=b+4|0;E=b+100|0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0}while((ro(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;J=h;break b}else{e=oo(b)|0;J=h;break b}}default:J=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[42815+e>>0]|0))break;do if(e>>>0<7){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=oo(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{B=23;break}default:{l=(f|0)!=0;if(l&e>>>0>3)if((e|0)==8)break c;else{B=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[42824+e>>0]|0))break d;do if(e>>>0<2){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=oo(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;if((e|0)==40)e=1;else{if(!(c[E>>2]|0)){g=r;break a}c[F>>2]=(c[F>>2]|0)+-1;g=r;break a}while(1){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0}else h=oo(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!l){c[(co()|0)>>2]=22;mo(b,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{do if((h|0)==48){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;if((e|32|0)!=120){if(!(c[E>>2]|0)){e=48;break}c[F>>2]=(c[F>>2]|0)+-1;e=48;break}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=0}else{e=oo(b)|0;l=0}e:while(1){switch(e|0){case 46:{B=74;break e}case 48:break;default:{z=0;m=0;y=0;h=0;o=l;p=0;x=0;n=1.0;l=0;g=0.0;break e}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=oo(b)|0;l=1;continue}}if((B|0)==74){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;if((e|0)==48){l=0;h=0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;l=gq(l|0,h|0,-1,-1)|0;h=C}while((e|0)==48);z=0;m=0;y=l;o=1;p=1;x=0;n=1.0;l=0;g=0.0}else{z=0;m=0;y=0;h=0;o=l;p=1;x=0;n=1.0;l=0;g=0.0}}while(1){v=e+-48|0;q=e|32;if(v>>>0>=10){w=(e|0)==46;if(!(w|(q+-97|0)>>>0<6)){q=y;v=z;break}if(w)if(!p){w=m;h=z;v=z;p=1;q=x;k=n}else{q=y;v=z;e=46;break}else B=86}else B=86;if((B|0)==86){B=0;e=(e|0)>57?q+-87|0:v;do if(!((z|0)<0|(z|0)==0&m>>>0<8)){if((z|0)<0|(z|0)==0&m>>>0<14){u=n*.0625;q=x;k=u;g=g+u*+(e|0);break}if((x|0)!=0|(e|0)==0){q=x;k=n}else{q=1;k=n;g=g+n*.5}}else{q=x;k=n;l=e+(l<<4)|0}while(0);m=gq(m|0,z|0,1,0)|0;w=y;v=C;o=1}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;z=v;y=w;e=d[e>>0]|0;x=q;n=k;continue}else{z=v;y=w;e=oo(b)|0;x=q;n=k;continue}}if(!o){e=(c[E>>2]|0)==0;if(!e)c[F>>2]=(c[F>>2]|0)+-1;if(f){if(!e?(A=c[F>>2]|0,c[F>>2]=A+-1,p|0):0)c[F>>2]=A+-2}else mo(b,0);g=+(J|0)*0.0;break a}o=(p|0)==0;p=o?m:q;o=o?v:h;if((v|0)<0|(v|0)==0&m>>>0<8){h=v;do{l=l<<4;m=gq(m|0,h|0,1,0)|0;h=C}while((h|0)<0|(h|0)==0&m>>>0<8)}if((e|32|0)==112){h=gp(b,f)|0;e=C;if((h|0)==0&(e|0)==-2147483648){if(!f){mo(b,0);g=0.0;break a}if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}}}else if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}I=iq(p|0,o|0,2)|0;I=gq(I|0,C|0,-32,-1)|0;e=gq(I|0,C|0,h|0,e|0)|0;h=C;if(!l){g=+(J|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-K|0)>>>0){c[(co()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}I=K+-106|0;H=((I|0)<0)<<31>>31;if((h|0)<(H|0)|(h|0)==(H|0)&e>>>0>>0){c[(co()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((l|0)>-1){do{H=!(g>=.5);I=H&1|l<<1;l=I^1;g=g+(H?g:g+-1.0);e=gq(e|0,h|0,-1,-1)|0;h=C}while((I|0)>-1);m=e;n=g}else{m=e;n=g}e=bq(32,0,K|0,((K|0)<0)<<31>>31|0)|0;e=gq(m|0,h|0,e|0,C|0)|0;K=C;if(0>(K|0)|0==(K|0)&L>>>0>e>>>0)if((e|0)<0){e=0;B=127}else B=125;else{e=L;B=125}if((B|0)==125)if((e|0)<53)B=127;else{h=e;k=+(J|0);g=0.0}if((B|0)==127){g=+(J|0);h=e;k=g;g=+ip(+hp(1.0,84-e|0),g)}L=(l&1|0)==0&(n!=0.0&(h|0)<32);g=k*(L?0.0:n)+(g+k*+(((L&1)+l|0)>>>0))-g;if(!(g!=0.0))c[(co()|0)>>2]=34;g=+jp(g,m);break a}else e=h;while(0);G=K+L|0;H=0-G|0;l=0;f:while(1){switch(e|0){case 46:{B=138;break f}case 48:break;default:{h=0;q=0;p=0;break f}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=oo(b)|0;l=1;continue}}if((B|0)==138){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;if((e|0)==48){h=0;e=0;while(1){h=gq(h|0,e|0,-1,-1)|0;l=C;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;if((e|0)==48)e=l;else{q=l;l=1;p=1;break}}}else{h=0;q=0;p=1}}c[I>>2]=0;o=e+-48|0;m=(e|0)==46;g:do if(m|o>>>0<10){D=I+496|0;z=0;w=0;x=m;B=q;v=l;A=p;l=0;m=0;p=0;h:while(1){do if(x)if(!A){h=z;q=w;A=1}else{q=B;e=z;o=w;break h}else{x=gq(z|0,w|0,1,0)|0;w=C;y=(e|0)!=48;if((m|0)>=125){if(!y){q=B;z=x;break}c[D>>2]=c[D>>2]|1;q=B;z=x;break}q=I+(m<<2)|0;if(l)o=e+-48+((c[q>>2]|0)*10|0)|0;c[q>>2]=o;l=l+1|0;o=(l|0)==9;q=B;z=x;v=1;l=o?0:l;m=(o&1)+m|0;p=y?x:p}while(0);e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=oo(b)|0;o=e+-48|0;x=(e|0)==46;if(!(x|o>>>0<10)){o=A;B=161;break g}else B=q}v=(v|0)!=0;B=169}else{z=0;w=0;v=l;o=p;l=0;m=0;p=0;B=161}while(0);do if((B|0)==161){D=(o|0)==0;h=D?z:h;q=D?w:q;v=(v|0)!=0;if(!((e|32|0)==101&v))if((e|0)>-1){e=z;o=w;B=169;break}else{e=z;o=w;B=171;break}o=gp(b,f)|0;e=C;if((o|0)==0&(e|0)==-2147483648){if(!f){mo(b,0);g=0.0;break}if(!(c[E>>2]|0)){o=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;o=0;e=0}}h=gq(o|0,e|0,h|0,q|0)|0;v=z;q=C;o=w;B=173}while(0);if((B|0)==169)if(c[E>>2]|0){c[F>>2]=(c[F>>2]|0)+-1;if(v){v=e;B=173}else B=172}else B=171;if((B|0)==171)if(v){v=e;B=173}else B=172;do if((B|0)==172){c[(co()|0)>>2]=22;mo(b,0);g=0.0}else if((B|0)==173){e=c[I>>2]|0;if(!e){g=+(J|0)*0.0;break}if(((o|0)<0|(o|0)==0&v>>>0<10)&((h|0)==(v|0)&(q|0)==(o|0))?L>>>0>30|(e>>>L|0)==0:0){g=+(J|0)*+(e>>>0);break}b=(K|0)/-2|0;F=((b|0)<0)<<31>>31;if((q|0)>(F|0)|(q|0)==(F|0)&h>>>0>b>>>0){c[(co()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=K+-106|0;F=((b|0)<0)<<31>>31;if((q|0)<(F|0)|(q|0)==(F|0)&h>>>0>>0){c[(co()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(l){if((l|0)<9){o=I+(m<<2)|0;e=c[o>>2]|0;do{e=e*10|0;l=l+1|0}while((l|0)!=9);c[o>>2]=e}m=m+1|0}if((p|0)<9?(p|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(J|0)*+((c[I>>2]|0)>>>0);break}if((h|0)<9){g=+(J|0)*+((c[I>>2]|0)>>>0)/+(c[9724+(8-h<<2)>>2]|0);break}b=L+27+(_(h,-3)|0)|0;e=c[I>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(J|0)*+(e>>>0)*+(c[9724+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){l=0;e=0}else{v=(h|0)>-1?e:e+9|0;o=c[9724+(8-v<<2)>>2]|0;if(m){p=1e9/(o|0)|0;l=0;e=0;q=0;do{E=I+(q<<2)|0;F=c[E>>2]|0;b=((F>>>0)/(o>>>0)|0)+e|0;c[E>>2]=b;e=_((F>>>0)%(o>>>0)|0,p)|0;b=(q|0)==(l|0)&(b|0)==0;q=q+1|0;h=b?h+-9|0:h;l=b?q&127:l}while((q|0)!=(m|0));if(e){c[I+(m<<2)>>2]=e;m=m+1|0}}else{l=0;m=0}e=0;h=9-v+h|0}i:while(1){w=(h|0)<18;x=(h|0)==18;y=I+(l<<2)|0;do{if(!w){if(!x){z=m;break i}if((c[y>>2]|0)>>>0>=9007199){h=18;z=m;break i}}o=0;p=m+127|0;while(1){v=p&127;q=I+(v<<2)|0;p=iq(c[q>>2]|0,0,29)|0;p=gq(p|0,C|0,o|0,0)|0;o=C;if(o>>>0>0|(o|0)==0&p>>>0>1e9){b=pq(p|0,o|0,1e9,0)|0;p=qq(p|0,o|0,1e9,0)|0;o=b}else o=0;c[q>>2]=p;b=(v|0)==(l|0);m=(v|0)!=(m+127&127|0)|b?m:(p|0)==0?v:m;if(b)break;else p=v+-1|0}e=e+-29|0}while((o|0)==0);l=l+127&127;if((l|0)==(m|0)){b=m+127&127;m=I+((m+126&127)<<2)|0;c[m>>2]=c[m>>2]|c[I+(b<<2)>>2];m=b}c[I+(l<<2)>>2]=o;h=h+9|0}j:while(1){m=z+1&127;y=I+((z+127&127)<<2)|0;while(1){w=(h|0)==18;x=(h|0)>27?9:1;v=w^1;while(1){p=l&127;q=(p|0)==(z|0);do if(!q){o=c[I+(p<<2)>>2]|0;if(o>>>0<9007199){B=219;break}if(o>>>0>9007199)break;o=l+1&127;if((o|0)==(z|0)){B=219;break}o=c[I+(o<<2)>>2]|0;if(o>>>0<254740991){B=219;break}if(!(o>>>0>254740991|v)){h=p;m=z;break j}}else B=219;while(0);if((B|0)==219?(B=0,w):0){B=220;break j}e=e+x|0;if((l|0)==(z|0))l=z;else break}v=(1<>>x;p=l;o=0;q=l;while(1){F=I+(q<<2)|0;b=c[F>>2]|0;l=(b>>>x)+o|0;c[F>>2]=l;o=_(b&v,w)|0;l=(q|0)==(p|0)&(l|0)==0;q=q+1&127;h=l?h+-9|0:h;l=l?q:p;if((q|0)==(z|0))break;else p=l}if(!o)continue;if((m|0)!=(l|0))break;c[y>>2]=c[y>>2]|1}c[I+(z<<2)>>2]=o;z=m}if((B|0)==220)if(q){c[I+(m+-1<<2)>>2]=0;h=z}else{h=p;m=z}g=+((c[I+(h<<2)>>2]|0)>>>0);h=l+1&127;if((h|0)==(m|0)){m=l+2&127;c[I+(m+-1<<2)>>2]=0}u=+(J|0);k=u*(g*1.0e9+ +((c[I+(h<<2)>>2]|0)>>>0));w=e+53|0;q=w-K|0;v=(q|0)<(L|0);h=v&1;p=v?((q|0)<0?0:q):L;if((p|0)<53){O=+ip(+hp(1.0,105-p|0),k);n=+kp(k,+hp(1.0,53-p|0));t=O;g=n;n=O+(k-n)}else{t=0.0;g=0.0;n=k}o=l+2&127;do if((o|0)==(m|0))k=g;else{o=c[I+(o<<2)>>2]|0;do if(o>>>0>=5e8){if(o>>>0>5e8){g=u*.75+g;break}if((l+3&127|0)==(m|0)){g=u*.5+g;break}else{g=u*.75+g;break}}else{if((o|0)==0?(l+3&127|0)==(m|0):0)break;g=u*.25+g}while(0);if((53-p|0)<=1){k=g;break}if(+kp(g,1.0)!=0.0){k=g;break}k=g+1.0}while(0);g=n+k-t;do if((w&2147483647|0)>(-2-G|0)){if(+N(+g)>=9007199254740992.0){h=v&(p|0)==(q|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(H|0)?!(k!=0.0&(h|0)!=0):0)break;c[(co()|0)>>2]=34}while(0);g=+jp(g,e)}while(0);break a}default:{if(c[E>>2]|0)c[F>>2]=(c[F>>2]|0)+-1;c[(co()|0)>>2]=22;mo(b,0);g=0.0;break a}}}}while(0);if((B|0)==23){h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[F>>2]=(c[F>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(J|0)*s}while(0);i=M;return +g}function gp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=oo(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=oo(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=oo(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=oq(f|0,b|0,10,0)|0;f=C;e=gq(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=gq(e|0,C|0,b|0,f|0)|0;b=C;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=oo(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=oo(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=bq(0,0,g|0,b|0)|0;f=a?C:b;e=a?e:g}C=f;return e|0}function hp(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=iq(d+1023|0,0,52)|0;b=C;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function ip(a,b){a=+a;b=+b;return +(+xo(a,b))}function jp(a,b){a=+a;b=b|0;return +(+hp(a,b))}function kp(a,b){a=+a;b=+b;return +(+lp(a,b))}function lp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=hq(d|0,m|0,52)|0;e=e&2047;j=hq(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=iq(n|0,o|0,1)|0;l=C;a:do if(!((i|0)==0&(l|0)==0)?(r=+N(+b),h[k>>3]=r,g=c[k+4>>2]|0,!(g>>>0>2146435072|(g|0)==2146435072&(c[k>>2]|0)>>>0>0|(e|0)==2047)):0){f=iq(d|0,m|0,1)|0;g=C;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=iq(d|0,m|0,12)|0;f=C;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=iq(g|0,f|0,1)|0;f=C}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=iq(d|0,m|0,1-e|0)|0;f=C}else f=m&1048575|1048576;if(!j){g=iq(n|0,o|0,12)|0;i=C;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=iq(g|0,i|0,1)|0;i=C}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=iq(n|0,o|0,1-j|0)|0;m=C}else m=o&1048575|1048576;l=bq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=iq(d|0,f|0,1)|0;f=C;e=e+-1|0;l=bq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=iq(d|0,f|0,1)|0;f=C;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=gq(d|0,f|0,0,-1048576)|0;d=C;e=iq(e|0,0,52)|0;d=d|C;e=o|e}else{e=hq(d|0,f|0,1-e|0)|0;d=C}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function mp(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function np(){return 9756}function op(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();g=f;c[g>>2]=e;e=Po(a,b,d,g)|0;i=f;return e|0}function pp(a){a=+a;var b=0,d=0,e=0.0;d=(g[k>>2]=a,c[k>>2]|0)>>>31;e=+N(+a);b=(g[k>>2]=e,c[k>>2]|0);do if(b>>>0<=2139095039)if(b>>>0<1062731776)if(b>>>0<830472192){a=(a*8.0+a*1.0270333290100098)*.125;break}else{e=a*a;a=(e*(e*(e*(-.005770270247012377-e*2.3763017452438362e-05)+-.028481749817728996)+-.32504209876060486)+.12837916612625122)/(e*(e*(e*(e*(1.324947370449081e-04-e*3.9602282413397916e-06)+5.0813062116503716e-03)+.06502225250005722)+.3979172110557556)+1.0)*a+a;break}else{if(b>>>0<1086324736)a=1.0-+qp(b,a);else a=1.0;a=d|0?-a:a;break}else a=1.0/a+ +(1-(d<<1)|0);while(0);return +a}function qp(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0.0;e=+N(+b);if(a>>>0<1067450368){b=e+-1.0;b=.15493708848953247-(b*(b*(b*(b*(b*(.03547830507159233-b*.002166375517845154)+-.11089469492435455)+.31834661960601807)+-.3722078800201416)+.41485610604286194)+-2.3621185682713985e-03)/(b*(b*(b*(b*(b*(b*.011984500102698803+.01363708358258009)+.12617121636867523)+.07182865589857101)+.5403979420661926)+.10642088204622269)+1.0)}else{f=1.0/(e*e);if(a>>>0<1077336941){b=f*(f*(f*(f*(f*(f*(6.570249557495117-f*.06042441353201866)+108.63500213623047)+429.0081481933594)+645.3872680664062)+434.5658874511719)+137.6577606201172)+19.65127182006836;d=f*(f*(f*(f*(f*(f*(-81.28743743896484-f*9.814329147338867)+-184.60508728027344)+-162.39666748046875)+-62.37533187866211)+-10.558626174926758)+-.6938585638999939)+-.009864944033324718}else{b=f*(f*(f*(f*(f*(474.5285339355469-f*22.44095230102539)+2553.05029296875)+3199.858154296875)+1536.7296142578125)+325.7925109863281)+30.33806037902832;d=f*(f*(f*(f*(f*(-1025.0950927734375-f*483.5191955566406)+-637.5664672851562)+-160.63638305664062)+-17.75795555114746)+-.7992832660675049)+-.009864943102002144}h=(c[k>>2]=(g[k>>2]=e,c[k>>2]|0)&-8192,+g[k>>2]);b=+X(+(-.5625-h*h))*+X(+((h-e)*(e+h)+d/(f*b+1.0)))/e}return +b}function rp(a){a=+a;var b=0,d=0,e=0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=hq(b|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{b=iq(b|0,d|0,12)|0;d=C;if(!((b|0)==0&(d|0)==0))if((d|0)>-1|(d|0)==-1&b>>>0>4294967295){e=b;b=-1023;do{b=b+-1|0;e=iq(e|0,d|0,1)|0;d=C}while((d|0)>-1|(d|0)==-1&e>>>0>4294967295)}else b=-1023;else b=-2147483648;break}case 2047:{b=(b|0)!=0|(d&1048575|0)!=0?-2147483648:2147483647;break}default:b=e+-1023|0}return b|0}function sp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0.0,i=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;g=+N(+a);h[k>>3]=g;f=c[k+4>>2]|0;do if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){g=+N(+b);h[k>>3]=g;f=c[k+4>>2]|0;if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){h[k>>3]=b;i=c[k>>2]|0;f=c[k+4>>2]|0;d=hq(d|0,e|0,63)|0;f=hq(i|0,f|0,63)|0;if((d|0)==(f|0)){a=a>2]=a,c[k>>2]|0);e=+N(+a);do if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040){e=+N(+b);if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040)if(((g[k>>2]=b,c[k>>2]|0)^d|0)<0){a=(d|0)<0?b:a;break}else{a=a>2]=a,c[k>>2]|0);d=b>>>23&255;switch(d|0){case 0:{d=b<<9;if(d)if((d|0)>-1){b=-127;do{b=b+-1|0;d=d<<1}while((d|0)>-1)}else b=-127;else b=-2147483648;break}case 255:{b=b&8388607|0?-2147483648:2147483647;break}default:b=d+-127|0}return b|0}function vp(a,b){a=+a;b=b|0;var d=0;if((b|0)>127){a=a*1701411834604692317316873.0e14;d=b+-127|0;if((d|0)>127){d=b+-254|0;d=(d|0)>127?127:d;a=a*1701411834604692317316873.0e14}}else if((b|0)<-126){a=a*1.1754943508222875e-38;d=b+126|0;if((d|0)<-126){d=b+252|0;d=(d|0)<-126?-126:d;a=a*1.1754943508222875e-38}}else d=b;return +(a*(c[k>>2]=(d<<23)+1065353216,+g[k>>2]))}function wp(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){g=+N(+a);h[k>>3]=g;if((c[k>>2]|0)==0&(c[k+4>>2]|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;j=+h[k>>3]+-1.0;i=j*(j*.5);l=j/(j+2.0);m=l*l;a=m*m;h[k>>3]=j-i;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function xp(a){a=+a;var b=0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0,l=0.0;b=(g[k>>2]=a,c[k>>2]|0);d=(b|0)<0;do if(b>>>0<8388608|d){f=+N(+a);if(!((g[k>>2]=f,c[k>>2]|0)|0)){a=-1.0/(a*a);break}if(d){a=(a-a)/0.0;break}else{b=(g[k>>2]=a*33554432.0,c[k>>2]|0);d=-152;e=9;break}}else if(b>>>0<=2139095039)if((b|0)==1065353216)a=0.0;else{d=-127;e=9}while(0);if((e|0)==9){e=b+4913933|0;l=(c[k>>2]=(e&8388607)+1060439283,+g[k>>2])+-1.0;j=l/(l+2.0);h=j*j;a=h*h;i=l*(l*.5);f=(c[k>>2]=(g[k>>2]=l-i,c[k>>2]|0)&-4096,+g[k>>2]);a=l-f-i+j*(i+(h*(a*.2849878668785095+.6666666269302368)+a*(a*.24279078841209412+.40000972151756287)));h=+(d+(e>>>23)|0);a=h*.3010292053222656+(f*.434326171875+(a*.434326171875+(h*7.903415166765626e-07-(f+a)*3.168997136526741e-05)))}return +a}function yp(a){a=+a;var b=0;h[k>>3]=a;b=c[k+4>>2]&2146435072;do if(b>>>0<2146435072|(b|0)==2146435072&0<0)if(a==0.0){a=-1.0/(a*a);break}else{a=+(rp(a)|0);break}else a=a*a;while(0);return +a}function zp(a){a=+a;do if(((g[k>>2]=a,c[k>>2]|0)&2139095040)>>>0<2139095040)if(a==0.0){a=-1.0/(a*a);break}else{a=+(up(a)|0);break}else a=a*a;while(0);return +a}function Ap(b,c){b=b|0;c=c|0;b=Bp(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(mp(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=_(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function Cp(){var a=0,b=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();b=Fa(20,a|0)|0;i=a;return b|0}function Dp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g+16|0;e=g;if(Mo(42830,a[d>>0]|0,4)|0){h=Ep(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=bo(eb(5,e|0)|0)|0;if((e|0)>=0){b=Fp(e,d)|0;if(!b){c[f>>2]=e;db(6,f|0)|0;b=0}}else b=0}else{c[(co()|0)>>2]=22;b=0}i=g;return b|0}function Ep(b){b=b|0;var c=0,d=0,e=0;d=(Ap(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Ap(b,120)|0)==0;d=e?d:d|128;b=(Ap(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function Fp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+112|0;if((i|0)>=(j|0))ba();o=p+40|0;m=p+24|0;l=p+16|0;g=p;n=p+52|0;f=a[d>>0]|0;if(Mo(42830,f<<24>>24,4)|0){e=Wp(1144)|0;if(!e)e=0;else{h=e;k=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(k|0));if(!(Ap(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(Ap(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ya(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[l>>2]=b;c[l+4>>2]=3;f=ya(221,l|0)|0;if(!(f&1024)){c[m>>2]=b;c[m+4>>2]=4;c[m+8>>2]=f|1024;ya(221,m|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[o>>2]=b,c[o+4>>2]=21505,c[o+8>>2]=n,(Xa(54,o|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=9;c[e+36>>2]=1;c[e+40>>2]=2;c[e+12>>2]=2;if(!(c[10751]|0))c[e+76>>2]=-1;bb(43028);f=c[10756]|0;c[e+56>>2]=f;if(f|0)c[f+52>>2]=e;c[10756]=e;Ya(43028)}}else{c[(co()|0)>>2]=22;e=0}i=p;return e|0}function Gp(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){bb(43028);d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[10756]|0)==(a|0))c[10756]=b;Ya(43028)}b=Hp(a)|0;b=sb[c[a+12>>2]&7](a)|0|b;d=c[a+92>>2]|0;if(d|0)Xp(d);if(!e)Xp(a);return b|0}function Hp(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Ip(a)|0;break}d=(bp(a)|0)==0;b=Ip(a)|0;if(!d)go(a)}else{if(!(c[2402]|0))b=0;else b=Hp(c[2402]|0)|0;bb(43028);a=c[10756]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=bp(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Ip(a)|0|b;if(d|0)go(a);a=c[a+56>>2]|0}while((a|0)!=0);Ya(43028)}while(0);return b|0}function Ip(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(qb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>>0)qb[c[a+40>>2]&15](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Jp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=Ro(a,b,f)|0;i=e;return d|0}function Kp(a,b,c){a=a|0;b=b|0;c=c|0;Lp(a,b,c)|0;return a|0}function Lp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009|0)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);dq(b|0,0,e|0)|0;return b|0}function Mp(){var a=0,b=0,d=0;b=42840;b=oq(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=gq(b|0,C|0,1,0)|0;a=C;d=42840;c[d>>2]=b;c[d+4>>2]=a;a=hq(b|0,a|0,33)|0;return a|0}function Np(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n;l=e&255;a[m>>0]=l;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(Uo(b)|0)){h=c[g>>2]|0;k=4}else f=-1;else k=4;do if((k|0)==4){g=b+20|0;k=c[g>>2]|0;if(k>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=k+1;a[k>>0]=l;break}if((qb[c[b+36>>2]&15](b,m,1)|0)==1)f=d[m>>0]|0;else f=-1}while(0);i=n;return f|0}function Op(a,b){a=a|0;b=b|0;return (Pp(a,mp(a)|0,1,b)|0)+-1|0}function Pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(bp(e)|0)==0;a=To(a,f,e)|0;if(!g)go(e)}else a=To(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Qp(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d;c[e>>2]=b;b=Ro(c[2373]|0,a,e)|0;i=d;return b|0}function Rp(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[2373]|0;if((c[f+76>>2]|0)>-1)g=bp(f)|0;else g=0;do if((Op(b,f)|0)<0)d=1;else{if((a[f+75>>0]|0)!=10?(d=f+20|0,e=c[d>>2]|0,e>>>0<(c[f+16>>2]|0)>>>0):0){c[d>>2]=e+1;a[e>>0]=10;d=0;break}d=(Np(f,10)|0)<0}while(0);if(g|0)go(f);return d<<31>>31|0}function Sp(a,b){a=a|0;b=b|0;return +(+Tp(a,b,1))}function Tp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,k=0;k=i;i=i+112|0;if((i|0)>=(j|0))ba();h=k;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;mo(h,0);e=+fp(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=d|0?a+d|0:a;i=k;return +e}function Up(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=(b|0)/(d|0)|0;c[a+4>>2]=(b|0)%(d|0)|0;return}function Vp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=bo($a(3,f|0)|0)|0;i=e;return a|0}function Wp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[10762]|0;b=j>>>a;if(b&3|0){b=(b&1^1)+a|0;d=43088+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[10766]|0)>>>0)Ca();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else Ca()}else c[10762]=j&~(1<>2]=L|3;L=f+L+4|0;c[L>>2]=c[L>>2]|1;L=g;return L|0}h=c[10764]|0;if(o>>>0>h>>>0){if(b|0){d=2<>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=43088+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[10766]|0)>>>0)Ca();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[10764]|0;break}else Ca()}else{c[10762]=j&~(1<>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k|0){f=c[10767]|0;b=k>>>3;d=43088+(b<<1<<2)|0;a=c[10762]|0;b=1<>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();else{l=a;m=b}}else{c[10762]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[10764]=h;c[10767]=e;L=i;return L|0}a=c[10763]|0;if(a){d=(a&0-a)+-1|0;K=d>>>12&16;d=d>>>K;J=d>>>5&8;d=d>>>J;L=d>>>2&4;d=d>>>L;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=c[43352+((J|K|L|b|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;b=e;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a){j=e;break}}b=(c[a+4>>2]&-8)-o|0;L=b>>>0>>0;d=L?b:d;b=a;e=L?a:e}g=c[10766]|0;if(j>>>0>>0)Ca();i=j+o|0;if(j>>>0>=i>>>0)Ca();h=c[j+24>>2]|0;e=c[j+12>>2]|0;do if((e|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;b=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;b=e}}if(b>>>0>>0)Ca();else{c[b>>2]=0;n=a;break}}else{f=c[j+8>>2]|0;if(f>>>0>>0)Ca();a=f+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=e+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=e;c[b>>2]=f;n=e;break}else Ca()}while(0);do if(h|0){a=c[j+28>>2]|0;b=43352+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();a=h+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[h+20>>2]=n;if(!n)break}b=c[10766]|0;if(n>>>0>>0)Ca();c[n+24>>2]=h;a=c[j+16>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[10766]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(d>>>0<16){L=d+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}else{c[j+4>>2]=o|3;c[i+4>>2]=d|1;c[i+d>>2]=d;a=c[10764]|0;if(a|0){f=c[10767]|0;b=a>>>3;e=43088+(b<<1<<2)|0;a=c[10762]|0;b=1<>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();else{p=a;q=b}}else{c[10762]=a|b;p=e+8|0;q=e}c[p>>2]=f;c[q+12>>2]=f;c[f+8>>2]=q;c[f+12>>2]=e}c[10764]=d;c[10767]=i}L=j+8|0;return L|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;j=c[10763]|0;if(j){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)i=31;else{q=(a+1048320|0)>>>16&8;E=a<>>16&4;E=E<>>16&2;i=14-(p|q|i)+(E<>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;b=c[43352+(i<<2)>>2]|0;a:do if(!b){a=0;b=0;E=86}else{f=d;a=0;g=o<<((i|0)==31?0:25-(i>>>1)|0);h=b;b=0;while(1){e=c[h+4>>2]&-8;d=e-o|0;if(d>>>0>>0)if((e|0)==(o|0)){a=h;b=h;E=90;break a}else b=h;else d=f;e=c[h+20>>2]|0;h=c[h+16+(g>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(h|0)?a:e;e=(h|0)==0;if(e){E=86;break}else{f=d;g=g<<(e&1^1)}}}while(0);if((E|0)==86){if((a|0)==0&(b|0)==0){a=2<>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[43352+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else E=90}if((E|0)==90)while(1){E=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e|0){a=e;E=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else E=90}if((j|0)!=0?i>>>0<((c[10764]|0)-o|0)>>>0:0){f=c[10766]|0;if(j>>>0>>0)Ca();h=j+o|0;if(j>>>0>=h>>>0)Ca();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)Ca();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else Ca()}while(0);do if(g|0){a=c[j+28>>2]|0;b=43352+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[10766]|0;if(s>>>0>>0)Ca();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[10766]|0)>>>0)Ca();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=43088+(a<<1<<2)|0;b=c[10762]|0;a=1<>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();else{u=a;v=b}}else{c[10762]=b|a;u=d+8|0;v=d}c[u>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=43352+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[10763]|0;b=1<>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}f=i<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(i|0)){d=a;E=148;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=145;break}else{f=f<<1;a=d}}if((E|0)==145)if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[b>>2]=h;c[h+24>>2]=a;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((E|0)==148){a=d+8|0;b=c[a>>2]|0;L=c[10766]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;c[h+24>>2]=0;break}else Ca()}}else{L=i+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}while(0);L=j+8|0;return L|0}}}else o=-1;while(0);d=c[10764]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[10767]|0;if(a>>>0>15){L=b+o|0;c[10767]=L;c[10764]=a;c[L+4>>2]=a|1;c[L+a>>2]=a;c[b+4>>2]=o|3}else{c[10764]=0;c[10767]=0;c[b+4>>2]=d|3;L=b+d+4|0;c[L>>2]=c[L>>2]|1}L=b+8|0;return L|0}a=c[10765]|0;if(a>>>0>o>>>0){J=a-o|0;c[10765]=J;L=c[10768]|0;K=L+o|0;c[10768]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}do if(!(c[10880]|0)){a=ab(30)|0;if(!(a+-1&a)){c[10882]=a;c[10881]=a;c[10883]=-1;c[10884]=-1;c[10885]=0;c[10873]=0;c[10880]=(gb(0)|0)&-16^1431655768;break}else Ca()}while(0);h=o+48|0;g=c[10882]|0;i=o+47|0;f=g+i|0;g=0-g|0;j=f&g;if(j>>>0<=o>>>0){L=0;return L|0}a=c[10872]|0;if(a|0?(u=c[10870]|0,v=u+j|0,v>>>0<=u>>>0|v>>>0>a>>>0):0){L=0;return L|0}b:do if(!(c[10873]&4)){a=c[10768]|0;c:do if(a){d=43496;while(1){b=c[d>>2]|0;if(b>>>0<=a>>>0?(r=d+4|0,(b+(c[r>>2]|0)|0)>>>0>a>>>0):0){e=d;d=r;break}d=c[d+8>>2]|0;if(!d){E=173;break c}}a=f-(c[10765]|0)&g;if(a>>>0<2147483647){b=La(a|0)|0;if((b|0)==((c[e>>2]|0)+(c[d>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}else E=183}}else E=173;while(0);do if((E|0)==173?(t=La(0)|0,(t|0)!=(-1|0)):0){a=t;b=c[10881]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[10870]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[10872]|0;if(v|0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=La(a|0)|0;if((b|0)==(t|0)){h=t;f=a;E=193;break b}else E=183}}while(0);d:do if((E|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[10882]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((La(w|0)|0)==(-1|0)){La(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}while(0);c[10873]=c[10873]|4;E=190}else E=190;while(0);if((((E|0)==190?j>>>0<2147483647:0)?(x=La(j|0)|0,y=La(0)|0,x>>>0>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-x|0,z>>>0>(o+40|0)>>>0):0){h=x;f=z;E=193}if((E|0)==193){a=(c[10870]|0)+f|0;c[10870]=a;if(a>>>0>(c[10871]|0)>>>0)c[10871]=a;i=c[10768]|0;do if(i){e=43496;do{a=c[e>>2]|0;b=e+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){A=a;B=b;C=d;D=e;E=203;break}e=c[e+8>>2]|0}while((e|0)!=0);if(((E|0)==203?(c[D+12>>2]&8|0)==0:0)?i>>>0>>0&i>>>0>=A>>>0:0){c[B>>2]=C+f;L=i+8|0;L=(L&7|0)==0?0:0-L&7;K=i+L|0;L=f-L+(c[10765]|0)|0;c[10768]=K;c[10765]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[10769]=c[10884];break}a=c[10766]|0;if(h>>>0>>0){c[10766]=h;j=h}else j=a;d=h+f|0;a=43496;while(1){if((c[a>>2]|0)==(d|0)){b=a;E=211;break}a=c[a+8>>2]|0;if(!a){b=43496;break}}if((E|0)==211)if(!(c[a+12>>2]&8)){c[b>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+f;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+8|0;a=d+((a&7|0)==0?0:0-a&7)|0;k=l+o|0;g=a-l-o|0;c[l+4>>2]=o|3;do if((a|0)!=(i|0)){if((a|0)==(c[10767]|0)){L=(c[10764]|0)+g|0;c[10764]=L;c[10767]=k;c[k+4>>2]=L|1;c[k+L>>2]=L;break}b=c[a+4>>2]|0;if((b&3|0)==1){i=b&-8;f=b>>>3;e:do if(b>>>0>=256){h=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){d=a+16|0;e=d+4|0;b=c[e>>2]|0;if(!b){b=c[d>>2]|0;if(!b){J=0;break}}else d=e;while(1){e=b+20|0;f=c[e>>2]|0;if(f|0){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0>>0)Ca();else{c[d>>2]=0;J=b;break}}else{f=c[a+8>>2]|0;if(f>>>0>>0)Ca();b=f+12|0;if((c[b>>2]|0)!=(a|0))Ca();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;J=e;break}else Ca()}while(0);if(!h)break;b=c[a+28>>2]|0;d=43352+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(h>>>0<(c[10766]|0)>>>0)Ca();b=h+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=J;else c[h+20>>2]=J;if(!J)break e}else{c[d>>2]=J;if(J|0)break;c[10763]=c[10763]&~(1<>>0>>0)Ca();c[J+24>>2]=h;b=a+16|0;d=c[b>>2]|0;do if(d|0)if(d>>>0>>0)Ca();else{c[J+16>>2]=d;c[d+24>>2]=J;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=43088+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0>>0)Ca();if((c[d+12>>2]|0)==(a|0))break;Ca()}while(0);if((e|0)==(d|0)){c[10762]=c[10762]&~(1<>>0>>0)Ca();b=e+8|0;if((c[b>>2]|0)==(a|0)){G=b;break}Ca()}while(0);c[d+12>>2]=e;c[G>>2]=d}while(0);a=a+i|0;g=i+g|0}a=a+4|0;c[a>>2]=c[a>>2]&-2;c[k+4>>2]=g|1;c[k+g>>2]=g;a=g>>>3;if(g>>>0<256){d=43088+(a<<1<<2)|0;b=c[10762]|0;a=1<>2]|0;if(b>>>0>=(c[10766]|0)>>>0){K=a;L=b;break}Ca()}while(0);c[K>>2]=k;c[L+12>>2]=k;c[k+8>>2]=L;c[k+12>>2]=d;break}a=g>>>8;do if(!a)d=0;else{if(g>>>0>16777215){d=31;break}K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=g>>>(d+7|0)&1|d<<1}while(0);e=43352+(d<<2)|0;c[k+28>>2]=d;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[10763]|0;b=1<>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;E=281;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=278;break}else{f=f<<1;a=d}}if((E|0)==278)if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[b>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((E|0)==281){a=d+8|0;b=c[a>>2]|0;L=c[10766]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;c[k+24>>2]=0;break}else Ca()}}else{L=(c[10765]|0)+g|0;c[10765]=L;c[10768]=k;c[k+4>>2]=L|1}while(0);L=l+8|0;return L|0}else b=43496;while(1){a=c[b>>2]|0;if(a>>>0<=i>>>0?(F=a+(c[b+4>>2]|0)|0,F>>>0>i>>>0):0){b=F;break}b=c[b+8>>2]|0}g=b+-47|0;d=g+8|0;d=g+((d&7|0)==0?0:0-d&7)|0;g=i+16|0;d=d>>>0>>0?i:d;a=d+8|0;e=h+8|0;e=(e&7|0)==0?0:0-e&7;L=h+e|0;e=f+-40-e|0;c[10768]=L;c[10765]=e;c[L+4>>2]=e|1;c[L+e+4>>2]=40;c[10769]=c[10884];e=d+4|0;c[e>>2]=27;c[a>>2]=c[10874];c[a+4>>2]=c[10875];c[a+8>>2]=c[10876];c[a+12>>2]=c[10877];c[10874]=h;c[10875]=f;c[10877]=0;c[10876]=a;a=d+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0>>0);if((d|0)!=(i|0)){h=d-i|0;c[e>>2]=c[e>>2]&-2;c[i+4>>2]=h|1;c[d>>2]=h;a=h>>>3;if(h>>>0<256){d=43088+(a<<1<<2)|0;b=c[10762]|0;a=1<>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();else{H=a;I=b}}else{c[10762]=b|a;H=d+8|0;I=d}c[H>>2]=i;c[I+12>>2]=i;c[i+8>>2]=I;c[i+12>>2]=d;break}a=h>>>8;if(a)if(h>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;f=43352+(d<<2)|0;c[i+28>>2]=d;c[i+20>>2]=0;c[g>>2]=0;a=c[10763]|0;b=1<>2]=i;c[i+24>>2]=f;c[i+12>>2]=i;c[i+8>>2]=i;break}e=h<<((d|0)==31?0:25-(d>>>1)|0);a=c[f>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(h|0)){d=a;E=307;break}b=a+16+(e>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=304;break}else{e=e<<1;a=d}}if((E|0)==304)if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[b>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((E|0)==307){a=d+8|0;b=c[a>>2]|0;L=c[10766]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=i;c[a>>2]=i;c[i+8>>2]=b;c[i+12>>2]=d;c[i+24>>2]=0;break}else Ca()}}}else{L=c[10766]|0;if((L|0)==0|h>>>0>>0)c[10766]=h;c[10874]=h;c[10875]=f;c[10877]=0;c[10771]=c[10880];c[10770]=-1;a=0;do{L=43088+(a<<1<<2)|0;c[L+12>>2]=L;c[L+8>>2]=L;a=a+1|0}while((a|0)!=32);L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=h+L|0;L=f+-40-L|0;c[10768]=K;c[10765]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[10769]=c[10884]}while(0);a=c[10765]|0;if(a>>>0>o>>>0){J=a-o|0;c[10765]=J;L=c[10768]|0;K=L+o|0;c[10768]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}}c[(co()|0)>>2]=12;L=0;return L|0}function Xp(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;if(!a)return;d=a+-8|0;h=c[10766]|0;if(d>>>0>>0)Ca();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)Ca();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0>>0)Ca();if((k|0)==(c[10767]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;g=j;break}c[10764]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=43088+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0>>0)Ca();if((c[b+12>>2]|0)!=(k|0))Ca()}if((d|0)==(b|0)){c[10762]=c[10762]&~(1<>>0>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(k|0))f=a;else Ca()}else f=d+8|0;c[b+12>>2]=d;c[f>>2]=b;q=k;g=j;break}f=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){b=k+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){i=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)Ca();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(k|0))Ca();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else Ca()}while(0);if(f){a=c[k+28>>2]|0;b=43352+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[f+20>>2]=i;if(!i){q=k;g=j;break}}d=c[10766]|0;if(i>>>0>>0)Ca();c[i+24>>2]=f;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)Ca();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[10766]|0)>>>0)Ca();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;g=j;break}else{q=k;g=j}}else{q=k;g=j}}else{q=d;g=e}while(0);if(q>>>0>=m>>>0)Ca();a=m+4|0;b=c[a>>2]|0;if(!(b&1))Ca();if(!(b&2)){if((m|0)==(c[10768]|0)){p=(c[10765]|0)+g|0;c[10765]=p;c[10768]=q;c[q+4>>2]=p|1;if((q|0)!=(c[10767]|0))return;c[10767]=0;c[10764]=0;return}if((m|0)==(c[10767]|0)){p=(c[10764]|0)+g|0;c[10764]=p;c[10767]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}g=(b&-8)+g|0;e=b>>>3;do if(b>>>0>=256){f=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){b=m+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();d=b+12|0;if((c[d>>2]|0)!=(m|0))Ca();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else Ca()}while(0);if(f|0){a=c[m+28>>2]|0;b=43352+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[f+20>>2]=n;if(!n)break}d=c[10766]|0;if(n>>>0>>0)Ca();c[n+24>>2]=f;a=m+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)Ca();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[10766]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=43088+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[10766]|0)>>>0)Ca();if((c[b+12>>2]|0)!=(m|0))Ca()}if((d|0)==(b|0)){c[10762]=c[10762]&~(1<>>0<(c[10766]|0)>>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else Ca()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=g|1;c[q+g>>2]=g;if((q|0)==(c[10767]|0)){c[10764]=g;return}}else{c[a>>2]=b&-2;c[q+4>>2]=g|1;c[q+g>>2]=g}a=g>>>3;if(g>>>0<256){d=43088+(a<<1<<2)|0;b=c[10762]|0;a=1<>2]|0;if(b>>>0<(c[10766]|0)>>>0)Ca();else{o=a;p=b}}else{c[10762]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<>>16&4;p=p<>>16&2;d=14-(n|o|d)+(p<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=43352+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[10763]|0;b=1<>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;e=130;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){e=127;break}else{f=f<<1;a=d}}if((e|0)==127)if(b>>>0<(c[10766]|0)>>>0)Ca();else{c[b>>2]=q;c[q+24>>2]=a;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((e|0)==130){a=d+8|0;b=c[a>>2]|0;p=c[10766]|0;if(b>>>0>=p>>>0&d>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=d;c[q+24>>2]=0;break}else Ca()}}else{c[10763]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[10770]|0)+-1|0;c[10770]=q;if(!q)a=43504;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[10770]=-1;return}function Yp(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=Wp(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;dq(b|0,0,d|0)|0;return b|0}function Zp(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=Wp(b)|0;return a|0}if(b>>>0>4294967231){c[(co()|0)>>2]=12;a=0;return a|0}d=_p(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){a=d+8|0;return a|0}d=Wp(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;eq(d|0,a|0,(e>>>0>>0?e:b)|0)|0;Xp(a);a=d;return a|0}function _p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[10766]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0>>0))Ca();f=c[k+4>>2]|0;if(!(f&1))Ca();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[10882]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;b=m+d+4|0;c[b>>2]=c[b>>2]|1;$p(m,d);return a|0}if((k|0)==(c[10768]|0)){d=(c[10765]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[10768]=l;c[10765]=m;return a|0}if((k|0)==(c[10767]|0)){e=(c[10764]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;b=m+4|0;c[b>>2]=c[b>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[10764]=d;c[10767]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){e=k+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){j=0;break}}else e=f;while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Ca();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0>>0)Ca();d=g+12|0;if((c[d>>2]|0)!=(k|0))Ca();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else Ca()}while(0);if(h|0){d=c[k+28>>2]|0;e=43352+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[10766]|0;if(j>>>0>>0)Ca();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0>>0)Ca();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[10766]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=43088+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0>>0)Ca();if((c[e+12>>2]|0)!=(k|0))Ca()}if((f|0)==(e|0)){c[10762]=c[10762]&~(1<>>0>>0)Ca();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else Ca()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;b=a+l+4|0;c[b>>2]=c[b>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;b=l+m+4|0;c[b>>2]=c[b>>2]|1;$p(l,m);return a|0}return 0}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;l=a+(0-f)|0;k=f+b|0;i=c[10766]|0;if(l>>>0>>0)Ca();if((l|0)==(c[10767]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;g=k;break}c[10764]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=f>>>3;if(f>>>0<256){a=c[l+8>>2]|0;b=c[l+12>>2]|0;d=43088+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0>>0)Ca();if((c[a+12>>2]|0)!=(l|0))Ca()}if((b|0)==(a|0)){c[10762]=c[10762]&~(1<>>0>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ca()}else h=b+8|0;c[a+12>>2]=b;c[h>>2]=a;r=l;g=k;break}f=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){a=l+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){j=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0>>0)Ca();else{c[a>>2]=0;j=d;break}}else{e=c[l+8>>2]|0;if(e>>>0>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(l|0))Ca();a=b+8|0;if((c[a>>2]|0)==(l|0)){c[d>>2]=b;c[a>>2]=e;j=b;break}else Ca()}while(0);if(f){d=c[l+28>>2]|0;a=43352+(d<<2)|0;if((l|0)==(c[a>>2]|0)){c[a>>2]=j;if(!j){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=j;else c[f+20>>2]=j;if(!j){r=l;g=k;break}}b=c[10766]|0;if(j>>>0>>0)Ca();c[j+24>>2]=f;d=l+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[j+16>>2]=a;c[a+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[10766]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;r=l;g=k;break}else{r=l;g=k}}else{r=l;g=k}}else{r=a;g=b}while(0);h=c[10766]|0;if(o>>>0>>0)Ca();d=o+4|0;a=c[d>>2]|0;if(!(a&2)){if((o|0)==(c[10768]|0)){q=(c[10765]|0)+g|0;c[10765]=q;c[10768]=r;c[r+4>>2]=q|1;if((r|0)!=(c[10767]|0))return;c[10767]=0;c[10764]=0;return}if((o|0)==(c[10767]|0)){q=(c[10764]|0)+g|0;c[10764]=q;c[10767]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}g=(a&-8)+g|0;e=a>>>3;do if(a>>>0>=256){f=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){a=o+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){n=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0>>0)Ca();else{c[a>>2]=0;n=d;break}}else{e=c[o+8>>2]|0;if(e>>>0>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(o|0))Ca();a=b+8|0;if((c[a>>2]|0)==(o|0)){c[d>>2]=b;c[a>>2]=e;n=b;break}else Ca()}while(0);if(f|0){d=c[o+28>>2]|0;a=43352+(d<<2)|0;if((o|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[10763]=c[10763]&~(1<>>0<(c[10766]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(o|0))c[d>>2]=n;else c[f+20>>2]=n;if(!n)break}b=c[10766]|0;if(n>>>0>>0)Ca();c[n+24>>2]=f;d=o+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[10766]|0)>>>0)Ca();else{c[n+20>>2]=d;c[d+24>>2]=n;break}}}else{a=c[o+8>>2]|0;b=c[o+12>>2]|0;d=43088+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0>>0)Ca();if((c[a+12>>2]|0)!=(o|0))Ca()}if((b|0)==(a|0)){c[10762]=c[10762]&~(1<>>0>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(o|0))m=d;else Ca()}else m=b+8|0;c[a+12>>2]=b;c[m>>2]=a}while(0);c[r+4>>2]=g|1;c[r+g>>2]=g;if((r|0)==(c[10767]|0)){c[10764]=g;return}}else{c[d>>2]=a&-2;c[r+4>>2]=g|1;c[r+g>>2]=g}d=g>>>3;if(g>>>0<256){b=43088+(d<<1<<2)|0;a=c[10762]|0;d=1<>2]|0;if(a>>>0<(c[10766]|0)>>>0)Ca();else{p=d;q=a}}else{c[10762]=a|d;p=b+8|0;q=b}c[p>>2]=r;c[q+12>>2]=r;c[r+8>>2]=q;c[r+12>>2]=b;return}d=g>>>8;if(d)if(g>>>0>16777215)b=31;else{p=(d+1048320|0)>>>16&8;q=d<>>16&4;q=q<>>16&2;b=14-(o|p|b)+(q<>>15)|0;b=g>>>(b+7|0)&1|b<<1}else b=0;e=43352+(b<<2)|0;c[r+28>>2]=b;c[r+20>>2]=0;c[r+16>>2]=0;d=c[10763]|0;a=1<>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}f=g<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(g|0)){b=d;e=127;break}a=d+16+(f>>>31<<2)|0;b=c[a>>2]|0;if(!b){e=124;break}else{f=f<<1;d=b}}if((e|0)==124){if(a>>>0<(c[10766]|0)>>>0)Ca();c[a>>2]=r;c[r+24>>2]=d;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((e|0)==127){d=b+8|0;a=c[d>>2]|0;q=c[10766]|0;if(!(a>>>0>=q>>>0&b>>>0>=q>>>0))Ca();c[a+12>>2]=r;c[d>>2]=r;c[r+8>>2]=a;c[r+12>>2]=b;c[r+24>>2]=0;return}}function aq(){}function bq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function cq(a){a=+a;return a>=0.0?+M(a+.5):+Z(a-.5)}function dq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|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 b-e|0}function eq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Na(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function fq(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 eq(b,c,d)|0;return b|0}function gq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function hq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function iq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>c;return a>>>c|(b&(1<>c-32|0}function kq(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function lq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=bq(j^a|0,i^b|0,j|0,i|0)|0;g=C;a=f^j;b=e^i;return bq((rq(h,g,bq(f^c|0,e^d|0,f|0,e|0)|0,C,0)|0)^a|0,C^b|0,a|0,b|0)|0}function nq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=bq(h^a|0,g^b|0,h|0,g|0)|0;b=C;rq(a,b,bq(l^d|0,k^e|0,l|0,k|0)|0,C,j)|0;e=bq(c[j>>2]^h|0,c[j+4>>2]^g|0,h|0,g|0)|0;d=C;i=f;return (C=d,e)|0}function oq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=lq(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function pq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rq(a,b,c,d,0)|0}function qq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;rq(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function rq(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;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h|0){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=kq(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((kq(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=gq(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;bq(k|0,d|0,e|0,n|0)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=bq(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function sq(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|0;h=h|0;return pb[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function tq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return qb[a&15](b|0,c|0,d|0)|0}function uq(a,b){a=a|0;b=b|0;rb[a&31](b|0)}function vq(a,b){a=a|0;b=b|0;return sb[a&7](b|0)|0}function wq(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;return tb[a&0](+b,c|0,d|0,e|0)|0}function xq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ub[a&31](b|0,c|0,d|0)}function yq(a){a=a|0;vb[a&1]()}function zq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return wb[a&7](b|0,c|0,d|0,e|0)|0}function Aq(a,b,c){a=a|0;b=b|0;c=c|0;return xb[a&7](b|0,c|0)|0}function Bq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;yb[a&63](b|0,c|0,d|0,e|0)}function Cq(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;da(0);return 0}function Dq(a,b,c){a=a|0;b=b|0;c=c|0;ea(1);return 0}function Eq(a){a=a|0;fa(2)}function Fq(a){a=a|0;ga(3);return 0}function Gq(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;ha(4);return 0}function Hq(a,b,c){a=a|0;b=b|0;c=c|0;ia(5)}function Iq(){ja(6)}function Jq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7);return 0}function Kq(a,b){a=a|0;b=b|0;la(8);return 0}function Lq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(9)} // EMSCRIPTEN_END_FUNCS -var ob=[Dq,Qb];var pb=[Eq,fo,io,lo,Ro,nn,Nn,Sn,Xn,jo,Eq,Eq,Eq,Eq,Eq,Eq];var qb=[Fq,Yp,bc,dn,Ln,Qn,Vn,Aj,Bj,Ok,Qk,Sk,Uk,Wk,Xk,Yk,Zk,_k,$k,al,bl,cl,go,ko,Fq,Fq,Fq,Fq,Fq,Fq,Fq,Fq];var rb=[Gq,Xp,bo,_m,Kn,Pn,Un,Rl];var sb=[Hq];var tb=[Iq,ji,ki,li,mi,ti,ui,vi,wi,xi,yi,zi,Ai,Bi,Ci,Di,Ei,fi,gi,oi,pi,ri,si,Iq,Iq,Iq,Iq,Iq,Iq,Iq,Iq,Iq];var ub=[Jq,ac];var vb=[Kq,Jn,On,Tn,Yn,Sg,Kq,Kq];var wb=[Lq,mn,Mn,Rn,Wn,Lq,Lq,Lq];var xb=[Mq,Tc,Uc,Vc,_c,$c,ad,ed,fd,id,jd,kd,od,pd,qd,vd,wd,xd,Bd,Cd,Fd,Gd,Hd,Kd,Ld,Md,Pd,Rd,Wd,Xd,$d,ae,ge,he,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq];return{_quiet_encoder_destroy:Xb,_roundf:dq,_quiet_decoder_recv:Mb,_quiet_decoder_checksum_fails:Hb,_quiet_encoder_get_frame_len:Sb,_bitshift64Lshr:hq,_quiet_decoder_destroy:Pb,_bitshift64Shl:jq,_quiet_decoder_create:Ib,_fflush:Ip,_quiet_decoder_profile_str:$b,_memset:eq,_memcpy:fq,_quiet_decoder_consume_stats:Lb,_i64Subtract:cq,_quiet_encoder_clamp_frame_len:Tb,_i64Add:iq,_quiet_decoder_enable_stats:Jb,_quiet_decoder_disable_stats:Kb,_quiet_decoder_consume:Nb,_quiet_encoder_send:Vb,_quiet_encoder_profile_str:Zb,_quiet_encoder_create:Rb,_quiet_encoder_emit:Wb,___errno_location:eo,_free:Yp,_memmove:gq,_malloc:Xp,_quiet_decoder_flush:Ob,runPostSets:bq,stackAlloc:yb,stackSave:zb,stackRestore:Ab,establishStackSpace:Bb,setThrew:Cb,setTempRet0:Fb,getTempRet0:Gb,dynCall_iiiiiiii:tq,dynCall_iiii:uq,dynCall_vi:vq,dynCall_ii:wq,dynCall_idiii:xq,dynCall_viii:yq,dynCall_v:zq,dynCall_iiiii:Aq,dynCall_iii:Bq,dynCall_viiii:Cq}}) +var pb=[Cq,Yb];var qb=[Dq,eo,ho,ko,Qo,on,On,Tn,Yn,io,Dq,Dq,Dq,Dq,Dq,Dq];var rb=[Eq,Xp,qc,Vc,Wc,Pd,Sd,Vd,Zd,$d,ae,be,ce,de,ee,fe,ge,he,en,Mn,Rn,Wn,fo,jo,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq];var sb=[Fq,Wp,ao,$m,Ln,Qn,Vn,Sl];var tb=[Gq];var ub=[Hq,mi,ni,oi,pi,wi,xi,yi,zi,Ai,Bi,Ci,Di,Ei,Fi,Gi,Hi,fi,hi,ri,si,ui,vi,Hq,Hq,Hq,Hq,Hq,Hq,Hq,Hq,Hq];var vb=[Iq,pc];var wb=[Jq,Kn,Pn,Un,Zn,kl,Jq,Jq];var xb=[Kq,nn,Nn,Sn,Xn,Kq,Kq,Kq];var yb=[Lq,Qe,Re,Te,Ue,Ve,Xe,Ye,Ze,$e,bf,df,gf,hf,jf,mf,nf,pf,sf,tf,wf,yf,Bf,Cf,Ff,Hf,Lf,Mf,Of,Qf,Rf,Sf,Wf,Yf,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq,Lq];return{_quiet_encoder_destroy:kc,_roundf:cq,_quiet_decoder_recv:ac,_quiet_decoder_checksum_fails:Wb,_quiet_encoder_get_frame_len:fc,_bitshift64Lshr:hq,_quiet_decoder_destroy:dc,_bitshift64Shl:iq,_quiet_decoder_create:Xb,_fflush:Hp,_quiet_decoder_profile_str:oc,_memset:dq,_memcpy:eq,_quiet_decoder_consume_stats:$b,_i64Subtract:bq,_quiet_encoder_clamp_frame_len:gc,_i64Add:gq,_quiet_decoder_enable_stats:Zb,_quiet_decoder_disable_stats:_b,_quiet_decoder_consume:bc,_quiet_encoder_send:ic,_quiet_encoder_profile_str:mc,_quiet_encoder_create:ec,_quiet_encoder_emit:jc,___errno_location:co,_free:Xp,_memmove:fq,_malloc:Wp,_quiet_decoder_flush:cc,runPostSets:aq,stackAlloc:zb,stackSave:Ab,stackRestore:Bb,establishStackSpace:Cb,setThrew:Db,setTempRet0:Gb,getTempRet0:Hb,dynCall_iiiiiiii:sq,dynCall_iiii:tq,dynCall_vi:uq,dynCall_ii:vq,dynCall_idiii:wq,dynCall_viii:xq,dynCall_v:yq,dynCall_iiiii:zq,dynCall_iii:Aq,dynCall_viiii:Bq}}) // EMSCRIPTEN_END_ASM @@ -18,3 +21,7 @@ var ob=[Dq,Qb];var pb=[Eq,fo,io,lo,Ro,nn,Nn,Sn,Xn,jo,Eq,Eq,Eq,Eq,Eq,Eq];var qb=[ + + return Module; +}; +return {init:quiet_emscripten};})); diff --git a/quiet-emscripten.js.mem b/quiet-emscripten.js.mem index 58eaeb2aa7ea071972a92c1395bb06a7984e15cc..457869b55ceddcc6d76023d7277c19d16af40ee8 100644 GIT binary patch delta 2187 zcmajeeN0tl9Ki8&?gj1z0pW^>pauvCh;orP@#Rt|f{0jx3L*j}E?);E2>1exZwDcr>`@Qu;50L(-h%CH{$@BuzY zKknduOn|0&P0=(zB*TGHluZ$TJxTf|1{jY*TXf0R`<*-G!%qGEH-;VuofAqtJsl=m zSw!c-Oe^c?3b@e9Zh9YFX{DR)g&VDWO`n5>M!h!3-~p_hP+ZeAZ3NtD9kFyGJZKXN z=wghZ)dY6Xd*Df{2^^)5!;4lExIzB}Z(2>jGKW{MsOI@vB7@oR;e?vN8}ys-rPTy> z(2cOsCUns~7)6`$6@3Y66zIOa}h6nm`n7#~5{u=W7cY1u@0YTMiC9)#0s+b_{K5J9VLcg^5D zCaL$YwtYGS2O?>;;$pfC{8F7O-bwETKcMIDm_81E7|s=6qX)o0zjMWUCJO=o^Uf8= z&&NI5m`1ze41E#tv<0{6K_t-XmE5O? zkoaQkHJ|s7B*yCVb~**g3mLc}mq8Jx)9MRr=^aR+t!SsaF@sk3_tR%E^Tqf!Jvd)x zxJA^z$L9~Cxm(i?b9}}nwFc7pxA|&g>gKD~)F?)3t*5wf4lUi9cA2A|^?VKL%?7Q% z<*?;6r;hz7BUNp_x__8^o}z>MU6`BuKknyc%7EK=TNvl<=;5AO9LHvfw&xGEh8C`O+8`Y&sk! z6T&0pVwlx6^avA^knlhm2oKi-WPEt6Df)=ygr_lhH(VmJ`HtwL|EDV}!o_%ha*A0} zUam6esNCB8jF9xk*XUIiY; z%zSTM20G&8d}oqT*IuT}%OzJNw|JujFS3Ze&>|iA76~r47~d4_)aBcJA8{|4D8t2z zrLfdpVoG=Y>&EuwE%K;fgppg2txM061o5wnk_%IVjIwCEZd{o9gDxIzHS%g=yf~&g zecweEm4EcTV{3%n$IaXLpo zNnLQkIlqP#9>!o{oG!_Qk+QEaUG8Q386nxDt#Wh8TG`z>Qc9{_rKl=QVmc3rwZYqH z+cKn!xnYz9Z?nqe?FWq4>vMEz+8iXSHgAwmYtp2pI@q{b<)%B=mRVILn`-=IZp}u+ zD4k@MuGU#{ebo&~Z5u86o>(zTZBn$_U-~M2jE80YF7kcd3F%#XT^tqe^6R?kvaM~B ze78Q58$yk}>&0xGXsR*E)(TJA-ZVnyG*!t^d4Tkn2a8YHC^=dlCkM+{%H_5aW2k(J rER|^Qpb3p_Ph!3DNAR1qQ;^ne?7gqMgK5$XmMNEu5 zqL^>&q?)uz>@+h@I%+S*HkyWMY|~CNvB|X4iQ`OcnoQMcoJl9NotmWme|L8gL`P-j zH}`kWJ?DJi`R=)Q`ThIa+aGHKzvveP=B4F9Ze^ zV*YF3EO-NqgG=B8@MrJ|_&b;Yw}CE45E65QfUp#j3(7$)*aliaH}HWGFbZA+uY*hA z58xJ<075Ud4tzy>_v2jC?z4&DVf!53g&o*<-xN>H7bBnX`lCwLzG5L^V~d9*-N zLSJde$&l6*m?a28G|+&2z?&Zj;lFp`?*YEg{0)8`XyMHN;F0?UAp*{%!k2(ZI8z2+ z4Wi)8c6ck`xF8_-(C7o41al1jBGAE^bMOlw2Ce}g!#@MDa84j*KoI7D$Kaem5quSx z4d(TRFoWK%z21tf; zz@FtKB=dusLhd~BEe=hqu zG=2q^!MW_$;kQ60oOe9uS(Fdp}B3gDbT9lQY)hVD!7PGCek3i#pupa>ofj>3v4YzNIHWji)-l+y&1ho-v@mf7|=a}Yxxk}MEC2^F_4Mwi@2^I zq7+@W{wnl3C_wj@xNaGuZMqVD5^~D~<>)TO)jLE#(yi6Ev4VPZAHsEPi2kW-(T_p@ z2-?v74_u3fm0dBvPNDHdk+e}8N!PTql{U?b8XDE=s6Q=9JC;WA=@~Shri=Pe!Okcl zJ%ui(r)x4PE{wP@^5r;Kk-3&NH258~vij7X)W^+}DgD!VL#T3S<;@m&`+ zRNMa343FECZ;?&;p{ri~71vTkF<~HP!3H+Q#}d&Bo$F;{)>PaN49^9v4bwvK`K1_w;b4!gNY@yVcRLvN)8;WIHrT^f)bEL5awlt66cMxuti_EiIlp zmu|J8dee7vpUr${O+!Q7hT1}7=>w`4N)iL7XN`_<{kQ;=!&a7tG7`Fi$7#wjQcvCF z$ne16wofMJC(w1t7;qHuJU(p>pPknd+k3sTXT~vedqN4hJ>f(gg;S?;;NaBhOWx_{ z#4$Vg$b{hRgc*@3xqTTWRxN$lbGf;C-TLbFMq^>g14`?WO=j8514BEx(-GbgXBh5{ zEi4JAN-L_?Jz6?NWknBqPl9oH;IwqOV`e%|gTj*!@WD?DBN{V@zhGIJBDUluXb@X9l4Sm$O zkWM#d)2Zfo>e?7f1si{(`qw*)DcQN3VxCH++ne58%?Hxr^f}Cia)ZMz`GaTDYV*qO z;P=()Hp?EDof8hJXqEk5JVMEB>ZGx!ED2NAs8AQ7Xsx8UE48NIlrSuL-9La zpaYi7{4PT|-UP?pVXW%f2x7B#`>bZsXGoYC5Q)s-4mFr|k~y2KCu_?no$)8r+k-K5 z#b1kS0Xh9~baBu?hM~ks-@7kGar&dRbbD_JT^-~bG1RaxH#CU7if;7kX}oU%)%WRW z^@vW1=^KxvcLwxC`+v8K-!!k}!?(kWf)?bhuoyBj)HgreTWQGU?qC7j5`R6_LU-6b zT^6)uPp`v-LQHGpx5v}za!|{_+DN`Zg?$U@y9csDNu(%o2PlG0KRcVw48BkOqfyGu zp(UF2{9yLDtzNI}sHou7I%UZ$yZNl~PvDFkoEEd)Vw3$-^PrbU7SmrxaygW;dgO$L zoO`3`+_0W1M>FZYBV*Lma{r~vuJmkIhG+?twOui>k(Z@ z!P9GRciLuT(Cv~;U9uOGWIl3Jo1r&T{j^e>cW~Q`Q1{wWx65jCdOKu?x?0FZ*)N-X zURiKW{kWbi=!r&TJ~6iH#TN%l1ktZCy%|=>*m6*V8BcKUTK8 zW@!W1tXc9(dEJsd&n{XG%MH_ex;Y5C?CNgSt*K93HIZkTgrJ+;vgDPyOPIPu0~XDm zwrGPGUbI1=R`(kLo@ujW`bC%9YL~MNl@&OA1;JBxcSH}?S3iisps2Ld?6Yy;;2pta zwM!k3uvnq-asDN}=W_T>RrH=l&Cl0N=qUDhEuC$fPp|IFS0?Jd($KEKg_J+&Q(ivk z*V1Dn@pO4KhUOfJr47UBisA4c4H*u{D2GS;VkrJ#G_Au2t!HmJ*&EYNe(_`k`Pu^X z%D_@OEJbU54(cB=u+sO3+UQ>!YLw$!WepW=Eu;cdVL<)w= 200 && this.status < 300) { resolve(this.responseText); @@ -124,13 +137,15 @@ var Quiet = (function() { }); }; - function setMemoryInitializerPrefix(prefix) { - Module.memoryInitializerPrefixURL = prefix; + function emscriptenLocateFile(file) { + if (file === "quiet-emscripten.js.mem") { + return memInitializerPath; + } + return file; }; - function setLibfecPrefix(prefix) { - Module.dynamicLibraries = Module.dynamicLibraries || []; - Module.dynamicLibraries.push(prefix + "libfec.js"); + function setMemoryInitializerPath(path) { + memInitializerPath = path; }; /** @@ -178,32 +193,47 @@ var Quiet = (function() { * @function init * @memberof Quiet * @param {object} opts - configuration options - * @param {string} opts.profilesPrefix - path prefix to quiet-profiles.json + * @param {string} [opts.profilesPath] - path to quiet-profiles.json * this file configures transmitter and receiver parameters - * @param {string} opts.memoryInitializerPrefix - path prefix to quiet-emscripten.js.mem - * @param {string} [opts.libfecPrefix] - path prefix to libfec.js + * defaults to "quiet-profiles.json" + * @param {string} [opts.profilesPrefix] [deprecated] - prefix of path to + * quiet-profiles.json. Use opts.profilesPath instead. + * @param {string} [opts.emscriptenPath] - path to quiet-emscripten.js + * defaults to "quiet-emscripten.js" + * @param {string} opts.memoryInitializerPath - path to quiet-emscripten.js.mem + * defaults to "quiet-emscripten.js.mem" + * @param {string} opts.memoryInitializerPrefix - prefix of path to quiet-emscripten.js.mem + * Use opts.memoryInitializerPath instead * @param {function} [opts.onReady] - Quiet ready callback * @param {onError} [opts.onError] - User errback function * @example * Quiet.init({ - * profilesPrefix: "/", // fetches /quiet-profiles.json - * memoryInitializerPrefix: "/", // fetches /quiet-emscripten.js.mem - * libfecPrefix: "/", // fetches /libfec.js + * profilesPath: "/quiet-profiles.json", // fetches /quiet-profiles.json + * memoryInitializerPath: "/quiet-emscripten.js.mem", // fetches /quiet-emscripten.js.mem * onReady: function() { console.log("quiet is ready"); }, * onError: function(reason) { console.log("quiet failed to start: " + reason); } * }); */ function init(opts) { - if (opts.profilesPrefix !== undefined) { - setProfilesPrefix(opts.profilesPrefix); + var profilesPath = "quiet-profiles.json"; + if (opts.profilesPath !== undefined) { + profilesPath = opts.profilesPath; + } else if (opts.profilesPrefix !== undefined) { + profilesPath = opts.profilesPrefix + "quiet-profiles.json"; } + setProfilesPath(profilesPath); - if (opts.memoryInitializerPrefix !== undefined) { - setMemoryInitializerPrefix(opts.memoryInitializerPrefix); + var memoryInitializerPath = "quiet-emscripten.js.mem"; + if (opts.memoryInitializerPath !== undefined) { + memoryInitializerPath = opts.memoryInitializerPath; + } else if (opts.memoryInitializerPrefix !== undefined) { + memoryInitializerPath = opts.memoryInitializerPrefix + "quiet-emscripten.js.mem"; } + setMemoryInitializerPath(memoryInitializerPath); - if (opts.libfecPrefix !== undefined) { - setLibfecPrefix(opts.libfecPrefix); + var emscriptenPath = "quiet-emscripten.js"; + if (opts.emscriptenPath !== undefined) { + emscriptenPath = opts.emscriptenPath; } if (opts.onReady !== undefined) { @@ -213,6 +243,14 @@ var Quiet = (function() { addReadyCallback(opts.onReady); } } + + var head = document.getElementsByTagName('head')[0]; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = opts.emscriptenPath; + // XXX script.async + + head.appendChild(script); }; @@ -274,24 +312,24 @@ var Quiet = (function() { var profile = opts.profile; var c_profiles, c_profile; if (typeof profile === 'object') { - c_profiles = Module.intArrayFromString(JSON.stringify({"profile": profile})); - c_profile = Module.intArrayFromString("profile"); + c_profiles = quiet_emscripten.intArrayFromString(JSON.stringify({"profile": profile})); + c_profile = quiet_emscripten.intArrayFromString("profile"); } else { // get an encoder_options object for our quiet-profiles.json and profile key - c_profiles = Module.intArrayFromString(profiles); - c_profile = Module.intArrayFromString(profile); + c_profiles = quiet_emscripten.intArrayFromString(profiles); + c_profile = quiet_emscripten.intArrayFromString(profile); } initAudioContext(); var done = opts.onFinish; - var opt = Module.ccall('quiet_encoder_profile_str', 'pointer', ['array', 'array'], [c_profiles, c_profile]); + var opt = quiet_emscripten.ccall('quiet_encoder_profile_str', 'pointer', ['array', 'array'], [c_profiles, c_profile]); // libquiet internally works at 44.1kHz but the local sound card // may be a different rate. we inform quiet about that here - var encoder = Module.ccall('quiet_encoder_create', 'pointer', ['pointer', 'number'], [opt, audioCtx.sampleRate]); + var encoder = quiet_emscripten.ccall('quiet_encoder_create', 'pointer', ['pointer', 'number'], [opt, audioCtx.sampleRate]); - Module.ccall('free', null, ['pointer'], [opt]); + quiet_emscripten.ccall('free', null, ['pointer'], [opt]); if (opts.clampFrame === undefined) { opts.clampFrame = true; @@ -303,14 +341,14 @@ var Quiet = (function() { // sample buffers. this is very convenient if our system is not fast enough // to feed the sound card without any gaps between subsequent buffers due // to e.g. gc pause. inform quiet about our sample buffer size here - frame_len = Module.ccall('quiet_encoder_clamp_frame_len', 'number', ['pointer', 'number'], [encoder, sampleBufferSize]); + frame_len = quiet_emscripten.ccall('quiet_encoder_clamp_frame_len', 'number', ['pointer', 'number'], [encoder, sampleBufferSize]); } else { - frame_len = Module.ccall('quiet_encoder_get_frame_len', 'number', ['pointer'], [encoder]); + frame_len = quiet_emscripten.ccall('quiet_encoder_get_frame_len', 'number', ['pointer'], [encoder]); } - var samples = Module.ccall('malloc', 'pointer', ['number'], [4 * sampleBufferSize]); + var samples = quiet_emscripten.ccall('malloc', 'pointer', ['number'], [4 * sampleBufferSize]); // yes, this is pointer arithmetic, in javascript :) - var sample_view = Module.HEAPF32.subarray((samples/4), (samples/4) + sampleBufferSize); + var sample_view = quiet_emscripten.HEAPF32.subarray((samples/4), (samples/4) + sampleBufferSize); var dummy_osc; @@ -408,7 +446,7 @@ var Quiet = (function() { break; } frame_available = true; - var written = Module.ccall('quiet_encoder_send', 'number', ['pointer', 'array', 'number'], [encoder, new Uint8Array(frame), frame.byteLength]); + var written = quiet_emscripten.ccall('quiet_encoder_send', 'number', ['pointer', 'array', 'number'], [encoder, new Uint8Array(frame), frame.byteLength]); if (written === -1) { payload.unshift(frame); break; @@ -440,7 +478,7 @@ var Quiet = (function() { } var before = new Date(); - var written = Module.ccall('quiet_encoder_emit', 'number', ['pointer', 'pointer', 'number'], [encoder, samples, sampleBufferSize]); + var written = quiet_emscripten.ccall('quiet_encoder_emit', 'number', ['pointer', 'pointer', 'number'], [encoder, samples, sampleBufferSize]); var after = new Date(); last_emit_times.unshift(after - before); @@ -503,8 +541,8 @@ var Quiet = (function() { if (destroyed) { return; } - Module.ccall('free', null, ['pointer'], [samples]); - Module.ccall('quiet_encoder_destroy', null, ['pointer'], [encoder]); + quiet_emscripten.ccall('free', null, ['pointer'], [samples]); + quiet_emscripten.ccall('quiet_encoder_destroy', null, ['pointer'], [encoder]); if (running === true) { stopTransmitter(); } @@ -599,7 +637,6 @@ var Quiet = (function() { }; }; - function createAudioInput() { audioInput = 0; // prevent others from trying to create window.setTimeout(function() { @@ -697,16 +734,16 @@ var Quiet = (function() { var profile = opts.profile; var c_profiles, c_profile; if (typeof profile === 'object') { - c_profiles = Module.intArrayFromString(JSON.stringify({"profile": profile})); - c_profile = Module.intArrayFromString("profile"); + c_profiles = quiet_emscripten.intArrayFromString(JSON.stringify({"profile": profile})); + c_profile = quiet_emscripten.intArrayFromString("profile"); } else { - c_profiles = Module.intArrayFromString(profiles); - c_profile = Module.intArrayFromString(profile); + c_profiles = quiet_emscripten.intArrayFromString(profiles); + c_profile = quiet_emscripten.intArrayFromString(profile); } - var opt = Module.ccall('quiet_decoder_profile_str', 'pointer', ['array', 'array'], [c_profiles, c_profile]); + var opt = quiet_emscripten.ccall('quiet_decoder_profile_str', 'pointer', ['array', 'array'], [c_profiles, c_profile]); initAudioContext(); - // quiet does not create an audio input when it starts + // quiet creates audioCtx when it starts but it does not create an audio input // getting microphone access requires a permission dialog so only ask for it if we need it if (gUM === undefined) { gUM = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia); @@ -732,16 +769,16 @@ var Quiet = (function() { receivers_idx++; // inform quiet about our local sound card's sample rate so that it can resample to its internal sample rate - var decoder = Module.ccall('quiet_decoder_create', 'pointer', ['pointer', 'number'], [opt, audioCtx.sampleRate]); + var decoder = quiet_emscripten.ccall('quiet_decoder_create', 'pointer', ['pointer', 'number'], [opt, audioCtx.sampleRate]); - Module.ccall('free', null, ['pointer'], [opt]); + quiet_emscripten.ccall('free', null, ['pointer'], [opt]); - var samples = Module.ccall('malloc', 'pointer', ['number'], [4 * sampleBufferSize]); + var samples = quiet_emscripten.ccall('malloc', 'pointer', ['number'], [4 * sampleBufferSize]); - var frame = Module.ccall('malloc', 'pointer', ['number'], [frameBufferSize]); + var frame = quiet_emscripten.ccall('malloc', 'pointer', ['number'], [frameBufferSize]); if (opts.onReceiverStatsUpdate !== undefined) { - Module.ccall('quiet_decoder_enable_stats', null, ['pointer'], [decoder]); + quiet_emscripten.ccall('quiet_decoder_enable_stats', null, ['pointer'], [decoder]); } var destroyed = false; @@ -751,12 +788,12 @@ var Quiet = (function() { return; } while (true) { - var read = Module.ccall('quiet_decoder_recv', 'number', ['pointer', 'pointer', 'number'], [decoder, frame, frameBufferSize]); + var read = quiet_emscripten.ccall('quiet_decoder_recv', 'number', ['pointer', 'pointer', 'number'], [decoder, frame, frameBufferSize]); if (read === -1) { break; } // convert from emscripten bytes to js string. more pointer arithmetic. - var frameArray = Module.HEAP8.slice(frame, frame + read); + var frameArray = quiet_emscripten.HEAP8.slice(frame, frame + read); opts.onReceive(frameArray.buffer); } }; @@ -769,7 +806,7 @@ var Quiet = (function() { return; } var before = new Date(); - Module.ccall('quiet_decoder_consume', 'number', ['pointer', 'pointer', 'number'], [decoder, samples, sampleBufferSize]); + quiet_emscripten.ccall('quiet_decoder_consume', 'number', ['pointer', 'pointer', 'number'], [decoder, samples, sampleBufferSize]); var after = new Date(); last_consume_times.unshift(after - before); @@ -779,18 +816,18 @@ var Quiet = (function() { window.setTimeout(readbuf, 0); - var currentChecksumFailCount = Module.ccall('quiet_decoder_checksum_fails', 'number', ['pointer'], [decoder]); + var currentChecksumFailCount = quiet_emscripten.ccall('quiet_decoder_checksum_fails', 'number', ['pointer'], [decoder]); if ((opts.onReceiveFail !== undefined) && (currentChecksumFailCount > lastChecksumFailCount)) { window.setTimeout(function() { opts.onReceiveFail(currentChecksumFailCount); }, 0); } lastChecksumFailCount = currentChecksumFailCount; if (opts.onReceiverStatsUpdate !== undefined) { - var num_frames_ptr = Module.ccall('malloc', 'pointer', ['number'], [4]); - var frames = Module.ccall('quiet_decoder_consume_stats', 'pointer', ['pointer', 'pointer'], [decoder, num_frames_ptr]); + var num_frames_ptr = quiet_emscripten.ccall('malloc', 'pointer', ['number'], [4]); + var frames = quiet_emscripten.ccall('quiet_decoder_consume_stats', 'pointer', ['pointer', 'pointer'], [decoder, num_frames_ptr]); // time for some more pointer arithmetic - var num_frames = Module.HEAPU32[num_frames_ptr/4]; - Module.ccall('free', null, ['pointer'], [num_frames_ptr]); + var num_frames = quiet_emscripten.HEAPU32[num_frames_ptr/4]; + quiet_emscripten.ccall('free', null, ['pointer'], [num_frames_ptr]); var framesize = 4 + 4 + 4 + 4 + 4; var stats = []; @@ -798,17 +835,17 @@ var Quiet = (function() { for (var i = 0; i < num_frames; i++) { var frameStats = {}; var frame = (frames + i*framesize)/4; - var symbols = Module.HEAPU32[frame]; - var num_symbols = Module.HEAPU32[frame + 1]; - frameStats.errorVectorMagnitude = Module.HEAPF32[frame + 2]; - frameStats.receivedSignalStrengthIndicator = Module.HEAPF32[frame + 3]; + var symbols = quiet_emscripten.HEAPU32[frame]; + var num_symbols = quiet_emscripten.HEAPU32[frame + 1]; + frameStats.errorVectorMagnitude = quiet_emscripten.HEAPF32[frame + 2]; + frameStats.receivedSignalStrengthIndicator = quiet_emscripten.HEAPF32[frame + 3]; frameStats.symbols = []; for (var j = 0; j < num_symbols; j++) { var symbol = (symbols + 8*j)/4; frameStats.symbols.push({ - real: Module.HEAPF32[symbol], - imag: Module.HEAPF32[symbol + 1] + real: quiet_emscripten.HEAPF32[symbol], + imag: quiet_emscripten.HEAPF32[symbol + 1] }); } stats.push(frameStats); @@ -822,7 +859,7 @@ var Quiet = (function() { return; } var input = e.inputBuffer.getChannelData(0); - var sample_view = Module.HEAPF32.subarray(samples/4, samples/4 + sampleBufferSize); + var sample_view = quiet_emscripten.HEAPF32.subarray(samples/4, samples/4 + sampleBufferSize); sample_view.set(input); window.setTimeout(consume, 0); @@ -848,9 +885,9 @@ var Quiet = (function() { } fakeGain.disconnect(); scriptProcessor.disconnect(); - Module.ccall('free', null, ['pointer'], [samples]); - Module.ccall('free', null, ['pointer'], [frame]); - Module.ccall('quiet_decoder_destroy', null, ['pointer'], [decoder]); + quiet_emscripten.ccall('free', null, ['pointer'], [samples]); + quiet_emscripten.ccall('free', null, ['pointer'], [frame]); + quiet_emscripten.ccall('quiet_decoder_destroy', null, ['pointer'], [decoder]); delete receivers[idx]; destroyed = true; }; @@ -934,8 +971,13 @@ var Quiet = (function() { } }; + var emscriptenConfig = { + onRuntimeInitialized: onEmscriptenInitialized, + locateFile: emscriptenLocateFile + }; + return { - emscriptenInitialized: onEmscriptenInitialized, + emscriptenConfig: emscriptenConfig, addReadyCallback: addReadyCallback, init: init, transmitter: transmitter, @@ -947,8 +989,5 @@ var Quiet = (function() { }; })(); -// extend emscripten Module -var Module = { - onRuntimeInitialized: Quiet.emscriptenInitialized, - memoryInitializerPrefixURL: "" -}; +return Quiet; +})); diff --git a/src/c_src/Emscripten.cmake b/src/c_src/Emscripten.cmake new file mode 100644 index 0000000..bf29187 --- /dev/null +++ b/src/c_src/Emscripten.cmake @@ -0,0 +1,335 @@ +# This file is a 'toolchain description file' for CMake. +# It teaches CMake about the Emscripten compiler, so that CMake can generate makefiles +# from CMakeLists.txt that invoke emcc. + +# Since updating to LLVM 3.9, its build system requires CMake 3.4.3 or newer, so use this as a +# baseline requirement for Emscripten toolchain as well, as developers will have this version or +# they would have been unable to build LLVM in the first place. +cmake_minimum_required(VERSION 3.4.3) + +# To use this toolchain file with CMake, invoke CMake with the following command line parameters +# cmake -DCMAKE_TOOLCHAIN_FILE=/cmake/Modules/Platform/Emscripten.cmake +# -DCMAKE_BUILD_TYPE= +# -G "Unix Makefiles" (Linux and OSX) +# -G "MinGW Makefiles" (Windows) +# # Note, pass in here ONLY the path to the file, not the filename 'CMakeLists.txt' itself. + +# After that, build the generated Makefile with the command 'make'. On Windows, you may download and use 'mingw32-make' instead. + +# The following variable describes the target OS we are building to. +set(CMAKE_SYSTEM_NAME Emscripten) +set(CMAKE_SYSTEM_VERSION 1) + +set(CMAKE_CROSSCOMPILING TRUE) + +# Advertise Emscripten as a 32-bit platform (as opposed to CMAKE_SYSTEM_PROCESSOR=x86_64 for 64-bit platform), +# since some projects (e.g. OpenCV) use this to detect bitness. +set(CMAKE_SYSTEM_PROCESSOR x86) + +# Tell CMake how it should instruct the compiler to generate multiple versions of an outputted .so library: e.g. "libfoo.so, libfoo.so.1, libfoo.so.1.4" etc. +# This feature is activated if a shared library project has the property SOVERSION defined. +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") + +# In CMake, CMAKE_HOST_WIN32 is set when we are cross-compiling from Win32 to Emscripten: http://www.cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_HOST_WIN32 +# The variable WIN32 is set only when the target arch that will run the code will be WIN32, so unset WIN32 when cross-compiling. +set(WIN32) + +# The same logic as above applies for APPLE and CMAKE_HOST_APPLE, so unset APPLE. +set(APPLE) + +# And for UNIX and CMAKE_HOST_UNIX. However, Emscripten is often able to mimic being a Linux/Unix system, in which case a lot of existing CMakeLists.txt files can be configured for Emscripten while assuming UNIX build, so this is left enabled. +set(UNIX 1) + +# Do a no-op access on the CMAKE_TOOLCHAIN_FILE variable so that CMake will not issue a warning on it being unused. +if (CMAKE_TOOLCHAIN_FILE) +endif() + +# In order for check_function_exists() detection to work, we must signal it to pass an additional flag, which causes the compilation +# to abort if linking results in any undefined symbols. The CMake detection mechanism depends on the undefined symbol error to be raised. +set(CMAKE_REQUIRED_FLAGS "-s ERROR_ON_UNDEFINED_SYMBOLS=1") + +# Locate where the Emscripten compiler resides in relative to this toolchain file. +if ("${EMSCRIPTEN_ROOT_PATH}" STREQUAL "") + get_filename_component(GUESS_EMSCRIPTEN_ROOT_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + if (EXISTS "${GUESS_EMSCRIPTEN_ROOT_PATH}/emranlib") + set(EMSCRIPTEN_ROOT_PATH "${GUESS_EMSCRIPTEN_ROOT_PATH}") + endif() +endif() + +# If not found by above search, locate using the EMSCRIPTEN environment variable. +if ("${EMSCRIPTEN_ROOT_PATH}" STREQUAL "") + set(EMSCRIPTEN_ROOT_PATH "$ENV{EMSCRIPTEN}") +endif() + +# Abort if not found. +if ("${EMSCRIPTEN_ROOT_PATH}" STREQUAL "") + message(FATAL_ERROR "Could not locate the Emscripten compiler toolchain directory! Either set the EMSCRIPTEN environment variable, or pass -DEMSCRIPTEN_ROOT_PATH=xxx to CMake to explicitly specify the location of the compiler!") +endif() + +# Normalize, convert Windows backslashes to forward slashes or CMake will crash. +get_filename_component(EMSCRIPTEN_ROOT_PATH "${EMSCRIPTEN_ROOT_PATH}" ABSOLUTE) + +list(APPEND CMAKE_MODULE_PATH "${EMSCRIPTEN_ROOT_PATH}/cmake/Modules") + +list(APPEND CMAKE_FIND_ROOT_PATH "${EMSCRIPTEN_ROOT_PATH}/system") + +if (CMAKE_HOST_WIN32) + set(EMCC_SUFFIX ".bat") +else() + set(EMCC_SUFFIX "") +endif() + +set(HOST_C_COMPILER "/usr/bin/gcc") + +# Specify the compilers to use for C and C++ +if ("${CMAKE_C_COMPILER}" STREQUAL "") + set(CMAKE_C_COMPILER "${EMSCRIPTEN_ROOT_PATH}/emcc${EMCC_SUFFIX}") +endif() +if ("${CMAKE_CXX_COMPILER}" STREQUAL "") + set(CMAKE_CXX_COMPILER "${EMSCRIPTEN_ROOT_PATH}/em++${EMCC_SUFFIX}") +endif() + +if ("${CMAKE_AR}" STREQUAL "") + set(CMAKE_AR "${EMSCRIPTEN_ROOT_PATH}/emar${EMCC_SUFFIX}" CACHE FILEPATH "Emscripten ar") +endif() + +if ("${CMAKE_RANLIB}" STREQUAL "") + set(CMAKE_RANLIB "${EMSCRIPTEN_ROOT_PATH}/emranlib${EMCC_SUFFIX}" CACHE FILEPATH "Emscripten ranlib") +endif() + +# Don't allow CMake to autodetect the compiler, since it does not understand Emscripten. +# Pass -DEMSCRIPTEN_FORCE_COMPILERS=OFF to disable (sensible mostly only for testing/debugging purposes). +option(EMSCRIPTEN_FORCE_COMPILERS "Force C/C++ compiler" ON) +if (EMSCRIPTEN_FORCE_COMPILERS) + + # Detect version of the 'emcc' executable. Note that for CMake, we tell it the version of the Clang compiler and not the version of Emscripten, + # because CMake understands Clang better. + if (NOT CMAKE_C_COMPILER_VERSION) # Toolchain script is interpreted multiple times, so don't rerun the check if already done before. + execute_process(COMMAND "${CMAKE_C_COMPILER}" "-v" RESULT_VARIABLE _cmake_compiler_result ERROR_VARIABLE _cmake_compiler_output OUTPUT_QUIET) + if (NOT _cmake_compiler_result EQUAL 0) + message(FATAL_ERROR "Failed to fetch compiler version information with command \"'${CMAKE_C_COMPILER}' -v\"! Process returned with error code ${_cmake_compiler_result}.") + endif() + if (NOT "${_cmake_compiler_output}" MATCHES "Emscripten") + message(FATAL_ERROR "System LLVM compiler cannot be used to build with Emscripten! Check Emscripten's LLVM toolchain location in .emscripten configuration file, and make sure to point CMAKE_C_COMPILER to where emcc is located. (was pointing to \"${CMAKE_C_COMPILER}\")") + endif() + string(REGEX MATCH "clang version ([0-9\.]+)" _dummy_unused "${_cmake_compiler_output}") + if (NOT CMAKE_MATCH_1) + message(FATAL_ERROR "Failed to regex parse Clang compiler version from version string: ${_cmake_compiler_output}") + endif() + + set(CMAKE_C_COMPILER_VERSION "${CMAKE_MATCH_1}") + set(CMAKE_CXX_COMPILER_VERSION "${CMAKE_MATCH_1}") + if (${CMAKE_C_COMPILER_VERSION} VERSION_LESS 3.9.0) + message(WARNING "CMAKE_C_COMPILER version looks too old. Was ${CMAKE_C_COMPILER_VERSION}, should be at least 3.9.0.") + endif() + endif() + + set(CMAKE_C_COMPILER_ID_RUN TRUE) + set(CMAKE_C_COMPILER_FORCED TRUE) + set(CMAKE_C_COMPILER_WORKS TRUE) + set(CMAKE_C_COMPILER_ID Clang) + set(CMAKE_C_STANDARD_COMPUTED_DEFAULT 11) + + set(CMAKE_CXX_COMPILER_ID_RUN TRUE) + set(CMAKE_CXX_COMPILER_FORCED TRUE) + set(CMAKE_CXX_COMPILER_WORKS TRUE) + set(CMAKE_CXX_COMPILER_ID Clang) + set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT 98) + + set(CMAKE_C_PLATFORM_ID "emscripten") + set(CMAKE_CXX_PLATFORM_ID "emscripten") + + set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") + set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") + set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") + set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + + set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") + set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") + set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") + set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +endif() + +# To find programs to execute during CMake run time with find_program(), e.g. 'git' or so, we allow looking +# into system paths. +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + +# Since Emscripten is a cross-compiler, we should never look at the system-provided directories like /usr/include and so on. +# Therefore only CMAKE_FIND_ROOT_PATH should be used as a find directory. See http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.html +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +set(CMAKE_SYSTEM_INCLUDE_PATH "${EMSCRIPTEN_ROOT_PATH}/system/include") + +# We would prefer to specify a standard set of Clang+Emscripten-friendly common convention for suffix files, especially for CMake executable files, +# but if these are adjusted, ${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake will fail, since it depends on being able to compile output files with predefined names. +#SET(CMAKE_LINK_LIBRARY_SUFFIX "") +#SET(CMAKE_STATIC_LIBRARY_PREFIX "") +#SET(CMAKE_SHARED_LIBRARY_PREFIX "") +#SET(CMAKE_FIND_LIBRARY_PREFIXES "") +#SET(CMAKE_FIND_LIBRARY_SUFFIXES ".bc") +#SET(CMAKE_SHARED_LIBRARY_SUFFIX ".bc") + +option(EMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES "If set, static library targets generate LLVM bitcode files (.bc). If disabled (default), UNIX ar archives (.a) are generated." OFF) +if (EMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES) + SET(CMAKE_STATIC_LIBRARY_SUFFIX ".bc") + + SET(CMAKE_C_CREATE_STATIC_LIBRARY " -o ") + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY " -o ") +else() + # Specify the program to use when building static libraries. Force Emscripten-related command line options to clang. + SET(CMAKE_C_CREATE_STATIC_LIBRARY " rc ") + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY " rc ") +endif() + +SET(CMAKE_EXECUTABLE_SUFFIX ".js") + +SET(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1) +SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1) +SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) +SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1) +SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1) +SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1) + +set(CMAKE_C_RESPONSE_FILE_LINK_FLAG "@") +set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG "@") + +# Set a global EMSCRIPTEN variable that can be used in client CMakeLists.txt to detect when building using Emscripten. +set(EMSCRIPTEN 1 CACHE BOOL "If true, we are targeting Emscripten output.") + +# Hardwire support for cmake-2.8/Modules/CMakeBackwardsCompatibilityC.cmake without having CMake to try complex things +# to autodetect these: +set(CMAKE_SKIP_COMPATIBILITY_TESTS 1) +set(CMAKE_SIZEOF_CHAR 1) +set(CMAKE_SIZEOF_UNSIGNED_SHORT 2) +set(CMAKE_SIZEOF_SHORT 2) +set(CMAKE_SIZEOF_INT 4) +set(CMAKE_SIZEOF_UNSIGNED_LONG 4) +set(CMAKE_SIZEOF_UNSIGNED_INT 4) +set(CMAKE_SIZEOF_LONG 4) +set(CMAKE_SIZEOF_VOID_P 4) +set(CMAKE_SIZEOF_FLOAT 4) +set(CMAKE_SIZEOF_DOUBLE 8) +set(CMAKE_C_SIZEOF_DATA_PTR 4) +set(CMAKE_CXX_SIZEOF_DATA_PTR 4) +set(CMAKE_HAVE_LIMITS_H 1) +set(CMAKE_HAVE_UNISTD_H 1) +set(CMAKE_HAVE_PTHREAD_H 1) +set(CMAKE_HAVE_SYS_PRCTL_H 1) +set(CMAKE_WORDS_BIGENDIAN 0) +set(CMAKE_DL_LIBS) + +set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2" CACHE STRING "Emscripten-overridden CMAKE_C_FLAGS_RELEASE") +set(CMAKE_C_FLAGS_MINSIZEREL "-DNDEBUG -Os" CACHE STRING "Emscripten-overridden CMAKE_C_FLAGS_MINSIZEREL") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2" CACHE STRING "Emscripten-overridden CMAKE_C_FLAGS_RELWITHDEBINFO") +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2" CACHE STRING "Emscripten-overridden CMAKE_CXX_FLAGS_RELEASE") +set(CMAKE_CXX_FLAGS_MINSIZEREL "-DNDEBUG -Os" CACHE STRING "Emscripten-overridden CMAKE_CXX_FLAGS_MINSIZEREL") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2" CACHE STRING "Emscripten-overridden CMAKE_CXX_FLAGS_RELWITHDEBINFO") + +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-O2" CACHE STRING "Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_RELEASE") +set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "-Os" CACHE STRING "Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_MINSIZEREL") +set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO") +set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "-O2" CACHE STRING "Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_RELEASE") +set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "-Os" CACHE STRING "Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL") +set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO") +set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "-O2" CACHE STRING "Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_RELEASE") +set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "-Os" CACHE STRING "Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL") +set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO") + +function(em_validate_asmjs_after_build target) + add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo Validating build output for asm.js... COMMAND "python" ARGS "${EMSCRIPTEN_ROOT_PATH}/tools/validate_asmjs.py" "$") +endfunction() + +# A global counter to guarantee unique names for js library files. +set(link_js_counter 1) + +# Internal function: Do not call from user CMakeLists.txt files. Use one of em_link_js_library()/em_link_pre_js()/em_link_post_js() instead. +function(em_add_tracked_link_flag target flagname) + + # User can input list of JS files either as a single list, or as variable arguments to this function, so iterate over varargs, and treat each + # item in varargs as a list itself, to support both syntax forms. + foreach(jsFileList ${ARGN}) + foreach(jsfile ${jsFileList}) + # If the user edits the JS file, we want to relink the emscripten application, but unfortunately it is not possible to make a link step + # depend directly on a source file. Instead, we must make a dummy no-op build target on that source file, and make the project depend on + # that target. + + # Sanitate the source .js filename to a good symbol name to use as a dummy filename. + get_filename_component(jsname "${jsfile}" NAME) + string(REGEX REPLACE "[/:\\\\.\ ]" "_" dummy_js_target ${jsname}) + set(dummy_lib_name ${target}_${link_js_counter}_${dummy_js_target}) + set(dummy_c_name "${CMAKE_BINARY_DIR}/${dummy_js_target}_tracker.c") + + # Create a new static library target that with a single dummy .c file. + add_library(${dummy_lib_name} STATIC ${dummy_c_name}) + # Make the dummy .c file depend on the .js file we are linking, so that if the .js file is edited, the dummy .c file, and hence the static library will be rebuild (no-op). This causes the main application to be relinked, which is what we want. + # This approach was recommended by http://www.cmake.org/pipermail/cmake/2010-May/037206.html + add_custom_command(OUTPUT ${dummy_c_name} COMMAND ${CMAKE_COMMAND} -E touch ${dummy_c_name} DEPENDS ${jsfile}) + target_link_libraries(${target} ${dummy_lib_name}) + + # Link the js-library to the target + # When a linked library starts with a "-" cmake will just add it to the linker command line as it is. + # The advantage of doing it this way is that the js-library will also be automatically linked to targets + # that depend on this target. + get_filename_component(js_file_absolute_path "${jsfile}" ABSOLUTE ) + target_link_libraries(${target} "${flagname} \"${js_file_absolute_path}\"") + + math(EXPR link_js_counter "${link_js_counter} + 1") + endforeach() + endforeach() +endfunction() + +# This function links a (list of ) .js library file(s) to the given CMake project. +# Example: em_link_js_library(my_executable "lib1.js" "lib2.js") +# will result in emcc passing --js-library lib1.js --js-library lib2.js to the emscripten linker, as well as +# tracking the modification timestamp between the linked .js files and the main project, so that editing the .js file +# will cause the target project to be relinked. +function(em_link_js_library target) + em_add_tracked_link_flag(${target} "--js-library" ${ARGN}) +endfunction() + +# This function is identical to em_link_js_library(), except the .js files will be added with '--pre-js file.js' command line flag, +# which is generally used to add some preamble .js code to a generated output file. +function(em_link_pre_js target) + em_add_tracked_link_flag(${target} "--pre-js" ${ARGN}) +endfunction() + +# This function is identical to em_link_js_library(), except the .js files will be added with '--post-js file.js' command line flag, +# which is generally used to add some postamble .js code to a generated output file. +function(em_link_post_js target) + em_add_tracked_link_flag(${target} "--post-js" ${ARGN}) +endfunction() + +# Experimental support for targeting generation of Visual Studio project files (vs-tool) of Emscripten projects for Windows. +# To use this, pass the combination -G "Visual Studio 10" -DCMAKE_TOOLCHAIN_FILE=Emscripten.cmake +if ("${CMAKE_GENERATOR}" MATCHES "^Visual Studio.*") + # By default, CMake generates VS project files with a true directive. + # This causes VS to attempt to invoke rc.exe during the build, which will fail since app manifests are meaningless for Emscripten. + # To disable this, add the following linker flag. This flag will not go to emcc, since the Visual Studio CMake generator will swallow it. + set(EMSCRIPTEN_VS_LINKER_FLAGS "/MANIFEST:NO") + # CMake is hardcoded to write a ClCompile directive $(IntDir) in all VS project files it generates. + # This makes VS pass emcc a -o param that points to a directory instead of a file, which causes emcc autogenerate the output filename. + # CMake is hardcoded to assume all object files have the suffix .obj, so adjust the emcc-autogenerated default suffix name to match. + set(EMSCRIPTEN_VS_LINKER_FLAGS "${EMSCRIPTEN_VS_LINKER_FLAGS} --default-obj-ext .obj") + # Also hint CMake that it should not hardcode generation. Requires a custom CMake build for this to work (ignored on others) + # See http://www.cmake.org/Bug/view.php?id=14673 and https://github.com/juj/CMake + set(CMAKE_VS_NO_DEFAULT_OBJECTFILENAME 1) + + # Apply and cache Emscripten Visual Studio IDE-specific linker flags. + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EMSCRIPTEN_VS_LINKER_FLAGS}" CACHE STRING "") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${EMSCRIPTEN_VS_LINKER_FLAGS}" CACHE STRING "") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${EMSCRIPTEN_VS_LINKER_FLAGS}" CACHE STRING "") +endif() + +if (NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR) + find_program(NODE_JS_EXECUTABLE NAMES nodejs node) + if(NODE_JS_EXECUTABLE) + set(CMAKE_CROSSCOMPILING_EMULATOR "${NODE_JS_EXECUTABLE}" CACHE FILEPATH "Path to the emulator for the target system.") + endif() +endif() +# No-op on CMAKE_CROSSCOMPILING_EMULATOR so older versions of cmake do not +# complain about unused CMake variable. +if(CMAKE_CROSSCOMPILING_EMULATOR) +endif() + diff --git a/src/c_src/build-emscripten.sh b/src/c_src/build-emscripten.sh new file mode 100755 index 0000000..45c5417 --- /dev/null +++ b/src/c_src/build-emscripten.sh @@ -0,0 +1,106 @@ +#!/usr/bin/env bash +set -e + +SCRIPTNAME=`basename $0` + +PATHPREFIX=`dirname $0` +ABSPATH=`cd "$PATHPREFIX"; pwd` +SRCPATH=$ABSPATH +DOWNLOADSPATH="$ABSPATH/emscripten/downloads" +SYSROOTPATH="$ABSPATH/emscripten/sysroot" +BUILDPATH="$ABSPATH/emscripten/build" +JSPATH="$ABSPATH/js" +LICENSEPATH="$ABSPATH/licenses" + +# if [ ! -d "$SRCPATH/emscripten" ]; then +# echo +# echo "$SCRIPTNAME uses emscripten to cross-compile for Javascript." +# echo "If you already have emscripten installed it can" +# echo "be helpful to let $SCRIPTNAME use it so that other projects you build" +# echo "with the NDK can include headers and link to the dependencies built here" +# echo +# echo "Enter the path to emscripten or leave blank to have $SCRIPTNAME download it" +# echo +# echo -n "emscripten: " +# read -e EMSCRIPTENPATH +# if [ -z "$EMSCRIPTENPATH" ]; then +# mkdir -p "$DOWNLOADSPATH" +# LLVMURL="https://github.com/kripken/emscripten-fastcomp/archive/1.36.10.zip" +# echo "Downloading $LLVMURL" +# curl -L --progress-bar -o "$DOWNLOADSPATH/emscripten-fastcomp.zip" "$LLVMURL" +# echo "Unzipping" +# unzip "$DOWNLOADSPATH/emscripten-fastcomp.zip" -d "$DOWNLOADSPATH" >/dev/null +# mv "$DOWNLOADSPATH/emscripten-fastcomp-1.36.10" "$SRCPATH/emscripten-fastcomp" +# CLANGURL="https://github.com/kripken/emscripten-fastcomp-clang/archive/1.36.10.zip" +# echo "Downloading $CLANGURL" +# curl -L --progress-bar -o "$DOWNLOADSPATH/emscripten-fastcomp-clang.zip" "$CLANGURL" +# echo "Unzipping" +# unzip "$DOWNLOADSPATH/emscripten-fastcomp-clang.zip" -d "$DOWNLOADSPATH" >/dev/null +# mv "$DOWNLOADSPATH/emscripten-fastcomp-clang-1.36.10" "$SRCPATH/emscripten-fastcomp/tools/clang" +# echo "Building" +# cd "$SRCPATH/emscripten-fastcomp" +# mkdir build +# cd build +# cmake .. +# make clang +# EMSCRIPTENURL="https://github.com/kripken/emscripten/archive/1.36.10.zip" +# echo "Downloading $EMSCRIPTENURL" +# curl -L --progress-bar -o "$DOWNLOADSPATH/emscripten.zip" "$EMSCRIPTENURL" +# echo "Unzipping" +# unzip "$DOWNLOADSPATH/emscripten.zip" -d "$DOWNLOADSPATH" >/dev/null +# mv "$DOWNLOADSPATH/emscripten-1.36.10" "$SRCPATH/emscripten" +# else +# ABSEMSCRIPTENPATH=`cd "$EMSCRIPTENPATH"; pwd` +# ln -s "$ABSEMSCRIPTENPATH" "$SRCPATH/emscripten" +# fi +# fi + +if [ ! -d "$SYSROOTPATH/usr" ]; then + mkdir -p "$SYSROOTPATH/usr" +fi + +export SYSROOT="$SYSROOTPATH" +export PATH="$EMSCRIPTEN:$CLANGPATH:$PATH" +mkdir -p "$BUILDPATH" +export EMSCRIPTEN=`python -c "import imp; em = imp.load_source('emscripten', '$HOME/.emscripten'); print(em.EMSCRIPTEN_ROOT)"` + +mkdir -p "$BUILDPATH/libcorrect" +cd "$BUILDPATH/libcorrect" +cp "$SRCPATH/Emscripten.cmake" . +cmake -DCMAKE_TOOLCHAIN_FILE="./Emscripten.cmake" -DCMAKE_BUILD_TYPE=Release "$SRCPATH/libcorrect" -DCMAKE_PREFIX_PATH="$SYSROOT" -DCMAKE_INSTALL_PREFIX="$SYSROOT/usr" -DCMAKE_LINK_LIBRARY_SUFFIX=".bc" -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES="on" && make && make shim && make install + +mkdir -p "$BUILDPATH/liquid-dsp" +cd "$BUILDPATH/liquid-dsp" +cp "$SRCPATH/Emscripten.cmake" . +cmake -DCMAKE_TOOLCHAIN_FILE="./Emscripten.cmake" -DCMAKE_BUILD_TYPE=Release "$SRCPATH/liquid-dsp" -DCMAKE_SYSROOT="$SYSROOT" -DCMAKE_PREFIX_PATH="$SYSROOT/usr" -DCMAKE_INSTALL_PREFIX="$SYSROOT/usr" -DCMAKE_LINK_LIBRARY_SUFFIX=".bc" -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES="on" -DLIQUID_BUILD_EXAMPLES="off" -DLIQUID_BUILD_SANDBOX="off" && make liquid-static liquid-shared && make install + +mkdir -p "$BUILDPATH/jansson" +cd "$BUILDPATH/jansson" +cp "$SRCPATH/Emscripten.cmake" . +cmake -DCMAKE_TOOLCHAIN_FILE="./Emscripten.cmake" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$SYSROOT/usr" -DJANSSON_BUILD_SHARED_LIBS=off -DJANSSON_WITHOUT_TESTS=on -DJANSSON_EXAMPLES=off -DJANSSON_BUILD_DOCS=off "$SRCPATH/jansson" && make && make install + +mkdir -p "$BUILDPATH/quiet" +cd "$BUILDPATH/quiet" +cp "$SRCPATH/Emscripten.cmake" . +cmake -DCMAKE_TOOLCHAIN_FILE="./Emscripten.cmake" -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$SYSROOT/usr" -DCMAKE_SYSROOT="$SYSROOT" -DCMAKE_C_FLAGS="-I$SYSROOT/usr/include -lfec" -DCMAKE_EXE_LINKER_FLAGS="-L$SYSROOT/usr/lib" -DCMAKE_INSTALL_PREFIX="$SYSROOT/usr" "$SRCPATH/quiet" -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES="on" && make && make install + +emcc -v -Oz $BUILDPATH/quiet/lib/libquiet.bc -L$SYSROOT/usr/lib -o quiet-emscripten.js -s ASSERTIONS=1 -s MODULARIZE=1 -s EXPORT_NAME="'quiet_emscripten'" -s EXPORTED_FUNCTIONS="['_quiet_decoder_consume', '_quiet_decoder_create', '_quiet_decoder_flush', '_quiet_decoder_recv', '_quiet_decoder_destroy', '_quiet_encoder_emit', '_quiet_encoder_create', '_quiet_encoder_destroy', '_quiet_encoder_send', '_quiet_encoder_get_frame_len', '_quiet_encoder_profile_str', '_quiet_decoder_profile_str', '_quiet_encoder_clamp_frame_len', '_quiet_decoder_checksum_fails', '_quiet_decoder_enable_stats', '_quiet_decoder_disable_stats', '_quiet_decoder_consume_stats']" -lliquid -ljansson -lfec +mv quiet-emscripten.js quiet-emscripten-var.js +cat "$SRCPATH/emscripten-pre.js" > quiet-emscripten.js +cat quiet-emscripten-var.js >> quiet-emscripten.js +cat "$SRCPATH/emscripten-post.js" >> quiet-emscripten.js + +mkdir -p "$JSPATH" +cp "$BUILDPATH/quiet/quiet-emscripten.js" $JSPATH +cp "$BUILDPATH/quiet/quiet-emscripten.js.mem" $JSPATH +cp "$BUILDPATH/quiet/share/quiet-profiles.json" $JSPATH + +mkdir -p "$LICENSEPATH" +cp "$SRCPATH/libcorrect/LICENSE" "$LICENSEPATH/libcorrect" +cp "$SRCPATH/liquid-dsp/LICENSE" "$LICENSEPATH/liquid-dsp" +cp "$SRCPATH/jansson/LICENSE" "$LICENSEPATH/jansson" +cp "$SRCPATH/quiet/LICENSE" "$LICENSEPATH/quiet" + +echo +echo "Build complete. Built js is in $JSPATH." +echo "Third-party licenses are in $LICENSEPATH." diff --git a/src/c_src/emscripten-post.js b/src/c_src/emscripten-post.js new file mode 100644 index 0000000..21d5618 --- /dev/null +++ b/src/c_src/emscripten-post.js @@ -0,0 +1 @@ +return {init:quiet_emscripten};})); diff --git a/src/c_src/emscripten-pre.js b/src/c_src/emscripten-pre.js new file mode 100644 index 0000000..1c1f616 --- /dev/null +++ b/src/c_src/emscripten-pre.js @@ -0,0 +1 @@ +(function(root,factory){if(typeof define === 'function' && define.amd){define([],factory);}else if(typeof module === 'object' && module.exports){module.exports = factory();}else{root.quiet_emscripten = factory().init(root.quiet_emscripten_config);}}(this,function(){ diff --git a/src/c_src/jansson b/src/c_src/jansson new file mode 160000 index 0000000..f4498d2 --- /dev/null +++ b/src/c_src/jansson @@ -0,0 +1 @@ +Subproject commit f4498d2856fff130366e1dacc74d66d3502e0e5c diff --git a/src/c_src/libcorrect b/src/c_src/libcorrect new file mode 160000 index 0000000..b6ab440 --- /dev/null +++ b/src/c_src/libcorrect @@ -0,0 +1 @@ +Subproject commit b6ab440f3ff12fa52aba1c88536bd2b223dfeec4 diff --git a/src/c_src/liquid-dsp b/src/c_src/liquid-dsp new file mode 160000 index 0000000..fa5c8c5 --- /dev/null +++ b/src/c_src/liquid-dsp @@ -0,0 +1 @@ +Subproject commit fa5c8c52d706982196ea09c04f687664e0937077 diff --git a/src/c_src/quiet b/src/c_src/quiet new file mode 160000 index 0000000..7ac5094 --- /dev/null +++ b/src/c_src/quiet @@ -0,0 +1 @@ +Subproject commit 7ac509455155a1472169bb31ab0f69387d624f25 diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..7d037aa --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,27 @@ +/*global __dirname, require*/ + +const path = require('path'); + +module.exports = { + entry: __dirname + "/quiet.js", + output: { + path: __dirname + "/output", + filename: "foo.js", + library: "foo", + libraryTarget: "umd" + }, + module: { + rules: [ + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'] + } + } + } + ] + } +};